1. rpm
Linux rpm 命令用于管理套件。
rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎
rpm常见命令参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
用法: rpm [选项...] -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:详细显示指令执行过程,便于排错。 |
---|---|
常用的命令展示
如何安装rpm软件包
1 2 |
rpm -ivh your-package ``# 直接安装 rpmrpm --force -ivh your-package.rpm ``# 忽略报错,强制安装 |
---|---|
如何卸载rpm软件包
1 2 3 |
[root@localhost ~]``# rpm -ql tree # 查询 [root@localhost ~]``# rpm -e tree # 卸载 [root@localhost ~]``# rpm -ql tree # 查询 |
---|---|
列出所有安装过的包
1 | [root@localhost ~]``# rpm -qa |
---|---|
如何获得某个软件包的文件全名
1 | [root@localhost ~]``# rpm -q tree |
---|---|
rpm包中的文件安装的位置
[root@localhost ~]# rpm -ql tree # rpm -ql 包名
哪个软件包包含这个程序
1 2 3 |
rpm -qf ```which 程序名 #返回软件包的全名`<br />`rpm -qif ```which` `程序名` #返回软件包的有关信息<br /> rpm -qlf `which` `程序名` #返回软件包的文件列表[root@localhost ~]# rpm -qf `which sshd`` |
---|---|
2. yum
yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum 语法
yum [options] [command] [package …]
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package:安装的包名。
yum常用命令
- 列出所有可更新的软件清单命令:yum check-update
- 列出所有可更新的软件清单命令:yum check-update
- 更新所有软件命令:yum update
- 更新所有软件命令:yum update
- 仅安装指定的软件命令:yum install
- 仅安装指定的软件命令:yum install
- 仅更新指定的软件命令:yum update
- 仅更新指定的软件命令:yum update
- 列出所有可安裝的软件清单命令:yum list
- 列出所有可安裝的软件清单命令:yum list
- 删除软件包命令:yum remove
- 删除软件包命令:yum remove
- 查找软件包命令:yum search
- 查找软件包命令:yum search
- 清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
实例 1
安装 pam-devel[root@www ~]# yum install pam-devel
Setting up Install Process
Parsing package install arguments
Resolving Dependencies <==先检查软件的属性相依问题
--> Running transaction check
---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated
--> Processing Dependency: pam = 0.99.6.2-4.el5 for package: pam-devel
--> Running transaction check
---> Package pam.i386 0:0.99.6.2-4.el5 set to be updated
filelists.xml.gz 100% |=========================| 1.6 MB 00:05
filelists.xml.gz 100% |=========================| 138 kB 00:00
-> Finished Dependency Resolution
……(省略)
实例 2
移除 pam-devel[root@www ~]# yum remove pam-devel Setting up Remove Process Resolving Dependencies <==同样的,先解决属性相依的问题 --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Removing: pam-devel i386 0.99.6.2-4.el5 installed 495 k Transaction Summary ============================================================================= Install 0 Package(s) Update 0 Package(s) Remove 1 Package(s) <==还好,并没有属性相依的问题,单纯移除一个软件 Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : pam-devel ######################### [1/1] Removed: pam-devel.i386 0:0.99.6.2-4.el5 Complete!
实例 3
利用 yum 的功能,找出以 pam 为开头的软件名称有哪些? [root@www ~]# yum list pam* Installed Packages pam.i386 0.99.6.2-3.27.el5 installed pam_ccreds.i386 3-5 installed pam_krb5.i386 2.2.14-1 installed pam_passwdqc.i386 1.0.2-1.2.2 installed pam_pkcs11.i386 0.5.3-23 installed pam_smb.i386 1.1.7-7.2.1 installed Available Packages <==底下则是『可升级』的或『未安装』的 pam.i386 0.99.6.2-4.el5 base pam-devel.i386 0.99.6.2-4.el5 base pam_krb5.i386 2.2.14-10 base
- 清除缓存命令:
国内 yum 源
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。
将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
安装步骤
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
- CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
- CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
- CentOS7 :http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo
运行以下命令生成缓存
yum clean all
yum makecache
除了网易之外,国内还有其他不错的 yum 源,比如中科大和搜狐。
中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html
安装提示缺失库解决办法
对于 Linux 软件安装时提示缺失库的,可以使用 yum 的 provides 参数查看 libstdc++.so.6 的库文件包含在那个安装包中只需要执行:
yum provides libstdc++.so.6
然后按查询到安装包包名,使用 yum install 安装即可。
Cetnos7 配置阿里yum源
备份,将 CentOS-Base.repo 为CentOS-Base.repo.backup
[root@localhost ~]$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的 http://mirrors.aliyun.com/repo/Centos-7.repo,并命名为CentOS-Base.repo
[root@localhost ~]$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
[root@localhost ~]$ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清除缓存
[root@localhost ~]$ yum clean all # 清除系统所有的yum缓存
[root@localhost ~]$ yum makecache # 生成yum缓存
Cetnos6 配置阿里yum源
备份,将 CentOS-Base.repo 为CentOS-Base.repo.backup
[root@localhost ~]$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的 http://mirrors.aliyun.com/repo/Centos-6.repo,并命名为CentOS-Base.repo
[root@localhost ~]$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
或者
[root@localhost ~]$ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
清除缓存
[root@localhost ~]$ yum clean all # 清除系统所有的yum缓存
[root@localhost ~]$ yum makecache # 生成yum缓存
如果报错If above article doesn't help to resolve this issue please open a ticket wit
http://mirrors.cloud.aliyuncs.com/centos/6/os/x86_64/repodata/repomd.xml:
[Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'mirrors.cloud.aliyuncs.com'"
解决办法:
CentOS 6已经经历了2020年11月的结束进入了EOL(生命终结),不过有一些老设备依然需要支持,CentOS官方也给这些还不想把CentOS 6扔进垃圾堆的用户保留了最后一个版本的充分,只是这个有意义不会再有更新了
官方便在12月2日正式将CentOS 6相关的软件源移出了官方资源,随之而来逐级甚至也会陆续将其删除。
一键修复(复制到SSH执行即可):
[root@localhost ~]$ sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
[root@localhost ~]$ mv /etc/yum.repos.d/CentOS*.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@localhost ~]$ curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
[root@localhost ~]$ yum clean all && yum makecache
如何使用epel源
下载安装epel源
#下载epel源
[root@localhost ~]$ wget https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm
#安装epel源
[root@localhost ~]$ rpm -ivh epel-release-6-8.noarch.rpm
#清除下缓存
[root@localhost ~]$ yum clean all && yum makecache