13LinuxRPM和YUM和APT

RPM

转自:Linux rpm命令 | 菜鸟教程 (runoob.com)

介绍

image-20221201123251673

rpm 命令用于管理套件。

rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

语法

rpm [-acdhilqRsv][-b<完成阶段><套间档>+][-e<套件挡>][-f<文件>+][-i<套件档>][-p<套件档>+][-U<套件档>][-vv][--addsign<套件档>+][--allfiles][--allmatches][--badreloc][--buildroot<根目录>][--changelog][--checksig<套件档>+][--clean][--dbpath<数据库目录>][--dump][--excludedocs][--excludepath<排除目录>][--force][--ftpproxy<主机名称或IP地址>][--ftpport<通信端口>][--help][--httpproxy<主机名称或IP地址>][--httpport<通信端口>][--ignorearch][--ignoreos][--ignoresize][--includedocs][--initdb][justdb][--nobulid][--nodeps][--nofiles][--nogpg][--nomd5][--nopgp][--noorder][--noscripts][--notriggers][--oldpackage][--percent][--pipe<执行指令>][--prefix<目的目录>][--provides][--queryformat<档头格式>][--querytags][--rcfile<配置档>][--rebulid<套件档>][--rebuliddb][--recompile<套件档>][--relocate<原目录>=<新目录>][--replacefiles][--replacepkgs][--requires][--resign<套件档>+][--rmsource][--rmsource<文件>][--root<根目录>][--scripts][--setperms][--setugids][--short-circuit][--sign][--target=<安装平台>+][--test][--timecheck<检查秒数>][--triggeredby<套件档>][--triggers][--verify][--version][--whatprovides<功能特性>][--whatrequires<功能特性>]

参数说明

  • -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  详细显示指令执行过程,便于排错。
  • -addsign<套件档>+  在指定的套件里加上新的签名认证。
  • --allfiles  安装所有文件。
  • --allmatches  删除符合指定的套件所包含的文件。
  • --badreloc  发生错误时,重新配置文件。
  • --buildroot<根目录>  设置产生套件时,欲当作根目录的目录。
  • --changelog  显示套件的更改记录。
  • --checksig<套件档>+  检验该套件的签名认证。
  • --clean  完成套件的包装后,删除包装过程中所建立的目录。
  • --dbpath<数据库目录>  设置欲存放RPM数据库的目录。
  • --dump  显示每个文件的验证信息。本参数需配合"-l"参数使用。
  • --excludedocs  安装套件时,不要安装文件。
  • --excludepath<排除目录>  忽略在指定目录里的所有文件。
  • --force  强行置换套件或文件。
  • --ftpproxy<主机名称或IP地址>  指定FTP代理服务器。
  • --ftpport<通信端口>  设置FTP服务器或代理服务器使用的通信端口。
  • --help  在线帮助。
  • --httpproxy<主机名称或IP地址>  指定HTTP代理服务器。
  • --httpport<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。
  • --ignorearch  不验证套件档的结构正确性。
  • --ignoreos  不验证套件档的结构正确性。
  • --ignoresize  安装前不检查磁盘空间是否足够。
  • --includedocs  安装套件时,一并安装文件。
  • --initdb  确认有正确的数据库可以使用。
  • --justdb  更新数据库,当不变动任何文件。
  • --nobulid  不执行任何完成阶段。
  • --nodeps  不验证套件档的相互关联性。
  • --nofiles  不验证文件的属性。
  • --nogpg  略过所有GPG的签名认证。
  • --nomd5  不使用MD5编码演算确认文件的大小与正确性。
  • --nopgp  略过所有PGP的签名认证。
  • --noorder  不重新编排套件的安装顺序,以便满足其彼此间的关联性。
  • --noscripts  不执行任何安装Script文件。
  • --notriggers  不执行该套件包装内的任何Script文件。
  • --oldpackage  升级成旧版本的套件。
  • --percent  安装套件时显示完成度百分比。
  • --pipe<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。
  • --prefix<目的目录>  若重新配置文件,就把文件放到指定的目录下。
  • --provides  查询该套件所提供的兼容度。
  • --queryformat<档头格式>  设置档头的表示方式。
  • --querytags  列出可用于档头格式的标签。
  • --rcfile<配置文件>  使用指定的配置文件。
  • --rebulid<套件档>  安装原始代码套件,重新产生二进制文件的套件。
  • --rebuliddb  以现有的数据库为主,重建一份数据库。
  • --recompile<套件档>  此参数的效果和指定"--rebulid"参数类似,当不产生套件档。
  • --relocate<原目录>=<新目录>  把本来会放到原目录下的文件改放到新目录。
  • --replacefiles  强行置换文件。
  • --replacepkgs  强行置换套件。
  • --requires  查询该套件所需要的兼容度。
  • --resing<套件档>+  删除现有认证,重新产生签名认证。
  • --rmsource  完成套件的包装后,删除原始代码。
  • --rmsource<文件>  删除原始代码和指定的文件。
  • --root<根目录>  设置欲当作根目录的目录。
  • --scripts  列出安装套件的Script的变量。
  • --setperms  设置文件的权限。
  • --setugids  设置文件的拥有者和所属群组。
  • --short-circuit  直接略过指定完成阶段的步骤。
  • --sign  产生PGP或GPG的签名认证。
  • --target=<安装平台>+  设置产生的套件的安装平台。
  • --test  仅作测试,并不真的安装套件。
  • --timecheck<检查秒数>  设置检查时间的计时秒数。
  • --triggeredby<套件档>  查询该套件的包装者。
  • --triggers  展示套件档内的包装Script。
  • --verify  此参数的效果和指定"-q"参数相同。
  • --version  显示版本信息。
  • --whatprovides<功能特性>  查询该套件对指定的功能特性所提供的兼容度。
  • --whatrequires<功能特性>  查询该套件对指定的功能特性所需要的兼容度。

