根据Linux发行版的版本不一样,软件的包管理命令不一样,
dpkg
是Debian系列发行版的软件包管理的基础,用来安装,卸载,管理.deb
包,全称是Debian Package
。APT
就是在dkpg基础上做出的前端工具,全称是Advanced Package Tool
,还有apt-get,apt-cache
等命令行。比较常用的Ubuntu就是用的apt。
RPM
是RedHat系列发行版的软件包管理工具,全称是Red Hat Package Manager
,RPM包的扩展名就是.rpm
。yum
全称是Yellowdog Updater Modified
。Centos主要用的就是这个包管理工具。dnf
全称是Dandified Yum
。这个是在yum基础上fork出来新做成的包管理工具。Fedora 18
以后的版本都是采用的这个包管理工具。语法跟yum基本一致。
yum
是一个交互式的、基于 rpm 的包管理器。它可以自动执行系统更新,包括依赖分析和基于“存储库”元数据的过时处理。它还可以执行新包的安装、旧包的删除以及在许多其他命令/服务中对已安装和/或可用包执行查询。
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
yum [options] COMMAND
显示yum的命令和属性。
yum help
repository的package列表。
# 列出可以利用的所有package
yun list available
# 列出已经安装了的所有package
yun list installed
# 列出所有package
yum list all
# 列出所有的内核package
yum list kernel
显示package的详细信息,得指定具体的package的名称
yum info [package]
检查本地安装的软件是否有更新。
yum check-update
根据指定的参数去查询符合条件的package。
yum provides [feature]
举个例子:知道某个命令但是不知道应该安装哪个package。
[root@centos ~]# yum provides ifconfig
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* epel: ftp.iij.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.iij.ad.jp
base/7/x86_64/filelists_db | 7.2 MB 00:00:02
docker-ce-stable/7/x86_64/filelists_db | 30 kB 00:00:00
epel/x86_64/filelists_db | 12 MB 00:00:01
extras/7/x86_64/filelists_db | 277 kB 00:00:00
nginx/x86_64/filelists_db | 95 kB 00:00:00
updates/7/x86_64/filelists_db | 7.8 MB 00:00:01
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo : @base
Matched from:
Filename : /usr/sbin/ifconfig
yum deplist package1 [package2] [...]
yum search [string]
updateinfo [summary|list|info|remove-pkgs-ts|exclude-updates|exclude-all|check-running-kernel]
yum grouplist
yum groupinfo [packagename]
列出/etc/yum.repo.d/
下所有仓库
yum repolist [all|enabled|disabled]
显示仓库详细情报。比repolist要详细的多。
yum repoinfo [all|enabled|disabled]
操作仓库下的package。
yum repo-pkgs [reponame] [remove|install|list|...]
列出所有的yum操作
yum history list
根据list出的列表,可以查看每个ID的详细操作内容。
yum history info [ID]
还有很多别的操作。
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
比如说,安装某个package可能会有很多依赖的package也会被安装进来。想去卸载的时候,可以查看yum的操作历史,找到ID然后用下面的命令去卸载。
yum history undo [ID]
yum check [dependencies|duplicates|obso‐leted|provides|all]
这个命令超级费时间,CPU能到100%。网上查了一下,没找到原因。
/var/cache/yum/
,没有默认参数,需要参数。yum clean [packages|metadata|expire-cache|dbcache|headers|expire-cache|rpmdb|plugins|all]
yum fs [filters|refilter|refilter-cleanup|du]
fssnapshot [summary|list|have-space|create|delete]
卸载package
yum remove|erase|autoremove package1 [package2] [...]
安装package
yum install package1 [package2] [...]
重新安装package
yum reinstall package1 [package2] [...]
通过本地的,或者http,ftp的rpm文件进行安装
yum localinstall [rpmfile]
升级所有的package
yum update
升级指定package
yum update [package]
downgrade
,如果是低于yum源里的版本,就会升级,相当于upgrade
。yum distribution-synchronization
downgrade package1 [package2] [...]
yum upgrade
yum可以安装卸载各种软件,但是有些时候要安装的软件可能不在本机的yam仓库里,这个时候需要用到下面的这个命令yum-config-manager
来把下载链接添加到本地仓库。
把链接或者文件添加到本地仓库,然后是其有效。
yum-config-manager --add-repo repository_url
指定仓库的有效性变成有效
yum-config-manager --enable [reponame]
所有仓库有效
yum-config-manager --enable \*
指定仓库的有效性变成无效
yum-config-manager --disable [reponame]
所有仓库无效
yum-config-manager --disable \*
修改/etc/yum.conf
文件
yum-config-manager --setopt=option=value --save
关于option可以用man yum.conf
来查看。
rpm命令是rpm package的管理器。属性太多,只介绍常用命令。
rpm -i [rpmfile]
这个跟yum localinstall一样的效果
一般来说常用下面的组合命令
rpm -ivh [rpmfile]
rpm -u [rpmfile]
rpm -e [rpmfile]
常用下面的命令组合
rpm -qai | grep [string]
可以用man -k yum rpm
来查看,有些命令很少用,这里不做介绍。
[root@centos ~]# man -k rpm yum
find-repos-of-install (1) - report which Yum repository a package was installed from
grub2-rpm-sort (8) - Sort input according to RPM version compare.
repo-rss (1) - generates an RSS feed from one or more Yum repositories
repoclosure (1) - display a list of unresolved dependencies for a yum repository
repodiff (1) - list differences between two or more Yum repositories
repomanage (1) - list the newest or oldest RPM packages in a directory
repoquery (1) - query information from Yum repositories
reposync (1) - synchronize yum repositories to a local directory
rpm (8) - RPM Package Manager
rpm2cpio (8) - Extract cpio archive from RPM Package Manager (RPM) package.
rpmdb (8) - RPM Database Tool
rpmkeys (8) - RPM Keyring
show-changed-rco (1) - show changes in an RPM package
show-installed (1) - show installed RPM packages and descriptions
verifytree (1) - verify that a local yum repository is consistent
yum (8) - Yellowdog Updater Modified
yum-builddep (1) - install missing dependencies for building an RPM package
yum-complete-transaction (8) - attempt to complete failed or aborted Yum transactions
yum-config-manager (1) - manage yum configuration options and yum repositories
yum-debug-dump (1) - write system RPM configuration to a debug-dump file
yum-debug-restore (1) - replay Yum transactions captured in a debug-dump file
yum-groups-manager (1) - create and edit yum's group metadata
yum-shell (8) - Yellowdog Updater Modified shell
yum-utils (1) - tools for manipulating repositories and extended package management
yum.conf (5) - Configuration file for yum(8).
yumdb (8) - query and alter the Yum database
yumdownloader (1) - download RPM packages from Yum repositories