solaris7 에러…

$ vi edu_pa.jsp
ld.so.1: vi: 치명적: 재할당 오류: 파일 vi: 기호 cur_term: 참조 기호가 없습니다.
중단됨(Killed)

LD_LIBRARY_PATH와 관련된 에러로 추정됨.

솔루션은 다음과 같이 하면 되려나?
내 소유 장비가 아니어서 확인은 못해본다.
Date: Fri, 23 Jan 2004 07:07:21 +0000

Neil W Rickert wrote:
> Beardy writes:
>
>>Neil W Rickert wrote:
>>
>>>thota_2001@yahoo.com (Srikanth Thota) writes:
>
>
>>>>I have Solaris 8 with OEM on My Sun Machine. Recently i Installed
>>>>Oracle 8i on Solaris. After that when I try to open any file with vi
>>>>option I am getting following error message.
>
>
>>>>ld.so.1: vi: fatal: relocation error: file vi: symbol cur_term:
>>>>referenced symbol not found Killed.
>
>
>>>Maybe try
>
>
>>> unset LD_LIBRARY_PATH
>
>
>>>or, if you use csh/tcsh
>
>
>>> unsetenv LD_LIBRARY_PATH
>
>
>
>>ldd on /usr/bin/vi reports a number of full paths to shared object
>>libraries, and AFAIK LD_LIBRARY_PATH cannot affect this. Maybe
>>crle-related stuff.
>
>
> I think you are mistaken:
>
> % ldd /bin/vi
> libmapmalloc.so.1 => /usr/lib/libmapmalloc.so.1
> libcurses.so.1 => /usr/lib/libcurses.so.1
> libcrypt_i.so.1 => /usr/lib/libcrypt_i.so.1
> libgen.so.1 => /usr/lib/libgen.so.1
> libc.so.1 => /usr/lib/libc.so.1
> libdl.so.1 => /usr/lib/libdl.so.1
> /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1
>
> % setenv LD_LIBRARY_PATH /net/mp/usr/lib
>
> % ldd /bin/vi
> libmapmalloc.so.1 => /net/mp/usr/lib/libmapmalloc.so.1
> libcurses.so.1 => /net/mp/usr/lib/libcurses.so.1
> libcrypt_i.so.1 => /net/mp/usr/lib/libcrypt_i.so.1
> libgen.so.1 => /net/mp/usr/lib/libgen.so.1
> libc.so.1 => /net/mp/usr/lib/libc.so.1
> libdl.so.1 => /net/mp/usr/lib/libdl.so.1
> /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1
>
> As you can see, the path to all but one library changed.
>
> [From the fact that ldd lists the path to the library, it does not
> follow that the full path is saved in the binary]
>

Yup. I stand squarely in your shadow Neil.

원문은 아래에…
http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2004-01/1908.html

Sun Blade1000

blade1000-thumb.jpg

Sun blade1000을 뜯었을때, 그동안 익숙했던 장비와 달라서 당황했었다.
아는분한테 전화해서 이것 저것 물어봤는데, 나중에 알고보니 설명서만 잘 봤더라면 하는 후회를 잠깐 했다.
뚜껑을 열고 보면, 안쪽에 설명서가 들어 있다.
CPU는 녹색부분을 렌치(하드디스크 위에 초록새 플라스틱으로 잘 감추어져 있다)로 열면 된다. 설명서에 모두 친절하게 나와 있다.

벌써 팔아버렸지만, 기념으로 사진 한장!

디스크 안전하게 덤프 backup

디스크덤프 방법
예)
디스크 원본 /dev/rdsk/c0t0d0s7 을 /dev/rdsk/c0t1d0s7로 옮길때
두 디스크가 모두 마운트되어 있는게 좋다.

/mnt: /dev/rdsk/c0t0d0s7 (원본)
/mnt1: /dev/rdsk/c0t1d0s7 (사본)일 경우

먼저 사본(내용이 없는 디스크슬라이스)으로 cd하여 옮김.
# ufsdump 0f – /dev/rdsk/c0t0d0s7 | (cd /mnt1; ufsrestore -rf -)

만일 O/S디스크를 덤프할 경우에는 CD-ROM부팅으로 /a 와 /mnt로 마운트하여 dump하는 것이 원칙이다.

만일 O/S디스크를 덤프했을 경우에는 boot block을 심어줘야 한다.
즉, 원본 디스크 또는 CD-Rom 내의
/usr/platform/sun4u/lib/fs/ufs/bootblk를 다음 명령으로 심어준다.