实例

安装软件

# rpm -hvi dejagnu-1.4.2-10.noarch.rpm 
警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 签名:NOKEY, key ID db42a60e
准备...           
########################################### [100%]

显示软件安装信息

# rpm -qi dejagnu-1.4.2-10.noarch.rpm

YUM

转自:Linux apt 命令 | 菜鸟教程 (runoob.com)

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常用命令

  • \1. 列出所有可更新的软件清单命令:yum check-update
  • \2. 更新所有软件命令:yum update
  • \3. 仅安装指定的软件命令:yum install <package_name>
  • \4. 仅更新指定的软件命令:yum update <package_name>
  • \5. 列出所有可安裝的软件清单命令:yum list
  • \6. 删除软件包命令:yum remove <package_name>
  • \7. 查找软件包命令:yum search
  • \8. 清除缓存命令:
    • 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/ (操作前请做好相应备份)

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo

运行以下命令生成缓存

yum clean all
yum makecache

APT

转自:Linux apt 命令 | 菜鸟教程 (runoob.com)

apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。

apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

apt 命令执行需要超级管理员权限(root)。

apt 语法

  apt [options] [command] [package ...]
  • options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package:安装的包名。

apt 常用命令

  • 列出所有可更新的软件清单命令:sudo apt update

  • 升级软件包:sudo apt upgrade

    列出可更新的软件包及版本信息:apt list --upgradeable

    升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade

  • 安装指定的软件命令:sudo apt install <package_name>

    安装多个软件包:sudo apt install <package_1> <package_2> <package_3>

  • 更新指定的软件命令:sudo apt update <package_name>

  • 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

  • 删除软件包命令:sudo apt remove <package_name>

  • 清理不再使用的依赖和库文件: sudo apt autoremove

  • 移除软件包及配置文件: sudo apt purge <package_name>

  • 查找软件包命令: sudo apt search

  • 列出所有已安装的包:apt list --installed

  • 列出所有已安装的包的版本信息:apt list --all-versions

实例

查看一些可更新的包:

sudo apt update

升级安装包:

sudo apt upgrade

在以上交互式输入字母 Y 即可开始升级。

可以将以下两个命令组合起来,一键升级:

sudo apt update && sudo apt upgrade -y
posted @ 2022-12-02 11:00  不迷路的小孩  阅读(218)  评论(0编辑  收藏  举报