Linux的软件安装方式有三种:
1、基于rpm的方式
2、基于yum的方式
3、基于makefile
基于rpm的安装方式
rpm就类似于windows的添加删除程序,它是一个完整的软件包的管理工具,可以安装,卸载,还可以查询,rpm中有比较常用的几个参数:1、-i 表示安装 2、 -e 表示删除 ,3、 -q 表示查询
rpm -qa -->表示查询系统中的所有的安装包,此时查询出来的内容非常多,可以通过管道|和grep来进行筛选
rpm -qa | grep sudo-->表示筛选所有的sudo的安装文件
[root@localhost ~]# rpm -qa | grep sudo
sudo-1.8.6p7-20.el7.x86_64
这个安装包的名称是有规律的
sudo-->表示安装包的名称,这个名称用来做卸载,更新等操作
1.8.6p7-->表示的是版本号
-20.el7-->表示的更新次数
x86_64-->针对的是64位的基于intel的cpu
通过 -e可以卸载一个软件
rpm -e sudo
通过rpm -i 就可以安装这个软件
rpm -ivh xxxxx.rpm-->表示安装一个rpm的文件,i表示安装,v表示显示详细的安装信息。h表示显示进度
rpm的安装并不是自动帮助我们安装依赖,所有的依赖都需要手动安装,而且版本还有明确的规定。如果版本不兼容,就有可能导致软件不能使用,所以使用rpm安装,不建议在网络中下载,而是建议使用cdrom来安装,在服务器中,可以考虑将Packages拷贝到一个文件夹中,将来要安装的时候在这个文件夹中进行安装,这样的所有的版本依赖都是合理的。
后面会讲解yum,yum就等于一个自动的rpm,他会自动帮我们安装依赖包,yum需要网络,如果没有网络,我们可以创建自己的yum工厂,以光盘中的packages文件夹来创建。
rpm的查询
rpm -qa -->查询所有的安装包
rpm -qf -->查询某个命令属于哪个安装包
[root@localhost Packages]# rpm -qf /usr/bin/vi
vim-minimal-7.4.160-1.el7.x86_64
表示vi这个命令的安装包是vim-minimal这个安装包
通过rpm -ql 软件名称 可以查询某个软件的安装文件的路径,注意linux中,任意一个软件都不会安装在一个位置,而是安装在多个位置,这些位置是有linux帮我确定的,一般来说会把可执行文件安装/usr/bin中。帮助文档会安装在/usr/share/man中,其他的依赖包,日志这些都会安装在相应的文件夹下
[root@localhost Packages]# rpm -ql samba-client
/usr/bin/cifsdd
/usr/bin/dbwrap_tool
/usr/bin/nmblookup
/usr/bin/oLschema2ldif
/usr/bin/regdiff
/usr/bin/regpatch
/usr/bin/regshell
/usr/bin/regtree
/usr/bin/rpcclient
/usr/bin/samba-regedit
/usr/bin/sharesec
/usr/bin/smbcacls
/usr/bin/smbclient
/usr/bin/smbcquotas
/usr/bin/smbget
/usr/bin/smbprint
/usr/bin/smbspool
/usr/bin/smbtar
/usr/bin/smbtree
/usr/libexec/samba
/usr/libexec/samba/cups_backend_smb
/usr/share/man/man1/dbwrap_tool.1.gz
/usr/share/man/man1/log2pcap.1.gz
/usr/share/man/man1/nmblookup.1.gz
/usr/share/man/man1/oLschema2ldif.1.gz
/usr/share/man/man1/regdiff.1.gz
/usr/share/man/man1/regpatch.1.gz
/usr/share/man/man1/regshell.1.gz
/usr/share/man/man1/regtree.1.gz
/usr/share/man/man1/rpcclient.1.gz
/usr/share/man/man1/sharesec.1.gz
/usr/share/man/man1/smbcacls.1.gz
/usr/share/man/man1/smbclient.1.gz
/usr/share/man/man1/smbcquotas.1.gz
/usr/share/man/man1/smbget.1.gz
/usr/share/man/man1/smbtar.1.gz
/usr/share/man/man1/smbtree.1.gz
/usr/share/man/man5/smbgetrc.5.gz
/usr/share/man/man8/cifsdd.8.gz
/usr/share/man/man8/samba-regedit.8.gz
/usr/share/man/man8/smbspool.8.gz
在实际的使用中,我在安装某个软件之前,可能就需要了解一下这个软件的安装包的位置,(此时还没有安装),可以通过rpm -qlp 来查询,-p表示package意味着是要查询软件的安装包(rpm文件)
rpm -qlp samba-4.4.4-9.el7.x86_64.rpm##由于该安装包并没有安装在linux中,所以需要使用rpm的文件来查询
使用rpm -qi 软件名称 可以查询一个软件的功能
[root@localhost Packages]# rpm -qi samba-client
Name : samba-client
Epoch :0
Version :4.4.4
Release :9.el7
Architecture: x86_64
Install Date: Tue10Apr201811:13:30 AM CST
Group : Applications/System
Size :1826831
License : GPLv3+and LGPLv3+
Signature : RSA/SHA256, Mon21Nov201604:38:35 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : samba-4.4.4-9.el7.src.rpm
Build Date : Mon07Nov201606:31:03 PM CST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem
Vendor : CentOS
URL : http://www.samba.org/
Summary : Samba client programs
Description :
The samba-client package provides some SMB/CIFS clients to complement
the built-in SMB/CIFS filesysteminLinux. These clients allow access
of SMB/CIFS shares and printing to SMB/CIFS printers.
同理 rpm -qip 软件包 这表示查询未安装的软件包的基本信息
rpm -qip samba-client-4.4.4-9.el7.x86_64.rpm
使用-qd和-qc可以快速的查询出samba的帮助文档和配置文件的位置
rpm的常用安装选项是使用-- --nodeps(表示不添加依赖直接安装,但是这样安装出来,90%都是无法使用的) --excludedocs:安装的时候不安装文档 --replacepkgs:覆盖安装 --replacefiles:安装时覆盖文件