# installboot /usr/platform/sun4u/lib/fs/ufs/bootblk /dev/rdsk/[사본 disk slice]해주면 끝.

Apache2에서 필요한 모듈 컴파일하기.

MovableType은 perl스크립트로 만들어져 있다.
설치해보고 사용하는데는 많은(?) 시간이 걸렸다. 이유는 내가 예전에 컴파일했던 apache2에 펄스크립트나 cgi를 사용할 수 있는 모듈을 추가하지 않았기 때문이다.

때문에 프로그램을 바꾸거나 써보고 싶다는 생각이 들었지만, 실제로 바꾸기까지는 많은 시간이 걸렸다.
아마도 귀찮음 때문이었을 것이다.

지금부터, apxs를 이용해서 mod_perl을 컴파일했던 방법을 기록하려고 한다.(solaris 9)

먼저, 필요한 프로그램을 다운로드 받는다.(mod_perl)

CFLAG를 비롯해서 PATH, LDLIBRARYPATH등을 설정한다.

/var/tmp/에 mod_perl을 풀고, 디렉토리를 이동.

/usr/local/bin/perl Makefile.PL MP_INST_APACHE2=1 MP_APXS=/usr/local/apache2/bin/apxs

주의할점은 solaris에 들어있는 /usr/bin/perl을 사용하면 문제가 생긴다는것이다. gcc로 컴파일한 것이 아니므로.

make; make install;

이후 httpd.conf를 수정한다.

LoadModule perl_module modules/mod_perl.so

AddHandler cgi-script .cgi .pl

아래는 꼭 필요한것인지는 모르겠다.
perl스크립트에 관심이 없었으므로, 거의 초보나 마찬가지상태!
Alias /perl/ /export/home/apache2/cgi-bin/

SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
이렇게하면 지정된 디렉토리(/export/home/apache2/cgi-bin/) 내에서 펄스크립트는 잘 작동된다.

문제는 일반 사용자들의 public_html디렉토리 내에서 perl스크립트 사용을 가능하게 해줘야하는 부분이다. 이 문제 해결에 많은 시간이 걸렸지만, 추가해주어야 할 내용은 몇줄 뿐이다.
AllowOverride None
Options ExecCGI
AddHandler cgi-script .pl .cgi
Order allow,deny
Allow from all
이것으로 apache2에서 perl스크립트를 사용할 수 있게 되었다.
마지막으로 해야할 것은 아파치데몬을 재실행 하는것뿐이다.

Sun Box의 호스트 아이디 바꾸기2

Solaris에서 동작하는 특정 소프트웨어들, 예를 들면 수호신같은 방화벽은 호스트 아이디를 가지고 라이센스 키를 생성한다. 그런데, PROM이 고장나서 교체하면 기존의 호스트 아이디가 바뀌어버리고, 당연히 프로그램도 작동되지 않는다. 라이센스키를 다시 받아서 설정하면 되겠지만 당연히 귀찮다.

이럴때 이전의 호스트 아이디를 알고 있으면 다음과 같은 방법으로 호스트아이디를 바꿀수 있다.

참 간단하지 않은가!

Let’s assume the MAC address you want to program is 8:0:20:aa:bb:cc and the hostid is 80aabbcc. Note: MAC and hostid don’t have to correspond.

at the ok prompt:

ok> 0 0 mkp
ok> 8 0 20 aa bb cc 80aabbcc mkpl
ok> ^d ^r (control+d, control+r)

(if 0 0 mkp fails, try 1 1 mkp, or 2 2 mkp)

Cracking?

오늘 아침 sun box에서 발생한 이상한 메시지

INIT: Command is respawing to rapidly, check possible errors
id: sv “/usr/bin/srload -D -q”

누군가가 /etc/inittab에 아래 두줄을 추가 시켜 놓았다.

SV:23:respawn:/usr/bin/srload -D -q
SV:23:respawn:/usr/bin/srload -D -q

음…

누가 무슨짓을 한건지 정말 궁금하다..

Continue reading

solaris8(9)에서 CD-image(iso format)를 마운트 하는 방법

gundal님의 글
solaris에서 iso이미지를 linux처럼 바로 mount 할 수 없다.
Linux)mount –t iso9660 –o loop iso_path mount_point

e.g.) # mount –t iso9660 –o loop /data/ora_920_1.iso /mnt/cdrom
(/data dir의 ora_920_1.iso 파일을 /mnt/cdrom에 cd-image로 mount)
Solaris)mount –F hsfs –o ro /data/ora_920_1.iso /mnt

