linux中对软件包的管理随系统发布版本的不同而不同。RPM和DPKG是最常见的两类软件包管理工具,分别应用于基于rpm的软件包。linux发行版和基于deb包的linux发行版。本文仅介绍如何使用RPM。另外一个命令虽然不同,但是用法类似,这里就不介绍了。1、rpmRPM包管理器选项-q表示查询系统安装的软件包[root@centos7~]#rpm-qsudosudo-1.8.6p7-16.el7.x86_64[root@centos7~]#rpm-qnginx否软件安装包nginx[root@centos7~]#选项-a表示查询所有安装的rpm包[root@centos7~]#rpm-qa|grepvimvim-filesystem-7.4.160-1.el7.x86_64vim-common-7.4。160-1.el7.x86_64vim-enhanced-7.4.160-1.el7.x86_64vim-minimal-7.4.160-1.el7.x86_64[root@centos7~]#选项-f文件表示查询到的软件包filebelongs[root@centos7~]#rpm-qf/usr/bin/lscoreutils-8.22-15.el7.x86_64[root@centos7~]#option-c表示查询软件包的配置文件[root@centos7~]#rpm-qcsudo/etc/pam.d/sudo/etc/pam.d/sudo-i/etc/sudo-ldap.conf/etc/sudo.conf/etc/sudoers[root@centos7~]#Option-e表示卸载软件包[root@centos7~]#rpm-esudowarning:/etc/sudoershasbeensavedas/etc/sudoers.rpmsave[root@centos7~]#rpm-qsudopackagenotinstalledsudo[root@centos7~]#option-i表示安装-v表示显示详细信息-h表示显示安装进度.rpm#install[root@centos7tmp]#rpm-ivhsudo-1.8.6p7-16.el7.x86_64.rpm警告:sudo-1.8.6p7-16.el7.x86_64.rpm:标头V4DSA/SHA1Signature,密钥ID192a7d7d:NOKEY正在准备...###################################[100%]升级/安装...1:sudo-1.8.6p7-16.el7###################################[100%]有很多软件不是只有一个rpm包,它们之间存在各种依赖关系。安装(或卸载)时,需要安装(或卸载)所有依赖包,才能安装(或卸载)成功。[root@centos7tmp]#rpm-evim-commonerror:dependencydetectionfailed:vim-common=2:7.4.160-1.el7was(installed)vim-enhanced-2:7.4.160-1.el7.x86_64需要选项--nodeps忽略依赖关系[root@centos7tmp]#rpm-qvim-commonvim-common-7.4.160-1.el7.x86_64[root@centos7tmp]#rpm-e--nodepsvim-common警告:/etc/vimrc已保存为/etc/vimrc.rpmsave[root@centos7tmp]#rpm-qvim-commonnopackageinstalledvim-commonoption-U表示升级包[root@centos7tmp]#rpm-qwgetwget-1.14-10.el7_0。1.x86_64[root@centos7tmp]#rpm-Uvhwget-1.14-13.el7.x86_64.rpm准备中...##################################[100%]升级/安装...1:wget-1.14-13.el7##################################[50%]清理/删除...2:wget-1.14-10.el7_0.1#################################[100%][root@centos7tmp]#rpm-qwgetwget-1.14-13.el7.x86_642,yum下载更新程序yum[选项][命令][package...]yum是一个交互式的基于rpm的包管理器安装软件时,yum不需要像rpm那样手动搜索安装。运行时会在源中搜索rpm包,自动解析依赖,自动下载安装。yum默认源配置文件位于目录/etc/yum.repos.d中。命令install的意思是安装[root@centos7~]#yuminstallvim-common插件已经加载:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:mirrors.yun-idc.com*extras:mirrors.yun-idc.com*updates:mirrors。yun-idc.comisbeingResolvingDependencies-->CheckingTransactions--->packagevim-common.x86_64.2.7.4.160-1.el7willbeinstalled-->ResolvingDependenciesFinishedDependencyResolution....#省略一些输出安装1软件包总下载量:5.9M安装大小:21MIsthisok[y/d/N]:y#这里需要输入确认是否安装Downloadingpackages:vim-common-7.4.160-1.el7.x86_64。rpm|5.9MB00:00:00RunningtransactioncheckRunningtransactiontestTransactiontestsucceededRunningtransaction警告:RPM数据库已被非yum程序修改。**Found1existingRPMdatabaseproblem,'yumcheck'输出如下:2:vim-enhanced-7.4.160-1.el7.x86_64hasmissingrequirementsvim-common=('2','7.4.160','1.el7')安装:2:vim-common-7.4.160-1.el7.x86_641/1验证:2:vim-common-7.4.160-1.el7.x86_641/1安装:vim-common。x86_642:7.4.160-1.el7完成!命令check-update表示检查更新命令update表示升级命令search表示搜索软件包命令list表示列出可用的软件包如果输入yesyum源中没有要安装的包,会报没有包可用的错误。这时候可以通过添加新的yum源来解决。例如在centos7中安装nginx:#installrepo[root@centos7tmp]#rpm-ivhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm获取http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm警告:/var/tmp/rpm-tmp.cUANoe:标头V4RSA/SHA1Signature,密钥ID7bd9bf62:准备中的NOKEY...###################################[100%]升级/安装...1:nginx-release-centos-7-0.el7.ngx##################################[100%]此时在/etc/yum.repos.detc/yum.repos中新增了一个文件nginx.repo[root@centos7tmp]#cat/.d/nginx.repo#nginx.repo[nginx]name=nginxrepos#namebaseurl=http://nginx.org/packages/centos/7/$basearch/#源地址gpgcheck=0#是否检查key,0表示不勾选enabled=1#这里等于0表示不启用baseurl,1表示启用baseurl现在可以通过命令yuminstall-ynginx安装nginx当服务器没有可用网络时,可以a还设置本地yum源。这时候就需要手动配置repo文件了。首先,将安装光盘或ios文件挂载到系统中(挂载见此文)[root@centos7tmp]#mountCentOS-7-x86_64-DVD-1611.iso/mediamount:/dev/loop2iswrite-protected,它会以只读模式挂载[root@centos7tmp]##如果是CD,像这样挂载:[root@centos7tmp]#mount/dev/cdrom/mediamount:/dev/sr0writeProtection,会被以只读模式挂载[root@centos7tmp]##Uninstallwithumountoreject[root@centos7tmp]#umount/media[root@centos7tmp]#eject编辑yum源配置文件vim/etc/yum.repos。d/local.repo[local]name=testbaseurl=file:///media#这里baseurl写入前缀(file://)+挂载点enabled=1gpgcheck=0然后将原来的网络源配置文件备份到另一个目录,只有local.repo文件保存在/etc/yum.repo.d中。安装软件:yuminstallbc-y3,源码包。上面提到的rpm和deb都是二进制软件包。由于这些软件包已经过编译,用户无法设置编译选项或对软件进行任何更改。相对而言,使用源码包编译安装软件提供了更大的灵活性。编译期间可以指定各种选项,对于有能力的用户,还可以修改源代码。下面介绍如何在Linux下安装源码包1)、获取源码包wgethttp://mirrors.sohu.com/nginx/nginx-1.9.6.tar.gz2)、解压tarzxfnginx-1.9.6.tar。gz3),在此处配置[root@idc-v-71252src]#cdnginx-1.9.6[root@idc-v-71252nginx-1.9.6]#./configure--prefix=/usr/local/nginx配置选项--prefix=/usr/local/nginx表示指定的nginx安装路径为/usr/local/nginx。您可以执行./configure--help查看配置参数。该步骤的执行将检查系统是否满足编译要求。如果报错,很多时候是因为缺少一些编译工具,可以使用yum安装这些工具(当然也可以安装源码)。本例报错:./configure:error:theHTTPrewritemodulerequiresthePCRElibrary..说明缺少pcre库,检查系统:[root@idc-v-71252nginx-1.9.6]#rpm-qapcrepcre-8.32-15.el7.x86_64[root@idc-v-71252nginx-1.9.6]#system安装了pcre,但是没有devel包。使用yum安装[root@idc-v-71252nginx-1.9.6]#yuminstallpcre-devel-y再次执行configure,发现报错改了:./configure:error:theHTTPgzipmodulerequiresthezliblibrary。重复以上操作,直到安装好需要的软件,再执行/configure--prefix=/usr/local/nginx4,编译[root@idc-v-71252nginx-1.9.6]#make-j8使用make来编译,选项-j表示指定并发执行数,指定与系统逻辑CPU数相同的并发执行数(可以使用命令grep-c"^processor"/proc/cpuinfo查看逻辑CPU的数量)。这一步也可能出现错误,通常是因为缺少包。仔细阅读错误信息,一般不难解决。5、安装[root@idc-v-71252nginx-1.9.6]#makeinstall如果没有报错,则安装软件包,安装文件在/usr/local/nginx中。源码包的大致安装过程就说到这里了。一些源代码包的安装可能会有所不同。一般源码包都有相应的安装说明文件(README或INSTALL)。仔细阅读这些文件或查看软件的官方网站。了解如何安装它们。
