問題:
你是 Sun 的 FE, 一個客戶來電話說誤刪了 /usr/lib 下的一個文件 libc.so.1,客戶現場只有這一臺機器並且沒有聯網。 你怎樣才能幫他恢復呢?
先找出這個文件所屬的包
# grep /usr/lib/libc.so.1 /var/sadm/install/contents
/usr/lib/libc.so.1 f none 0755 root bin 866400 2238 1061603407 SUNWcsl
然後放入光盤,查找這個文件 /cdrom/cdrom0/s0/Solaris_8/Product/*/pkgmap
Solaris10爲/cdrom/cdrom0/Solaris_10/Product/SUN*這個路徑
然後安裝,這是288上說的.
/var/sadm/install/contents文件
/var/sadm/install/contents文件是一個完整的記錄了所有軟件包安裝到本地系統磁盤的。他附註的每個軟件包中的軟件,並且可以查看產品安裝時的記錄。
pkgadd命令在添加新軟件包的時候會自動升級這個文件
pkgrm命令利用contents文件來找出軟件包文件的位置。當包被刪除時,pkgrm命令也會自動升級contents文件。
識別一個命令的位置
使用grep命令去搜索/var/sadm/install/contents文件,用來查找特殊的文件和他所在的目錄。比如,檢查被安裝到系統的命令showrev。
# grep showrev /var/sadm/install/contents
在Solaris操作環境光盤上搜索命令信息
與搜索本地系統磁盤的contents文件不同,光盤上的命令信息是在pkgmap文件中的
# grep showrev /cdrom/cdrom0/s0/Solaris_8/Product/*/pkgmap
也可以用以下方法尋找安裝包:
pkgchk -l -p /usr/lib/libc.so.1
Pathname: /usr/lib/libc.so.1
Type: regular file
Expected mode: 0755
Expected owner: root
Expected group: bin
Expected file size (bytes): 866400
Expected sum(1) of contents: 2238
Expected last modification: Aug 22 21:50:07 2003
Referenced by the following packages:
SUNWcsl
Current status: installed