다음과 같이 입력하면 설치됩니다.
% gzip -d
GNUgcc.2.8.1.SPARC.Solaris.2.6.pkg.tgz
% tar -xf
GNUgcc.2.8.1.SPARC.Solaris.2.6.pkg.tar
% pkgadd -d .
가져온 패키지들을 gzip와 tar로 풀면 각각 디렉토리가 만들어지고, 필요한
파일들이 그 디렉토리에 들어갑니다. 그리고 pkgadd명령을 실행하면
설치가능한 패키지들이 나열됩니다.(만일 디렉토리는 분명히 있지만 화면에
나열되지 않는다면 패키지의 디렉토리의 소유권이 적당한지 확인해 보시기
바랍니다.) 사용자가 원하는 번호를 입력하면 설치를 시작합니다.일반적인
패키지의 설치과정이 위와 같지만, 가끔 뉴스그룹으로 질문을 하시는
분들중에 에서 받아온 패키지의 경우에는
디렉토리가 만들어 지지 않고 pkgadd -d . 를 해도 화면에 나오지
않기때문에 질문하시는 분이 많습니다. 이때는 pkgadd -d
파일명 을
입력하시면 됩니다. 간단하게 예를들어 보죠.
% gzip -d bison-1.24.gz
% pkgadd -d bison-1.24
위와 같이 간단하게 입력하면 설치하실 수 있습니다.
참고로 에서 가져온 패키지들은 특별한 언급이
없는한 /opt에 설치됩니다. 그에비해 sunsite에서 가져온 패키지들은
일반적으로 /usr/local에 설치됩니다.
2.36. CDE는 뭔가요?
CDE(Common Desktop Environment) (아직 추가하지 못했습니다.
죄송합니다.)
CDE는 Solaris 2.6이라면 OS에 포함되어 있고, 그 이하 버전이면 OS와 같이
들어있는 CD-ROM에서 구할 수 있습니다. 만일 CD-ROM에 없거나, CD가
없을경우에는 에서 받을 수 있습니다.
이 디렉토리에 가시면 파일이 여러가지가 있습니다. 파일이름중에 dev가
들어간 것은 developer를 의미하며 ab가 들어간 것은 answerbook이
포함되어있다는 의미입니다.
2.37. CDE로긴(dtlogin)의 설정은 어떻게 하나요?
다음과 같은 문제를 생각해 보죠.
처음 CDE를 설치할 때 영문으로 설치를 했습니다. 나중에
한글환경을 쓰려고 CDE에서 ko로 설정을 했는데 한번뿐이고 다시
로그아웃을 하면 영문으로 돌아갑니다. CDE의 기본언어를
설정하려면 어떻게 하면 되나요?
이경우 여러가지 방법이 있지만 다음의 방법을 이용해 보세요. 우선
/etc/dt/config디렉토리를 만듭니다. (만일 디렉토리가 있다면 만들지
마세요.) 그다음 /usr/dt/config/Xconfig를 만든 디렉토리로 복사합니다.
(/usr/dt/config/Xconfig는 수정하시면 안됩니다.) 그리고 /etc/dt/con
fig/Xconfig중에서 Dtlogin*language의 값을 ko로 바꾸시고 저장할 후에
dtconfig -reset을 실행하면 됩니다.
또한 CDE를 설치하면 기본적으로 dtlogin이 뜹니다. 이 화면대신에 원래
로긴화면을 사용하려면 dtconfig -d 와 같이 입력하시면 됩니다. 만일
CDE로긴화면이 뜨게 하려면 dtconfig -e 와 같이 입력하시면 됩니다.
2.38. 부팅할 때 마다 어떤 일을 수행하려면 어떻게 하나요?
Solaris에는 시작 스크립트가 /etc/init.d 에 모여있습니다. 이 스크립트는
대부분 구성이 아래와 같이 되어있습니다.
#!/bin/sh
...
case "$1" in
"start")
# daemon 띄우는 명령어
"stop")
# daemon 죽이는 명령어
)
# 사용설명
esac
이와 같이 작성해 두시면 실행할때는 start인자를, 실행중인 프로세스를
죽일때는 stop인자를 사용하실 수 있습니다.
또한 Solaris는 /etc/rcX.d(X는 S, 0, 1, 2, 3)에서 필요한 스크립트를
수행합니다. 만일 Single User모드로 부팅했다면 /etc/rcS.d에 있는
파일들을, 보통때는 모두다 수행합니다. 따라서 이들중 한 디렉토리에
SXXfilename(XX는 원하는 두자리 숫자, filename은 임의의 이름)이라는
파일을 /etc/init.d에 만들어 둔 스크립트에 하드링크를 해 두면 됩니다.
rc 프로세스는 숫자가 작은 스크립트부터 차례로 수행해 줍니다.
그리고 SunOS 4.1.x에서는 /etc/rc.* 파일에 적어넣어면 됩니다.
일반적으로 rc.local에 적는 경우가 많습니다.
그리고 그냥 스크립트를 작성하면 root권한으로 수행됩니다. 하지만 몇몇
프로그램의 경우에는 root가 아닌 일반 유저의 권한으로 수행되어야 하는
경우가 있는데 이때는 su명령을 사용하시면 됩니다. 만일
/some/where/daemon을 nobody권한으로 수행하고 싶다면 시작 스크립트에
아래와 같이 적어주면 됩니다. (서진수님
이 정리해 주셨습니다.)
su nobody -c '/some/where/daemon'
2.39. 부팅시 마운트되는 순서는?
가장 먼저 /와 /usr는 읽기전용으로 마운트합니다. 이때 문제가 있다면
커널이 이 두개의 파티션에 대해 fsck를 수행합니다. 그리고 문제가 없다면
두번째로 swap을 마운트합니다. 세번째로 /와 /usr를 쓰기가 가능하도록
다시 마운트합니다. 그 이후에 /usr/platform, /proc, /dev/fd등을
차례대로 마운트합니다.
/etc/vfstab을 보면 / /usr /var 파일시스템은 mount at boot항목이 no로
되어있습니다. 따라서 이 파티션이 언제 마운트되는지 궁금해 하시는
분들이 많은데, / /usr /var는 부팅과정에 필요한 파티션이기 때문에
커널이 미리 마운트합니다. 그래서 /etc/vfstab에서는 no로 설정이 되어
있는것입니다.
2.40. 다른 시스템의 X Window 프로그램을 수행하고 싶습니다.
디스플레이를 사용하는 시스템에서 xhost로 프로그램이 있는 시스템을
적어주고, 프로그램이 있는 시스템의 DISPLAY환경변수를 수정하면 됩니다.
만일 A가 현재 사용하는 컴퓨터(X Server)이고 B가 응용프로그램이 있는
컴퓨터라면 아래와 같이 입력하면 됩니다. (csh를 사용한다고 가정)
A% xhost + B
A% telnet B
B% setenv DISPLAY A:0.0
B% 응용프로그램
2.41. 로컬시스템의 X 프로그램을 실행했는데 display를 열수없다고
합니다.
같은 시스템이더라도 telnet이나 su로 한번 거쳐서 접속한 경우에는 아래와
같은 에러가 발생합니다.
Error: Can't open display: unix:0
이때는 su나 telnet전에 xhost + localhost등을 입력해 주고, su나
telnet후 DISPLAY환경변수를 localhost:0.0으로 설정하시면 됩니다.
2.42. libX11.so.6.1이 없다고 에러가 납니다.
Solaris 2.6이라면 openwindow가 X11R6를 지원합니다. 따라서
/usr/openwin/lib/libX11.so.4 를 가리키는 libX11.so.6.1을 만들면
됩니다.
Solaris 2.5.1 이하라면 시스템의 버젼에 맞는 X11R6 패키지를 설치하시면
됩니다.
혹 LD_LIBRARY_PATH가 적절히 설정되지 않은경우도 있습니다. 이
환경변수도 확인해 보시기 바랍니다. 참고로 LD_LIBRARY_PATH는
동적라이브러리(libX11.so.6등의 라이브러리)가 있는 디렉토리들을
지정하고 있습니다. 만일 /usr/local/X11R6/lib를 추가하고 싶다면 아래와
같이 입력하면 됩니다.(csh이라고 가정)
setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/X11R6/lib
2.43. 최근 login한 사람들에 대한 정보를 알수 없나요?
사용자들이 login하면 그 정보가 /var/adm/utmp에 저장됩니다. 이 파일에
저장된 내용을 출력해주는 프로그램이 /usr/bin/last입니다. 그리고
참고적으로 /var/adm에는 utmp, utmpx, wtmp, wtmpx가 있는데 utmp, wtmp는
같은 파일이고 utmpx, wtmpx는 utmp의 확장파일입니다. 만일 어떤 사용자의
최근 접속상황을 보려면 last id라고 하시면 됩니다.
utmp, wtmp, lastlog등은 사용자가 시스템에 접속했을 때 로그가 기록되는
파일로 /usr/bin/login프로그램에 의해 만들어집니다. 만일 만들고 싶지
않다면 login프로그램을 수정(?)하시든지, 아니면 주기적으로 지워주는
방법밖에 없습니다. 주기적으로 지워줄때는 cron등을 이용하시면
편리합니다. 그리고 아예 만들지 않으려면 wtmpx등의 파일을 /dev/null의
링크파일로 만드는 방법이 있습니다.
2.44. syslogd는 어떤 역활을 하나요?
언제, 어디서, 누가, 어떤 서비스를 통해서 시스템에 접속을 시도했는지를
기록해주는 서버입니다. 대표적으로 telnet, ftp, mail등에 대한 로그를
만들어줍니다. 그리고 syslogd에 대한 설정파일은 /etc/syslog.conf입니다.
syslogd에 의해 만들어진 log파일은 /var/log에 생성됩니다.
/etc/hosts에 보면 loghost라는 부분이 있습니다. 이 부분은 syslogd에
의해 사용됩니다. (추가설명 필요)
2.45. cron이 실행되지 않습니다.
crontab에 등록하려고 하니 다음과 같은 메세지가 나옵니다. 이런경우에는
cron may not be running - call your system administrator
warning: commands will be executed using /usr/bin/sh
cron을 사용하려면 cron.allow에 등록이 되어있어야 합니다. 첫번째
메세지는 cron.allow에 등록이 되어있지 않기 때문에 생기는 메시지입니다.
그리고 cron은 /bin/sh를 기본쉘로 사용하지만 /bin이 /usr/bin에
링크되어있기 때문에 두번째와 같은 에러가 출력됩니다. 따라서 두번째
메시지는 무시하셔도 됩니다.
2.46. Solaris 2.x에서 시스템의 최대값을 알려면?
Solaris 2.x에서 시스템의 maximum값(maximum filesize, maximum stacksize
등등)은 ulimit를 사용하면 알 수 있습니다. 이 값을 바꾸려면
/etc/system파일에 합니다. 다음은 사용자당 사용할 수 있는 최대
프로세스갯수와 시스템의 최대 프로세스갯수를 설정하는 예제입니다.
set maxuprc=512
set max_nprocs=1024
시스템의 메시지큐 크기를 변형하려면/etc/system 에 msginfo_msgmnb xxx
와 같이 (xxx는 큐의 크기) 적으면 됩니다.
2.47. Solaris에서 hostid를 변경하려면?
host ID는 변경할 수 없습니다.(원칙) 하지만 가끔 변경하는 프로그램이
나오곤 하죠.(Solaris 2.5의 hid2, SunOS 4.1.3의 sethostid 등) hid2는
에서 구할 수 있습니다.
2.48. Solaris 2.x는 y2k에 안전한가요?
에 가시면 Sun제품의 y2k 에 관한 내용을 알 수
있습니다. 일반적으로 Recommended Patch를 설치하고, y2k Patch를
설치하시면 됩니다.
2.49. TT_DB/ 디렉토리는 뭔가요?
Solaris의 서비스중에 rpc.ttdbservd가 TT_DB 디렉토리에 데이터베이스를
생성, 삭제합니다. 따라서 rpc.ttdbservd를 띄우지 않는다면, 삭제하셔도
됩니다. (박창민님)
2.50. Solaris 2.6에서 2GB이상의 파일을 사용하려면?
Solaris 2.6에서 프로그램이 2GB이상의 파일을 지원하려면 2.6에서 아래의
옵션을 사용하여 컴파일해야 합니다. (이석찬님)
CFLAGS = "getconf LFS_CFLAGS"
DEFS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
LDFLAGS = "getconf LFS_LDFLAGS -s"
LIBS = "getconf LFS_LIBS"
따라서 Solaris 2.6이 아닌 시스템에서 컴파일된 프로그램은 위의 옵션을
사용하여 다시 컴파일 하셔야 합니다.
2.51. talk에서 한글을 쓰려면?
LANG환경변수를 ko로 설정하고, /usr/SUNWale/bin/talk를 사용하면 됩니다.
2.52. 비밀번호 없는 계정을 만들려면?
SunOS 4.x까지는 /etc/passwd에 비밀번호란을 지우면 되지만, Solaris
2.x에는 비밀번호를 관리하는 /etc/shadow의 비밀번호란을 지워도 로긴하면
다시 입력하게 되어있습니다. 이때 로긴시 비밀번호를 입력하지 않도록
하려면 /etc/default/login에서 PASSREQ=NO로 만들면 됩니다.
2.53. 최대접속가능한 터미널 수를 늘이고 싶습니다.
SunOS 5.x에서 최대 터미널 수는 /etc/system 에서 설정합니다. 만일 최대
접속가능한 터미널 수를 100으로 하고 싶다면 set pt_cnt = 100 을
/etc/system 파일에 넣어주면 됩니다.
2.54. CD Writer를 사용하려면?
CD Writer를 이용할 수 있는 프로그램중 대표적인 프로그램으로 mkisofs가
있습니다. 이 프로그램에 관한 자세한 정보는 를 참고하시면 됩니다.