linux_rpm
改卷标(支持ext2,ext3文件系统)
#e2label /dev/sda2
查看分区sda2卷标
#e2label /dev/sda5 /vmware
更改sda5卷标名称
交换分区的创建
mkswap /dev/sda12 (mkswap -L SWAP-sda12 /dev/sda12)
swapon /dev/sda12
swapoff /dev/sda3
===============================================================================软件包安装
软件包的分类:
rpm <----red hat package management
rpm源码包
c语言的源码包<---于平台不相关
二进制包<---直接运行就可以安装
rpm包
光盘里或者网络
命名习惯:
acl-2.2.47-4.fc11.i586.rpm
acl-2.2.23-5.3.el4.src.rpm
acl-2.2.49-4.fc13.src.rpm
acl-2.2.49-2.fc12.ppc.rpm
rpm包的安装
例子1:虚拟机的安装
rpm -ivh VMware-workstation-6.0.2-59824.i386.rpm
i 安装
v 显示安装进度
h 校验包
例子2:
rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm
warning: heartbeat-2.1.3-3.el5.centos.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
heartbeat-pils = 2.1.3-3.el5.centos is needed by heartbeat-2.1.3-3.el5.centos.i386
heartbeat-stonith = 2.1.3-3.el5.centos is needed by heartbeat-2.1.3-3.el5.centos.i386
libpils.so.1 is needed by heartbeat-2.1.3-3.el5.centos.i386
libstonith.so.1 is needed by heartbeat-2.1.3-3.el5.centos.i386
解决办法:
1、从互联网去下载这些包,如果提示的是某个文件缺少,也可以通过专门的rpm包网站查找到
2、进到光盘目录去找软件包
3、如果报的是缺少某个文件,就可以在一台已经安装过这个软件包的电脑上查询这个文件到底来自哪个rpm包
[root@dns Server]# updatedb
[root@dns Server]# locate libpils.so.1
/usr/lib/libpils.so.1
/usr/lib/libpils.so.1.0.0
[root@dns Server]# rpm -qf /usr/lib/libpils.so.1
heartbeat-pils-2.1.3-3.el5.centos
# rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
# rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
然后再安装:
# rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm
例子3:
[root@bogon soft]# rpm -ivh xlockmore-5.18-2.2.el5.rf.i386.rpm
warning: xlockmore-5.18-2.2.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
error: Failed dependencies:
libXm.so.4 is needed by xlockmore-5.18-2.2.el5.rf.i386
解决的思路:
[root@dns Server]# ls | grep -i libXm
[root@dns Server]# rpm -qlp libXmu-1.0.2-5.i386.rpm | grep -i libXm.so.4
[root@dns Server]# ls | grep -i openmotif
openmotif22-2.2.3-18.i386.rpm
openmotif-2.3.1-2.el5.i386.rpm
openmotif-devel-2.3.1-2.el5.i386.rpm
[root@dns Server]# rpm -qlp openmotif22-2.2.3-18.i386.rpm | grep -i grep -i libXm.so.4
grep: libXm.so.4: 没有那个文件或目录
[root@dns Server]# rpm -qlp openmotif22-2.2.3-18.i386.rpm | grep -i libXm.so.4
[root@dns Server]# rpm -qlp openmotif-2.3.1-2.el5.i386.rpm | grep -i libXm.so.4
/usr/lib/libXm.so.4
/usr/lib/libXm.so.4.0.1
[root@bogon Server]# rpm -ivh openmotif-2.3.1-2.el5.i386.rpm
warning: ../openmotif-2.3.1-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libXp.so.6 is needed by openmotif-2.3.1-2.el5.i386
[root@dns Server]# ls | grep -i libXp
libXp-1.0.0-8.1.el5.i386.rpm
libXp-devel-1.0.0-8.1.el5.i386.rpm
libXpm-3.5.5-3.i386.rpm
libXpm-devel-3.5.5-3.i386.rpm
[root@dns Server]# rpm -qlp libXp-1.0.0-8.1.el5.i386.rpm | grep -i libXp.so.6
/usr/lib/libXp.so.6
/usr/lib/libXp.so.6.2.0
rmp的常用命令:
情景一:找某个文件来自哪个包?
rpm -qf /文件的路径
情景二:看一下我准备安装的软件包会释放哪些文件到哪个目录?
rpm -qlp xxx.rpm
情景三:查看某个软件包是否安装
rpm -qa | grep -i xxx_keyword
或者
rpm -q package_fullname
情景四:查看已经安装了的软件包释放了什么文件
rpm -ql soft_name
卸载软件包
rpm -e 删除
rpm的其他指令:
-i 安装某个没有安装过软件包,不管是旧版本还是新版本
-U 安装某个软件包,但前系统必须已经安装了比这个软件包低版本的,如果原来没有安装过低版本,那么就直接安装新版本
-F 强制安装安装包,不管原来安装的软件包的版本高低,都强制安装。如果原来没有安装过类似的软件,就不能安装
特殊参数:
--nopre 不执行安装前的脚本
--nopost 不执行安装后的脚本
--force 强制安装,一般来说解决文件冲突
--nodeps 忽略依赖关系,一般不要使用
rpm源码包编译:
# rpmbuild --rebuild acl-2.2.47-2.fc9.src.rpm
Wrote: /usr/src/redhat/RPMS/i386/acl-2.2.47-2.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/libacl-2.2.47-2.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/libacl-devel-2.2.47-2.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/acl-debuginfo-2.2.47-2.i386.rpm
Troubleshooting:
一:
rpm实际上使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:
rpm2cpio kchmviewer-3.1-1.el5.5.x86_64.rpm | cpio -div
好啦,搞定收工
二:
安装openssl-devel包(yum install openssl-devel),然后会有一个/usr/lib/libssl.so的东西,然后哪缺libssl.so.4就做个软连接过去,比如
/lib/libssl.so.4,就ln -s /usr/lib/libssl.so /lib/libssl.so.4
[root@mail rhel5.5]# rpm -qlp openssl-devel-0.9.8e-12.el5_4.6.x86_64.rpm | grep ibssl
warning: openssl-devel-0.9.8e-12.el5_4.6.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
/usr/lib64/libssl.a
/usr/lib64/libssl.so
[root@mail rhel5.5]#