当前位置:Linux教程 - Linux - Unix编程/应用问答中文版 ---11. package相关问题

Unix编程/应用问答中文版 ---11. package相关问题

本文出自:http://www.nsfocus.com 维护:小四

11. package相关问题
11.1 Solaris下如何将二进制软件包安装到指定目标路径下
11.2 Solaris下如何自己定制二进制安装包
11.3 如何恢复/usr/bin/su的缺省安装属性
11.4 如何获知指定包与其他包之间的依赖关系
11.5 Linux中如何知道ifconfig属于哪个包
11.6 Solaris下如何知道某包中有哪些文件
--------------------------------------------------------------------------


11. package相关问题

11.1 Solaris下如何将二进制软件包安装到指定目标路径下

Q: pkgadd无法指定目标路径,而我不想使用缺省安装路径/usr/local

A: lisuit@水木清华 2002-01-19 14:49

pkgadd -R ...

11.2 Solaris下如何自己定制二进制安装包

A: deepin & scz

[root@ /tmp/tools]> mkdir srcroot
[root@ /tmp/tools]> cp -p /usr/ccs/bin/as srcroot <-- 复制那些数据源到该目录下
[root@ /tmp/tools]> cp -p /usr/ccs/bin/make srcroot
[root@ /tmp/tools]> cp -p /usr/ccs/lib/cpp srcroot
[root@ /tmp/tools]> ls -lR srcroot
-rwxr-xr-x 1 bin bin 342072 1999 1月 12 as*
-rwxr-xr-x 1 bin bin 91344 1998 4月 27 cpp*
-rwxr-xr-x 1 bin bin 273196 1998 4月 23 make*
[root@ /tmp/tools]> cd srcroot
[root@ /tmp/tools/srcroot]> find . -print | pkgproto > ../prototype
[root@ /tmp/tools/srcroot]> cd ..
[root@ /tmp/tools]> more prototype
f none cpp 0755 bin bin
f none as 0755 bin bin
f none make 0755 bin bin
[root@ /tmp/tools]> vi prototype <-- 在头部增加如下行
i pkginfo=./pkginfo
[root@ /tmp/tools]> vi pkginfo
PKG=""Scz""
NAME=""Scz Package Cool Tools""
VERSION=""2000-01-09 14:53""
CATEGORY=""application""
PSTAMP=""小四""
CLASSES=""none""
ARCH=""Solaris 2.7 For SPARC""
VENDOR=""NSFocus""
BASEDIR=""/tmp/tools/opt/""
EMAIL=""[email protected]""
[root@ /tmp/tools]> pkgmk -o -f ./prototype -b /tmp/tools/srcroot
[root@ /tmp/tools]> pkgtrans -s /var/spool/pkg /tmp/tools/SczPkg Scz
[root@ /tmp/tools]> rm -rf /var/spool/pkg/Scz
[root@ /tmp/tools]> pkgadd -d SczPkg
[root@ /tmp/tools]> ls -lR opt
-rwxr-xr-x 1 bin bin 342072 1999 1月 12 as*
-rwxr-xr-x 1 bin bin 91344 1998 4月 27 cpp*
-rwxr-xr-x 1 bin bin 273196 1998 4月 23 make*
[root@ /tmp/tools]> pkginfo -l Scz
[root@ /tmp/tools]> pkgrm Scz
[root@ /tmp/tools]> rm SczPkg

11.3 如何恢复/usr/bin/su的缺省安装属性

Q: 我怀疑/usr/bin/su被修改过了,如何证实呢

A: John D Groenveld

$ pkgchk -l -p /usr/bin/su

11.4 如何获知指定包与其他包之间的依赖关系

A: Vitaly Filatov

详细信息查看 /var/sadm/pkg//install/depend 文件,这里指明了该包的
三个特性

P 安装前必须已经存在的包
I 与自己不兼容的包
R 依赖自己的其他包

11.5 Linux中如何知道ifconfig属于哪个包

A:

# rpm -qif /sbin/ifconfig <-- 直接查找src.rpm

11.6 Solaris下如何知道某包中有哪些文件

A: 小四 2001-12-10 21:39

1) 已经安装了的包,对/var/sadm/install/contents文件做grep操作

# grep SUNWcsd /var/sadm/install/contents
~~~~~~~ 包名

2) 尚未安装的包,先伪安装,然后检查pkgmap文件

# pkgadd -s /var/spool/pkg -d less-340-sol7-sparc-local
# cd /var/spool/pkg/GNUless
# grep BASEDIR pkginfo <-- 确认BASEDIR目录,比如/usr/local
# vi pkgmap <-- 注意第四列
# rm -rf /var/spool/pkg/GNUless

可以写个脚本完成这些工作。