오류: /data/ora_920_1.iso는 블록장치가 아닙니다.
즉, solaris에서는 device type이 블록장치가 아니면 자체로 mount 대상에 포함되지 않으므로 다음과 같은 선 조치가 필요.
#lofiadm –a /data/ora_920_1.iso /dev/lofi/1 (iso파일의 가상 블록장치명 생성)

생성된 블록장치로 mount

#mount –F hsfs –o ro /dev/lofi/1 /mnt
혹은

#mount –F hsfs –o ro `lofiadm –a /data/ora_920_1.iso` /mnt

Continue reading

NFS에 관해 혼자서 정리해 봤다….

gundal님의 글…

 

NFS Server/Client 요약

1. NFS Server 구성요소.

1) 설정파일 및 필요한 파일

– /etc/dfs/dfstab : NFS로 공유할 Directory 및 mount 될 option설정
(/etc/init.d/nfs.server 스크립트가 읽어서 이 내용대로 NFS 공유.)
-/etc/init.d/nfs.server : /etc/dfs/dfstab을 참조 /usr/lib/nfs/nfsd를 구동하는 start script
-/etc/dfs/sharetab : 현재 공유설정 해 놓은 file/directory 목록

– /etc/rmtab : 현재 원격으로 mount되어 있는 file/directory 및 client목록
-/etc/dfs/fstypes : mount할 파일시스템의 type을 명시해 놓은 파일(default: nfs)
-/etc/nfs/nfslog.conf : NFS log daemon 설정 파일
구성daemon 및 파일
-/usr/lib/nfs/nfsd : 실제 NFS 서버 데몬. Client의 mount요청을 주시하다가 요청이 발생하면 /etc/dfs/dfstab의 내용에 따라 파일시스템을 공유하도록 mount시켜줌.

– /usr/lib/nfs/mountd : NFS client의 공유(mount)요청에 대해 공유자원의 file handle을 넘겨주는 역할을 하는 데몬.( client에게 공유목록의 i-node 등을 전달.)
-/etc/default/nfslogd : NFS log 데몬.

* /usr/lib/nfs/statd : /etc/init.d/nfs.client script에 의해 구동되며
* /usr/lib/nfs/lockd : 서버와 클라이언트 양쪽모두 구동됨

2. NFS Client 구성요소.
1) 설정파일 및 필요한 파일
-/etc/vfstab : 원격으로 mount할 host:dir_path, mount point, fs type, option을 명시한다.
-/etc/init.d/nfs.client : /etc/vfstab을 참조하여 mountall (NFS resource mount)실행. 이 스크립트가 실행되면 /usr/lib/nfs/statd, /usr/lib/nfs/lockd 가 실행된다.
-/etc/mnttab : 현재 mount된 파일시스템정보를 담고있는 파일(local, remote)
-/etc/dfs/fstypes : mount할 파일시스템의 type을 명시해 놓은 파일(default: nfs)
-/usr/sbin/mount : local 혹은 remote 파일시스템을 mount(/etc/vfstab을 참조.)
2) 구성daemon 및 파일
-/etc/dfs/sharetab : 현재 공유설정 해 놓은 file/directory 목록
-/etc/rmtab : 현재 원격으로 mount되어 있는 file/directory 및 client목록
-/etc/dfs/fstypes : mount할 파일시스템의 type을 명시해 놓은 파일(default: nfs)
-/usr/lib/nfs/statd : 원격으로 mount할 파일시스템의 상태를 감지하는 daemon으로 원격NFS서버에 공유자원에 문제가 생기면 네트워크 연결을 재 시도함.
-/usr/lib/nfs/lockd : NFS서버가 client들에게 공유자원의 사용여부를 통보하는데 이 daemon은 서버가 주는 정보에 의거하여 원격공유자원에 읽기/쓰기를 관리한다.
3. NFS 사용 설명

1) Server side
/etc/dfs/dfstab 파일에 NFS 공유자원을 설정한다.

Ex) # vi /etc/dfs/dfstab

# share [-F fstype] [ -o options] [-d] [pathname] [resource]

# .e.g,

# share -F nfs -o rw=engineering -d “home dirs”‘ /export/home2

share -F nfs /work3/gundal

share -F nfs /work2

share -F nfs /work1

/work3/gundal, /work2, /work1 디렉토리를 원격에서 mount하도록 허용.

option을 지정할 수 있다. ( -o )

root=client : client로 지정된 시스템의 root user는 이 디렉토리에 대해 superuser권한을 갖는다.

