소프트웨어의 관리 
솔라리스에서 사용할 수 있는 소프트웨어로는 솔라리스가 기본적으로 제공하는 소프트웨어와 운영체제에 포함돼 있지 않기 때문에 개별적으로 구입하거나 별도로 설치하는 소프트웨어가 있다. 

일단은 솔라리스에 미리 설치된 애플리케이션을 중심으로 각종 관리 방법을 알아보자. 솔라리스는 소프트웨어를 패키지라는 단위로 취급을 하는데, 일종의 애플리케이션을 위한 모든 객체를 묶어 놓은 단위라고 생각하면 된다. 솔라리스의 모든 내장 소프트웨어들은 모두 이런 패키지 기반의 관리가 이뤄진다. 

이를 위해 솔라리스는 다음과 같은 패키지 명령어를 제공한다. 

·새로운 패키지의 설치 : pkgadd 
·설치된 패키지의 삭제 : pkgrm 
·설치된 패키지의 정보 : pkginfo 
·패키지 세트의 작성 : pkgmk, pkgparam, pkgtrans 


소프트웨어 설치 확인 방법 
동일한 솔라리스라고 하더라도 어떤 버전은 아파치가 포함돼 있으며, 어떤 버전은 솔라리스 관리 콘솔을 기본으로 제공하는 등, 솔라리스도 버전에 따라 새로운 기능이 추가되고, 이에 따라 새로운 패키지들이 지속적으로 추가되고 있다. 따라서 관리자는 자신이 원하는 패키지가 이미 설치돼 있는지 미리 확인하는 작업이 필요하다. 

만약 원하는 패키지의 이름(혹은 keyword)을 알고 있다면 다음과 같은 방법으로 설치 여부를 확인할 수 있다. 

# pkginfo -i | grep -i apache 
system SUNWapchd Apache Web Server Documentation 
system SUNWapchr Apache Web Server (root) 
system SUNWapchu Apache Web Server (usr) 

또는 다음과 같은 방법으로도 가능하다. 

# pkginfo -x | grep -i apache 
SUNWapchd Apache Web Server Documentation 
SUNWapchr Apache Web Server (root) 
SUNWapchu Apache Web Server (usr) 

이 두가지 방식의 차이는 pkginfo의 옵션의 차이다. <-i>는 ‘fully installed package’의 정보를 제공하고, <-x>는 설치된 패키지의 헤더만을 뽑아 출력하는 옵션이다. 어쨌든 일단 아파치 웹 서버가 설치돼 있음을 확인했다. 이제 검색한 패키지의 구제적인 정보(예를 들면 소프트웨어 버전이나, 설치 날짜 등)를 확인하기 위해서는 앞에서 검색한 패키지 이름으로 다시 한번 pkginfo를 실행해 보자.


# pkginfo -x SUNWapchr 
SUNWapchr Apache Web Server (root) 
(sparc) 11.9.0,REV=2001.10.18.00.44 

# pkginfo -l SUNWapchr 
패키지 인스턴스: SUNWapchr 
이름: Apache Web Server (root) 
범주: system 
아카이브: sparc 
버전: 11.9.0,REV=2001.10.18.00.44 
기본 디렉토리: / 
판매자: Sun Microsystems, Inc. 
DESC: The Apache HTTP server program (root components) 
PSTAMP: sfw8120011018004615 
INSTDATE: Apr 11 2002 17:33 
HOTLINE: Please contact your local service provider 
상태: 설치 완료 
파일: 197 설치된 경로 이름 
      9 공유 경로 이름 
      5 연결된 파일 
      24 디렉토리 
      10 실행 가능 
      2995 블록이 사용됨 (추정치) 

앞의 두가지 예에서 알 수 있듯이 설치된 패키지의 버전만을 확인하는 것이라면 <-x> 옵션만으로도 충분하지만, 그 외의 정보를 확인하기 위해서는 <-l>이 유용하다. 앞의 예에서 ‘Apache Web server 11.0.0’이 SUNWapchr라는 패키지 이름으로 설치돼 있음을 알 수 있으며, <-l>로 확인한 정보에 의하면 설치일이 4월 11일임을 알 수 있다. 그런데 지금까지 알아본 명령은 패키지 단위로만 정보를 제공한다. 간혹 패키지 내의 구성 파일 이름과 설치된 디렉토리를 확인해야 할 경우가 있다. 이런 경우에는 패키지의 손상 여부를 확인하기 위한 pkgchk 명령을 통해 확인할 수 있다. 다음 예제를 살펴보자. 

# pkgchk -l | grep -i httpd.conf 
경로 이름: /etc/apache/httpd.conf-example 
경로 이름: /usr/apache/man/man3/Apache::httpd_conf.3 
경로 이름: /usr/apache/perl5/5.6.1/sun4-solaris/Apache/httpd_conf.pm 

따라서 이미 설치된 아파치 웹 서버를 구성하기 위해 httpd.conf가 어디에 있는지 확인할 때 유용하다. 또는 관련 파일을 알고 있지만, 이 파일이 어떤 패키지에 속해 있는지 알아야 하는 경우에는 다음과 같은 명령을 수행한다. 

