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<功能特性> 查询该套件对指定的功能特性所需要的兼容度。