7、rpm包(二进制包、系统默认包)常用操作(rpm、yum)

来源:互联网 发布:微网站系统源码 编辑:程序博客网 时间:2024/06/05 04:40

包全名: xxx.2.3.15-15.ie6-centos-xxx.rpm,进行rpm操作未安装的命令,使用包全名

包名:xxx,进行rpm操作已经安装过的命令,使用包名

1、rpm命令

1.1、安装rpm包:rpm  -ivh    包全名    //i:安装 v:安装详细信息 h:进度【注】:只能写包全名,包全名一定要跟所在路径,一般都是光盘packages下

1.2、升级rpm包:rpm -Uvh 包全名  //U:更新  【注】:只能写包全名,包全名一定要跟所在路径,一般都是光盘packages下

1.3、卸载rpm包:rpm -e 包名   //卸载rpm包,【注】:只可以写包名,不能写包全名,在任何目录都可以

1.4、rpm包查询(在任何目录敲都可以,去/var/lib/rpm中查):

1.4.1 :查询rpm包是否安装:rpm -q 包名  (-q:query查询的意思)

1.4.2 : 查询所有已安装的rpm包:rpm -qa    (-a:all,这里可以使用管道符查询某个包是否安装,rpm -qa | grep httpd,其实跟rpm -q httpd一样)

1.4.3 :查询已经安装软件包信息:rpm -qi  包名(-i:查询软件信息,-p查询未安装的包信息)

1.4.4 :查询未安装的软件包信息:rpm -qip  包全名(-i:查询软件信息,-p查询未安装的包信息)

1.4.5 :查询已经安装软件包中文件安装位置:rpm -ql 包名(-l:列表,-p:查询未安装的信息) 

1.4.6 :查询未安装的软件包将来如果安装要安装到的位置:rpm -ql 包全名(-l:列表,-p:查询未安装的信息) 

1.4.7:查询系统文件属于那个RPM包:rpm -qf  系统文件名绝对路径(-f:查询系统文件属于哪个软件包)

1.4.8:查询已安装软件包依赖性:rpm -qR 包名(-R 查询软件包依赖性,-p查询未安装的软件包信息)

1.4.9:查询未安装的软件包依赖性:rpm -qRp  包全名(-R 查询软件包依赖性,-p查询未安装的软件包信息)

1.5、rpm包校验:rpm -V  已安装的包名  (-V:校验制定rpm包中的文件)

1.6、rpm包中文件提取:rpm2cpio 包全名 |  cpi  -idv  .文件绝对路径(提取文件放到哪,【注】:文件绝对路径前面的”.“代表当前目录)

rpm2cpio:将rpm包转换为cpio格式的命令

cpio:是一个标准工具,它用于创建软件和从文档中提取文件(-i:copy-in模式,提取;-d:还原时自动新建目录,-v:显示还原过程)

eg:假如将/bin/ls剪切到/tmp下,假装这个命令丢失了,想从他所在的rpm包中提取出来放到/bin/ls下

1.6.1、rpm -qf /bin/ls    //删除前查询所属包,如果是在删除前没有查,就百度等,找到这个命令所在包

1.6.2、rpm2cpio /mnt/cdrom/Packeges/coreutils-8.4.....rpm  | cpio -idv ./bin/ls    【注】:"./bin/ls"前面的".”,提取rpm包中ls到当前目录下的/bin/ls

1.6.33、cp ./bin/ls   /bin



2、yum(yum中没有包全名概念,只有包名)

2.1 yum源位置 :vim /etc/yum.repos.d/CentOS-Base.repo(默认,联网可用基本yum源)、CentOS-Debuginfo.repo(bug信息的)、CentOS-Media.repo(不能联网用这个,本地光盘)、CentOS-Vault.repo(虚拟yum源)

2.1.1 : [base]  :容器名称,一定要用“[]”括起来

2.1.2 : name :容器名称,可以自己随便写

2.1.3  : mirrorlist:镜像站点,这个可以注释掉

2.1.4 : baseurl : yum源服务器地址,默认是CentOS的官方yum源服务器,如果觉得慢可以改为国内的源服务器地址(自己百度)

2.1.5 : enabled  : 当前容器是否生效  0不生效  1生效  (如果配置没有这一项,就是默认1)

2.1.6 : gpgcheck:如果是1 代表rpm数字证书生效,0不生效

2.1.7 : 数字证书的公钥文件保存位置。不需要修改

2.2  yum命令

2.2.1yum查询yum服务器所有安装包  :yum list

2.2.2 yum查询yum服务器某个安装包:yum search 包名

2.2.3 yum没有查询本机的包名(也有可能是我不知道),用rpm吧:rpm -q 包名

2.2.4 yum安装软件:yum -y install 包名  (-y:yes不再询问)

2.2.5 yum升级更新软件:yum -y update 包名(【注】:这里一定要注意,如果update后面不跟包名,服务器会将所有包,包括内核升级,内核升级需要配置才能使用,内核升级后,远程在也连接不上了,只能去服务器本机修复,一定要注意)

2.2.6 卸载rpm包:yum -y remove 包名(【注】:这里一定要注意,如果卸载某个软件包,所有依赖包都会被卸载,如果某个依赖包被其他程序使用,那那个程序也无法使用了,慎用)

2.2.7 yum软件组安装(一下安装个输入法、字体、电子邮件服务器。。。其实就是安装系统让你选的那些)

2.2.8:查询所有软件组列表:yum grouplist  

2.2.9:安装软件组:yum groupinstall  软件组名 (这里组名不能是中文,如果显示中文去linux本机上执行yum grouplist 就是英文,如果组名中间有空格,一定要用双引号扩起来)

2.2.10:卸载软件组:yum groupremove 软件祖名 


2.3 光盘yum源搭建

2.3.1 首先挂载光盘,如果找的包没在第一张盘,就去第二张盘找:mkdir  /mnt/cdrom(创建挂载点) ;   mount   /dev/cdrom(/dev/sr0)  /mnt/cdrom;(将光驱挂载到挂在点上)

2.3.2 让其他三个网络yum源生效,只保留Media:进入yum源位置 cd  /etc/yum.repos.d/    ,默认是Base,现在只让Media生效,打开其它3个,把所有的容器enabled  设置为0,可以是可以,但是太麻烦,使用另外一种办法,将其他三个文件改个名字,相当于不存在了,yum只检测扩展名为.repo的,只需要把其他三个改个名字,例如后面加个-bak都可以,其他三个都找不到了,yum只能找Media了

2.3.3 设置光盘yum源地址,到我们光盘挂载点:

vim CentOS-Media.repo;

baseurl=file:///mnt/cdrom(前面的file://不能省略,这里不是走网络协议所以不是http而是本地是file,后面是挂载点地址,绝对路径)

# file:///media/cdrom (不注释,不会影响功能,但是总报错找不到 ,最好还是注释了)

# file:///media/cdrecorder (不注释,不会影响功能,但是总报错找不到 ,最好还是注释了)

enabled=1;(0改为1,其他不需要改)

【注】:修改文件加注释不能有缩进顶头写,在修改文字后面也不要加注释,不要加多余空格,不止这里,所有linux配置文件尽量按照这个规则,否则就有的会报错

好处:比较快

坏处:光盘可能不是最新版软件,每次想要使用本地yum要把光驱放进去