设为首页 收藏本站
查看: 1409|回复: 0

[经验分享] 在linux下安装软件

[复制链接]

尚未签到

发表于 2019-2-17 13:31:05 | 显示全部楼层 |阅读模式
1.采用rpm安装软件
  采用rpm安装时,主要有三个选项,分别是-i选项,-q选项,-V选项,这三个选项都有着若干个子选项,我们将会分条介绍这些选项。
1.-e选项
在介绍安装之前我们要先介绍卸载命令,这样我们就可以拿一个包进行反复试验,其命令如下:

rpm -e ftp

  2.-i选项
-i 选项
单此一个选项,后面跟上安装包的路径,就是安装软件,我们ftp为例,将光盘挂载在/media下:

mount /dev/cdrom /media
  安装命令如下:

rpm -i /media/Package/ftp-0.17-54.el6.x86_64.rpm

用-i选项不会显示任何安装信息,你甚至不知道有没有安装成功。
-v选项
-v选项的作用就是显示安装的详细信息,他是-i的子选项,只能配合-i使用,单独使用将没有任何意义,例如:


rpm -iv /media/Package/ftp-0.17-54.el6.x86_64.rpm

如果嫌弃这样显示的信息还不够详细,可以再加一个-v选项。
-h选项
-h选项的作用就是显示安装百分比,例如


rpm -ih /media/Package/ftp-0.17-54.el6.x86_64.rpm

所以最经典的安装选项搭配就是-ivh,这是我们安装软件过程中最常用的选项
--test选项
-test选项的用途是测试安装,并不真正的安装软件,我们可以测试当前环境能不能安装,例如:


rpm -i --test /media/Package/ftp-0.17-54.el6.x86_64.rpm

--nodeps选项
--nodeps选项是在安装软件时忽略依赖性关系,某些软件在安装时需要安装其他的软件,否则不能安装成功,这时如果使用--nodeps就可以忽略这些依赖性关系进行安装,例如:


rpm -i --test /media/Packages/samba4-4.2.10-9.el6.x86_64.rpm


rpm -i --nodeps --test /media/Packages/samba4-4.2.10-9.el6.x86_64.rpm

--replacepkgs选项
重复安装已经安装过的包,文件覆盖。例如:


rpm -i --replacepkgs /media/Packages/tree-1.5.3-3.el6.x86_64.rpm

--replacefiles选项
将要安装包的部分文件与其他已安装的包文件冲突,可继续安装,文件不覆盖。例如
--oldpackages选项
已安装过新版本,现在安装旧版本
--force选项
等同于 --replacepkgs, --replacefiles, and --oldpackage.例如


rpm -i --force /media/Packages/tree-1.5.3-3.el6.x86_64.rpm

--noscripts选项
安装时不执行rpm包中的脚本。在有些软件包中,存在一些脚本,当安装软件包时,会自行执行这些脚本,使用该选项就可以在安装过程中不执行这些软件包所携带的脚本。例如:
首先查看apache用户是否存在:


id apache

安装httpd,可能因为某些依赖关系而使得安装不成功,所以我们加上--nodeps选项命令如下:


rpm -ih --nodeps /media/Packages/httpd-2.4.6-80.el7.centos.x86_64.rpm

现在再查看用户apache是否存在;


id apache

我们可以发现安装httpd后,多出了一个名为apache的用户,我们并没有手工去创建他,为什么会出现呢?因为在httpd安装过程中,执行了创建apache用户的脚本,如果我们使用--noscripts选项,就不会有脚本执行。

  3.-q选项
-q选项是查看当前安装软件包的信息,和-i选项相似,他也有着众多的子选项。
单-q一个选项是查看已安装包的描述信息,如果这个包没有安装,则提示没有安装,例如:

-a 选项
列出所有已安装的软件包,我们采用管道计算一下安装了多少软件包。
rpm -qa |wc -l

-f选项
查看指定文件来源自哪一个安装包,-f后跟的应该是文件的绝对路径。例如:

rpm -qf /etc/rc.d/init.d/function

  -i选项
这个选项可以显示包的详细信息,不在演示。
-p选项
查询未安装的rpm包的信息,查询信息的数据来自于rpm包,-p后面应该加上rpm路径,例如

rpm -qi -p /media/Packages/ftp-0.17-54.el6.x86_64.rpm

--provides选项
查询某个包提供了哪些能力


rpm -q --provides httpd
  --whatprovides选项
查询某个能力由哪一个rpm包提供,例如

rpm -q --whatprovides webserver

--whatrequires选项
查询某个能力被哪个rpm包所依赖,例如:


rpm -q --whatrequires webserver

--changelog选项
查询更新日志,这个选项用处不大,不做过多介绍。
-l
列出软件包提供的所有文件
-c
列出软件包提供的配置文件
-d
列出软件包提供的文档文件
这三个选项都是列出软件包提供的文件,但是只能列出已安装的软件提供的文件。例如


rpm -q -l httpd
rpm -q -c httpd
rpm -q -d httpd
  这样可以列出httpd提供的所有文件,配置文件,文档文件。
  3. -V选项
-V选项是用来进行包校验的,如果结果有下面的结果,说明,有内容被修改。
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTimediffers
P capabilities differ
例如:

rpm -V httpd
  这时是什么都不会显示的,因为没有修改过httpd的任何文件,现在我往httpd.conf中第一行加入123.
