linux安装RPM

linux中也要安装软件,但是安装软件时和windows有所区别。

1、软件的获取,windows的软件铺天盖地的多,在网上下载就好了,相比之下linux则要少了很多,主要从a.安装光盘中找。b.红帽官网c.阿里云镜像d.相关软件的官方网站。

2、软件安装方式,linux的软件有很多的依赖关系,比如想要安装a软件,a软件需要bc 作为依赖,所以要先安装bc软件再安装a软件。

软件的后缀一般是rpm 的

amanda-3.3.3-18.el7.x86_64.rpm
amanda-client-3.3.3-18.el7.x86_64.rpm

其中包括了软件名,版本号,发布次数等等。
总之这种的就是安装包。

先要查看自己的系统情况。
x86_64 x86_32 等等的不同就不能用
操作系统版本等信息

[root@nullpointerexception Packages]# uname -m
x86_64
[root@nullpointerexception Packages]# uname -a
Linux nullpointerexception 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@nullpointerexception Packages]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core) 

安装软件:
i:install 安装
v:显示过程
h:人类可视的过程

[root@nullpointerexception cdrom]# rpm -ivh ./Packages/dos2unix-6.0.3-7.el7.x86_64.rpm 

U:更新软件

[root@nullpointerexception cdrom]# rpm -Uvh ./Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
Preparing...                          ################################# [100%]
	package dos2unix-6.0.3-7.el7.x86_64 is already installed

有一些额外 选项:

--force   强制安装,软件有损坏,不重复安装可以用这个重新生成文件
--nodeps  忽略依赖关系
--nomd5   不检验软件数字签名

因为有软件依赖的关系所以rpm一般不作为安装软件的方法。主要用rpm来查询软件情况

下面是查询的一些应用

[root@nullpointerexception cdrom]# rpm -qa| grep dos2unix
dos2unix-6.0.3-7.el7.x86_64
[root@nullpointerexception cdrom]# rpm -q dos2unix
dos2unix-6.0.3-7.el7.x86_64
[root@nullpointerexception cdrom]# rpm -ql dos2unix
/usr/bin/dos2unix
/usr/bin/mac2unix
/usr/bin/unix2dos
/usr/bin/unix2mac
/usr/share/doc/dos2unix-6.0.3
/usr/share/doc/dos2unix-6.0.3/COPYING.txt
/usr/share/doc/dos2unix-6.0.3/ChangeLog.txt
/usr/share/doc/dos2unix-6.0.3/NEWS.txt
/usr/share/doc/dos2unix-6.0.3/README.txt
/usr/share/doc/dos2unix-6.0.3/TODO.txt
/usr/share/doc/dos2unix-6.0.3/dos2unix.htm
/usr/share/locale/de/LC_MESSAGES/dos2unix.mo
/usr/share/locale/eo/LC_MESSAGES/dos2unix.mo
/usr/share/locale/es/LC_MESSAGES/dos2unix.mo
/usr/share/locale/nl/LC_MESSAGES/dos2unix.mo
/usr/share/man/es/man1/dos2unix.1.gz
/usr/share/man/es/man1/mac2unix.1.gz
/usr/share/man/es/man1/unix2dos.1.gz
/usr/share/man/es/man1/unix2mac.1.gz
/usr/share/man/man1/dos2unix.1.gz
/usr/share/man/man1/mac2unix.1.gz
/usr/share/man/man1/unix2dos.1.gz
/usr/share/man/man1/unix2mac.1.gz
/usr/share/man/nl/man1/dos2unix.1.gz
/usr/share/man/nl/man1/mac2unix.1.gz
/usr/share/man/nl/man1/unix2dos.1.gz
/usr/share/man/nl/man1/unix2mac.1.gz
[root@nullpointerexception cdrom]# rpm -qf `which dos2unix`
dos2unix-6.0.3-7.el7.x86_64
[root@nullpointerexception cdrom]# which dos2unix
/usr/bin/dos2unix
[root@nullpointerexception cdrom]# rpm -qi dos2unix
Name        : dos2unix
Version     : 6.0.3
Release     : 7.el7
Architecture: x86_64
Install Date: Wed 23 Oct 2019 02:01:45 PM CST
Group       : Applications/Text
Size        : 194352
License     : BSD
Signature   : RSA/SHA256, Thu 10 Aug 2017 11:38:25 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : dos2unix-6.0.3-7.el7.src.rpm
Build Date  : Thu 03 Aug 2017 08:40:06 AM CST
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://waterlan.home.xs4all.nl/dos2unix.html
Summary     : Text file format converters
Description :
Convert text files with DOS or Mac line endings to Unix line endings and
vice versa.
[root@nullpointerexception cdrom]# rpm -qc dos2unix
[root@nullpointerexception cdrom]# rpm -qd dos2unix
/usr/share/doc/dos2unix-6.0.3/COPYING.txt
/usr/share/doc/dos2unix-6.0.3/ChangeLog.txt
/usr/share/doc/dos2unix-6.0.3/NEWS.txt
/usr/share/doc/dos2unix-6.0.3/README.txt
/usr/share/doc/dos2unix-6.0.3/TODO.txt
/usr/share/doc/dos2unix-6.0.3/dos2unix.htm
/usr/share/man/es/man1/dos2unix.1.gz
/usr/share/man/es/man1/mac2unix.1.gz
/usr/share/man/es/man1/unix2dos.1.gz
/usr/share/man/es/man1/unix2mac.1.gz
/usr/share/man/man1/dos2unix.1.gz
/usr/share/man/man1/mac2unix.1.gz
/usr/share/man/man1/unix2dos.1.gz
/usr/share/man/man1/unix2mac.1.gz
/usr/share/man/nl/man1/dos2unix.1.gz
/usr/share/man/nl/man1/mac2unix.1.gz
/usr/share/man/nl/man1/unix2dos.1.gz
/usr/share/man/nl/man1/unix2mac.1.gz