#pkgchk -l -p /etc/apache/http.conf-example 
경로 이름: /etc/apache/httpd.conf-example 
형식: 일반 파일 
예상 모드: 0644 
예상 소유자: root 
예상 그룹: bin 
예상 파일 크기 (바이트): 37327 
내용의 예상 합계(1): 56610 
예상한 최종 수정: 10월 18 오후 04시 43분 02초 2001 
다음 패키지에서 참조함: 
      SUNWapchr 
      현재 상태: 설치됨 


Pkgchk는 설치된 패키지의 속성 변화를 감시하기 위한 명령이다. 따라서, 디스크 손상이나 혹은 악의적인 해킹에 의항 설치된 파일의 기초적인 변형이나 손상을 확인할 수 있다.


GUI 툴을 이용한 소프트웨어 설치 확인 
솔라리스의 기본 그래픽 환경에서 이 관리 툴을 실행하기 위해서는 (화면 1)에 있는 ‘관리 도구’를 실행하거나 콘솔에서 #swmtool을 실행한다. 혹은 솔라리스 8에서부터 새로 제공되고 있는 제품 레지스트리 관리 프로그램을 사용할 수도 있다. 

‘솔라리스 제품 레지스트리’의 실행은 (화면 1)에서 아이콘을 클릭하거나 #prodreg 명령을 직접 입력해 실행할 수 있다. 



설치되지 않은 새로운 소프트웨어(패키지)의 설치 
이미 설치된 패키지를 다시 설치하거나 새로운 패키지를 설치하는 경우를 위해서라도 패키지 설치 방법은 반드시 알아둬야 한다. 
새로운 패키지를 설치할 때 가장 일반적으로 사용하는 방법은 pkgadd 명령을 사용하는 것이다. 솔라리스를 위한 패키지는 하나의 파일로 아카이빙한 경우와 파일 시스템에 디렉토리로 제공되는 아카이빙되지 않은 경우의 두가지가 있다. 그러나 일반적으로 솔라리스 CD는 아카이빙되지 않은 모드로 CD에 담겨 있다. 




·패키지가 디렉토리 구조로 풀려있는 경우 
이런 경우에는 앞서 언급한 #swmtool이나 #prodreg와 같은 GUI 기반 프로그램을 사용하거나 혹은 콘솔 창에서 직접 디렉토리 사이를 이동하면서 pkgadd로 설치하는 방법이 있다. 다음 (화면 2)는 앞서 언급한 ‘솔라리스 제품 레지스트리’를 이용한 것이고, 다음은 swmtool을 이용한 방법이다. 

#swmtool -d /cdrom/cdrom0/s0 

반면 CD나 디스크에서 패키지가 있는 디렉토리를 직접 오가면서 설치해야 하는 경우에는 패키지가 들어있는 디렉토리에서 다음과 같이 실행함으로서 현재 디렉토리에 있는 모든 패키지의 목록을 보면서 선택적으로 설치할 수 있다. 

#pkgadd -d . 

한편 현재 디렉토리에서 설치할 패키지의 이름을 명확하게 아는 경우에는 설치시 아예 이름을 지정함으로써 보다 빠르게 실행할 수 있다. 

#pkgadd -d . SUNWapchr 

·패키지가 아카이빙돼 있는 경우 
예를 들어 사용자가 솔라리스가 기본적으로 제공하지 않는 GNU 패키지인 를 설치하고 싶은 경우가 있다고 하자. gzip으로 아카이빙하는 방식은 흔히 인터넷에서 패키지를 배포하기 위해 사용하는 형태다. lsof의 다운로드부터 설치까지의 과정은 다음과 같다.


#wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/8/lsof-4.49-sol8-sparc-64-local.gz 
#gunzip lsof-4.49-sol8-sparc-64-local.gz 
#pkgadd -d lsof-4.49-sol8-sparc-64-local 

앞의 방법과 다른 것은 -d 뒤에 ‘.’이 없다는 것이다. 즉 패키지 파일을 -d의 부 파라메타로 입력하는 것이다. 참고로 앞에서 사용한 wget이란 유틸리티는 솔라리스에서 기본적으로 제공되지 않는다. 이같은 툴이 없는 경우에는 웹 브라우저나 FTP 클라이언트 프로그램으로 다운받을 수 있다. 

설치된 불필요한 소프트웨어의 삭제 
앞에서 언급된 방법으로 설치된 패키지의 정보를 얻었다면 이제 삭제도 할 수 있다. 일반적으로 삭제하는 경우는 그리 자주 발생하지 않지만, 새로운 버전을 설치하나 혹은 기존에 있던 패키지에 부분적으로 문제가 발생할 경우도 있으므로 패키지 삭제 방법도 알아둘 필요가 있다. 어쨌든 원하는 패키지의 삭제는 ‘#pkgrm SUNWapchr’과 같은 방식으로 이뤄진다.

Posted by 행복한 프로그래머 멋진상현

+ Recent posts