rw=acces_list : read/write 옵션으로 access_list에 명시된 client들이 mount가능.

ro=access_list : read only 옵션으로 access_list에 명시된 client들이 mount가능.

access_list 구성 : client들을 구분자 ‘:’를 이용하여 명시한다.

Ex) share -F nfs -o rw=client1:client2:clinet3:… directory

IP주소로 client를 명시할 경우 ‘@’를 앞에 붙인다.

Ex) share -F nfs -o ro=@211.176.132.18:@211.176.132.20:…. directory

도메인으로 명시할 경우 앞에 ‘.’을 붙인다.

Ex) share -F nfs -o ro=.gfs.com:.boxcorea.com:…. Directory

/usr/sbin/share command로 확인해 본다.

# /usr/sbin/share -F nfs [ ?o option_list ] directory

에러 메시지가 없으면 설정에 문제가 없다.

공유가 되어 있는지 확인.

# /usr/sbin/share

– 공유되어 있는 항목을 보여준다.

공유를 제거한 후 /etc/init.d/nfs.server start 실행

# /usr/sbin/unshare directory

# /etc/init.d/nfs.server start

공유 및 서버데몬 확인

# ps ?e | grep nfs

/usr/lib/nfs/statd

/usr/lib/nfs/lockd

/usr/lib/nfs/mountd

/usr/lib/nfs/nfsd ?a 16

위 4개의 daemon이 실행 중이면 서버측 설정 및 작동은 정상임.

2) Client side

(1)서버의 공유자원을 확인.

# /usr/lib/nfs/dfshare [host-name]

-공유되어있는 directory 또는 자원들을 list한다.

(2)/usr/sbin/mount 명령으로 mount 해본다.

# /usr/sbin/mount ?F nfs [ -o option_list ] [host-name:/공유directory ]

– mount 되거나 mount를 기다리고 있으면 일단 정상적인 nfs공유 가능.

(3)booting시 자동으로 NFS mount하도록 하기 위해 /etc/vfstab을 수정
# vi /etc/vfstab

host-name:/directory – mount-point nfs – yes [bg,soft][fg,hard]

※ option 중 [bg|fg],[soft|hard],[intr|nointr]

booting시 첫번째 mount 실패시…

bg :background로 mount 계속 시도

fg : foreground로 mount 계속 시도.(default)

Soft : 에러 메시지를 출력하고 booting process 진행

Hard : timeo(timeout) 에 명시한 시간이 경과할 때까지 계속시도.(default)

intr : keyboard로 mount process를 중단 가능.(default)

nointr : keyboard로 mount process 중단 불가.

timeo=n : 1?10초 단위로 timeout 값을 지정.(default UDP:11, TCP:600)

retry=n : 재시도 횟수지정 (default:10,000)

(4) 수동으로 mount시 # /usr/sbin/mountall -r

-r : vfstab의 설정 중 remote resour만 mount

Sun box의 호스트아이디 바꾸기…

Let’s assume the MAC address you want to program is 8:0:20:aa:bb:cc and the hostid is 80aabbcc. Note: MAC and hostid don’t have to correspond.

at the ok prompt:

ok> 0 0 mkp
ok> 8 0 20 aa bb cc 80aabbcc mkpl
ok> ^d ^r (control+d, control+r)

(if 0 0 mkp fails, try 1 1 mkp, or 2 2 mkp)

오늘 아침에 해봤음..

솔라리스 2.5.1에서 FIFO 에러

>Quick question: we’ve got our first PCI-based Sun, a brand new Ultra 5, just
>put Solaris 2.5.1 HW 11/97 and pretty recent recommended patches on it. A
>couple of times during the installation, and lots of times once we start X, we
>notice the following message appear in the console:
>
>NOTICE: m64: fifo error, bus_reg=7b23a040

Several people have told me incredibly quickly that I need Sun patch 103792-18
or later on 2.5.1, or 105362-18 or later on 2.6. A couple of people wondered
if 2.5.1 ran properly on the Ultra 5 – yes it does. I’ve grabbed the absolute
latest 103792-20 and installed that. I rebooted the machine and the message
goes away.

솔라리스 낮은버젼에서 ultra10 440MHz CPU를 썼을때 FIFO에러가 나는 모양이다.

위에것은 구글에서 찾은것인데..
패치하면 해결된다는 내용인것 같네.

GF시스템에 문의 한 결과.
solaris7 environmentCD를 넣고 부팅한후, 설치할 OS를 선택하면 된다고..

실제로는 안해봐서 모르겠다.