再次执行上面命令,结果如下:

说明软件包被修改过了,具体修改了什么东西,可以参考上面。

2.采用yum安装
  当我们使用rpm安装软件时,我们会发现我们安装的包可能会依赖于其他文件,这些文件属于那些我们没有安装的包,当我们先行安装其他包时,这些软件包也有可能依赖于其他文件,如此层层递归下去,会使我们的安装过程中变得无比的繁琐,而且有些文件名和包名是相关的,有些则不是,此时我们根本不知道这些软件包来源于哪里,此时将会进退维谷,而yum是rpm的前端程序,可以解决软件包相关依赖性。可在多个库之间定位软件包。
想要使用yum,首先需要做的就是配置yum仓库,yum仓库文件在/etc/yum.repos
.d文件夹下,然后命名为.repo ,可以是任何内容,但一定要以repo结尾,内容格式如下:

[candvd]
name=Can
baseurl=file:///media
enabled=1
gpgcheck=0
gpgkey=file:///media/RPM-GPG-KEY-CentOS-6
  其中[candvd]是仓库id,可以是任何内容,name即是仓库名,也可以是任何内容,baseurl是仓库指向的路径,如果是一个文件就是file:// 后面跟上文件的路径,如果是一个链接,即是跟上链接如:http://172.18.0.1/centos/$releasever ,路径或者链接一定要到包含repodata的目录,如上,路径是挂载的光盘的路径/media,而在/media下有着目录repodata,那么路径就到此处。enable是代表是否启用该仓库,1代表启用,0代表不启用,gpgcheck代表是否启用gpg验证,1代表启用,0代表不启用。gpgkey代表的是公钥,gpg是一种数据加密和数字签名的方法,能够保证数据传输的可靠性,centos光盘中有着gpgkey,我们可以使用下面的命令导入公钥:

rpm --import /media/RPM-GPG-KEY-CentOS-6
  然后可以通过下面的命令查看是否导入成功:

rpm -qa "gpg-pubkey*"

  结果如下:

当我们配置好一个仓库后,需要用两条命令使仓库生效,命令如下:
清空仓库缓存

yum clean all      

重建仓库缓存


yum makecache
  其实我们不需要重建yum仓库,当我们执行任意一条yum命令时,当没有仓库缓存时,系统会为我们自行重建仓库。
我们可以用下面的命令来查看我们的仓库:

yum repolist

可以看到现在有着三个仓库,id分别为base,candvd,epel,两个是我先行配置的网络仓库,使用的是教室服务器所提供的yum源,还有一个是本地的光盘源,这三个yum源一共提供25767个软件包。
repolist 还有三个选项,第一个是enabled也是系统默认的,显示激活的仓库,我们将base禁用掉,再查看,可以发现不在显示base仓库。

第二个选项是disabled,显示禁用的仓库:

第三个是all,显示所有仓库:

  使用yum安装的方法是yum install +包名,也可以同时安装多个包,加上-y是非交互式安装。命令如下:

yum install -y 包1 包2 ...包n
  yum list 可以列出仓库以及系统所提供的所有包,相当于yum list all,可以接仓库的id,如果最后一列显示是仓库id,那么表示该软件包时属于该仓库未安装的包;如果显示的是@加仓库id,那么该软件包是已安装的包,并且属于该仓库;如果是@anaconda 该包已安装,且是从操作系统的安装程序anaconda安装的。
yum list 可以跟选项,接all 就是列出所有包,默认是all,接updates就是列出所有可更新的包,接installed就是列出所有已安装的包,如果最后一列是@repoid 表示该包安装自指定的仓库,如果是installed 表示该包由rpm命令手工安装,例如:

reinstall选项,能够重新安装指定的包名,命令如下:

yum reinstall -y +包名
  update选项,能够更新指定的包,如:

yum update tree

remove选项,能够卸载指定的包,如:


yum remove tree -y

info选项,能够查看指定包的详细信息,如:


yum info tree

provides选项,能够搜索某一个文件来自哪个软件包,可以是未安装的软件包,如:


yum provides "*/rz"

search选项,能够模糊搜索,搜索的是软件包和软件包的描述信息,例如:


yum search ftp

  deplist选项,能够列出指定包所依赖的所有包,例如:

yum deplist tree

history选项,能够列出所有的yum历史,例如:

info加上history编号,能够查看某条历史的详细信息,例如:


yum history info 12

history redo 重做某条历史,history undo 撤销某条历史。
yum [local]install /path/*.rpm 可以安装本地包。

  yum包组:
yum grouplist 列出所有的包组名
yum groupinfo '包组名' 查看指定包组中包含哪个包
yum groupinstall '包组名'
yum groupupdate '包组名'
yum groupremove '包组名'

3.采用dnf安装
  dnf是一个较新的安装命令,centos6不支持dnf,可以在centos7上安装dnf,dnf安装速度比yum要快的多,但是几乎所有的yum选项dnf都支持,并且dnf与yum共享数据库,具体安装命令如下:

yum install -y dnf
  安装dnf首先是要有dnf的源,可以从网路途径获取,当安装dnf后,会发现,dnf使用的仓库即是yum的仓库。
安装dnf后,我们可以像使用yum那样使用dnf进行安装软件,例如:

dnf install -y tree





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673608-1-1.html 上篇帖子: linux 学习内容 下篇帖子: Linux题目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表