rpm -q 进入询问模式遇到问题时会问用户
rpm -qa 查看全部软件
rpm -ql 查看安装软件后这个软件的文件放的位置
rpm -qf 这个选项后面放的是一个指令的目录,能够显示这个指令是什么软件安装的。
rpm -qi 查看软件的接口
rpm -qc 查看软件的配置文件
rpm -qd 查看软件的帮助文档位置

在软件没安装时查看信息

[root@jiang ~]# rpm -qip ntfs-3g-2011.4.12-5.el6.x86_64.rpm				  	
[root@jiang ~]# rpm -qlp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@jiang ~]# rpm -qcp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@jiang ~]# rpm -qdp ntfs-3g-2011.4.12-5.el6.x86_64.rpm

卸载:

[root@nullpointerexception cdrom]# rpm -e dos2unix 
[root@nullpointerexception cdrom]# rpm -e ntfs-3g --nodeps  忽略依赖关系的卸载

导入数字签名
数字签名主要做验证用,没有的话会有警告。主要是为了安全。

[root@nullpointerexception cdrom]# rpm --import RPM-GPG-KEY-CentOS-7

光盘文件的结构

[root@nullpointerexception cdrom]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

RPM-GPG-KEY-CentOS-7
RPM-GPG-KEY-CentOS-Testing-7
数字签名文件。
Packages :软件包存放的地方。
repodata :存储依赖关系的

