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-qnginxnotInstallthesoftwarepackagenginx[root@centos7~]#option-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文件表示软件包查询文件所属的[root@centos7~]#rpm-qf/usr/bin/lscoreutils-8.22-15.el7.x86_64[root@centos7~]#选项-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~]#选项-e表示卸载软件包[root@centos7~]#rpm-esudoWARNING:/etc/sudoers已保存为/etc/sudoers.rpmsave[root@centos7~]#rpm-qsudopackage未安装sudo[root@centos7~]#选项-i表示安装-v表示显示详细信息-h表示显示安装进度#下载rpm包[root@centos7tmp]#wgetftp.scientificlinux.org/linux/scientific/7rolling/x86_64/os/Packages/sudo-1.8.6p7-16.el7.x86_64.rpm#Install[root@centos7tmp]#rpm-ivhsudo-1.8.6p7-16.el7.x86_64.rpm警告:sudo-1.8.6p7-16.el7.x86_64.rpm:标头V4DSA/SHA1签名,密钥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.el7is(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-common不安装包vim-common选项-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,yumdownloadupdateryum[options][command][package...]yum是一个基于rpm的交互式包管理器yum不安装软件需要自己手动查找和rpm安装一样,运行时会在源中搜索rpm包,自动解析依赖,自动下载安装。yum默认源配置文件位于目录/etc/yum.repos.d中。命令install表示安装[root@centos7~]#yuminstallvim-commonhasloadedtheplugin:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:mirrors.yun-idc.com*extras:mirrors.yun-idc.com*更新:mirrors.yun-idc.comisresolvingdependencies-->checkingtransactions--->packagevim-common.x86_64.2.7.4.160-1.el7willbeinstalled-->resolvingdependenciescompletedependencyresolution....#省略部分输出安装1包下载总量:5.9M安装大小:21MIsthisok[y/d/N]:y#需要在这里输入确认是否安装Downloadingpackages:vim-common-7.4.160-1.el7.x86_64.rpm|5.9MB00:00:00运行事务检查运行事务测试事务测试成功运行事务警告:RPM数据库已被yum以外的程序修改。**Found1existingRPMdatabaseproblem,'yumcheck'输出如下:2:vim-enhanced-7.4.160-1.el7.x86_64hasmissingrequirementvim-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/SHA1签名,密钥ID7bd9bf62:NOKEY准备...##################################[100%]升级/安装...1:nginx-release-centos-7-0.el7.ngx##################################[100%]新建文件nginx.repo[root@centos7tmp]#cat/etc/yum.repos.d/nginx.repo#nginx.repo[nginx]name=nginxrepos#namebaseurl=http://nginx.org/packages/centos/7/$basearch/#源地址gpgcheck=0#是否校验key,0表示nottocheckenabled=1#这里等于0表示不启用baseurl,1表示启用baseurl现在可以在服务器没有可用网络的情况下通过命令yuminstall-ynginx安装nginx,也可以设置一个本地百胜源。这时候就需要手动配置repo文件了。首先,将安装光盘或ios文件挂载到系统中(更多挂载信息见本文)[root@centos7tmp]#mountCentOS-7-x86_64-DVD-1611。iso/mediamount:/dev/loop2是写保护的,将以只读方式挂载[root@centos7tmp]##如果是光盘,这样挂载:[root@centos7tmp]#mount/dev/cdrom/mediamount:/dev/sr0被写保护,将以只读模式挂载[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://)+mountpointenabled=1gpgcheck=0然后把原来有的网络源配置文件备份到另一个目录下,/etc/yum.repo.d中只保留local.repo文件。安装软件:yuminstallbc-y3,上面提到的rpm和deb都是二进制软件包。由于这些软件包已经过编译,用户无法设置编译选项或对软件进行任何更改。相对而言,使用源码包编译安装软件提供了更大的灵活性。编译期间可以指定各种选项,对于有能力的用户,还可以修改源代码。下面介绍如何在linux下安装源码包1.获取源码包wgethttp://mirrors.sohu.com/nginx/nginx-1.9.6.tar.gz2.解压tarzxfnginx-1.9.6。柏油。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]#系统安装了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)。仔细阅读这些文件或查看软件的官方网站。了解如何安装它们。
