问题:
你是 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