海量的选项:

    -a  查询所有套件。
    -b<完成阶段><套件档>+-t <完成阶段><套件档>+  设置包装套件的完成阶段,并指定套件档的文件名称。
    -c  只列出组态配置文件,本参数需配合"-l"参数使用。
    -d  只列出文本文件,本参数需配合"-l"参数使用。
    -e<套件档>或--erase<套件档>  删除指定的套件。
    -f<文件>+  查询拥有指定文件的套件。
    -h或--hash  套件安装时列出标记。
    -i  显示套件的相关信息。
    -i<套件档>或--install<套件档>  安装指定的套件档。
    -l  显示套件的文件列表。
    -p<套件档>+  查询指定的RPM套件档。
    -q  使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
    -R  显示套件的关联性信息。
    -s  显示文件状态,本参数需配合"-l"参数使用。
    -U<套件档>或--upgrade<套件档> 升级指定的套件档。
    -v  显示指令执行过程。
    -vv  详细显示指令执行过程,便于排错。
    -addsign<套件档>+  在指定的套件里加上新的签名认证。
    --allfiles  安装所有文件。
    --allmatches  删除符合指定的套件所包含的文件。
    --badreloc  发生错误时,重新配置文件。
    --buildroot<根目录>  设置产生套件时,欲当作根目录的目录。
    --changelog  显示套件的更改记录。
    --checksig<套件档>+  检验该套件的签名认证。
    --clean  完成套件的包装后,删除包装过程中所建立的目录。
    --dbpath<数据库目录>  设置欲存放RPM数据库的目录。
    --dump  显示每个文件的验证信息。本参数需配合"-l"参数使用。
    --excludedocs  安装套件时,不要安装文件。
    --excludepath<排除目录>  忽略在指定目录里的所有文件。
    --force  强行置换套件或文件。
    --ftpproxy<主机名称或IP地址>  指定FTP代理服务器。
    --ftpport<通信端口>  设置FTP服务器或代理服务器使用的通信端口。
    --help  在线帮助。
    --httpproxy<主机名称或IP地址>  指定HTTP代理服务器。
    --httpport<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。
    --ignorearch  不验证套件档的结构正确性。
    --ignoreos  不验证套件档的结构正确性。
    --ignoresize  安装前不检查磁盘空间是否足够。
    --includedocs  安装套件时,一并安装文件。
    --initdb  确认有正确的数据库可以使用。
    --justdb  更新数据库,当不变动任何文件。
    --nobulid  不执行任何完成阶段。
    --nodeps  不验证套件档的相互关联性。
    --nofiles  不验证文件的属性。
    --nogpg  略过所有GPG的签名认证。
    --nomd5  不使用MD5编码演算确认文件的大小与正确性。
    --nopgp  略过所有PGP的签名认证。
    --noorder  不重新编排套件的安装顺序,以便满足其彼此间的关联性。
    --noscripts  不执行任何安装Script文件。
    --notriggers  不执行该套件包装内的任何Script文件。
    --oldpackage  升级成旧版本的套件。
    --percent  安装套件时显示完成度百分比。
    --pipe<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。
    --prefix<目的目录>  若重新配置文件,就把文件放到指定的目录下。
    --provides  查询该套件所提供的兼容度。
    --queryformat<档头格式>  设置档头的表示方式。
    --querytags  列出可用于档头格式的标签。
    --rcfile<配置文件>  使用指定的配置文件。
    --rebulid<套件档>  安装原始代码套件,重新产生二进制文件的套件。
    --rebuliddb  以现有的数据库为主,重建一份数据库。
    --recompile<套件档>  此参数的效果和指定"--rebulid"参数类似,当不产生套件档。
    --relocate<原目录>=<新目录>  把本来会放到原目录下的文件改放到新目录。
    --replacefiles  强行置换文件。
    --replacepkgs  强行置换套件。
    --requires  查询该套件所需要的兼容度。
    --resing<套件档>+  删除现有认证,重新产生签名认证。
    --rmsource  完成套件的包装后,删除原始代码。
    --rmsource<文件>  删除原始代码和指定的文件。
    --root<根目录>  设置欲当作根目录的目录。
    --scripts  列出安装套件的Script的变量。
    --setperms  设置文件的权限。
    --setugids  设置文件的拥有者和所属群组。
    --short-circuit  直接略过指定完成阶段的步骤。
    --sign  产生PGP或GPG的签名认证。
    --target=<安装平台>+  设置产生的套件的安装平台。
    --test  仅作测试,并不真的安装套件。
    --timecheck<检查秒数>  设置检查时间的计时秒数。
    --triggeredby<套件档>  查询该套件的包装者。
    --triggers  展示套件档内的包装Script。
    --verify  此参数的效果和指定"-q"参数相同。
    --version  显示版本信息。
    --whatprovides<功能特性>  查询该套件对指定的功能特性所提供的兼容度。
    --whatrequires<功能特性>  查询该套件对指定的功能特性所需要的兼容度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值