常用工具与命令

软件包管理工具

  • alpine:apk
  • Debian/Ubuntu:apt、apt-cache、apt-get、dpkg、snap
  • CentOS:rpm、yum
  • Fedora:dnf

    常用命令

    更新本地包数据库列表

    | 系统 | 命令 | | —- | —- | | alpine | apk upate | | Debian | apt-get update | | Ubuntu | | | CentOS | yum check-update | | Fedora | dnf check-update |

升级已安装的包

系统 命令 命令说明
Debian apt-get upgrade
apt-get dist-upgrade
仅升级已安装的软件包
Ubuntu 添加或删除程序包,以满足新的依赖
CentOS yum update
Fedora dnf upgrade

搜索软件包

系统 命令
Debian / Ubuntu apt-cache search
CentOS yum search
Fedora dnf search

查看某个软件包信息

系统 命令
Debian apt-cache show 包名
Ubuntu dpkg -s 包名
CentOS yum info 包名
yum deplist 包名
Fedora dnf info 包名
dnf repoquery –requires 包名

从软件仓库安装包

系统 命令
Debian apt-get install 包1 [包2….]
Ubuntu
CentOS yum install 包1 [包2….]
Fedora dnf install 包1 [包2….]

从本地文件系统直接安装包

系统 命令
Debian dpkg -i 包名.deb
gdebi 包名.deb
Ubuntu
CentOS yum install 包名.rpm
Fedora dnf install 包名.rpm

移除已安装的包

系统 命令
Debian apt-get remove 包名
apt-get autoremove
Ubuntu
CentOS yum remove 包名
Fedora dnf erase 包名

rpm

rpm软件包名称构成

软件名称 版本号(主版本、次版本、修订号) 操作系统 cpu平台
操作系统:el6 el5 fedor asuse deban Ubuntu
cpu平台:i386 486 586 686 表示32位软件
x86_64表示64为软件
noarch表示32,64通用
Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。

Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。

RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。

GA:General Availability,正式发布的版本,在国外都是用GA来说明release版本的。

RTM:(Release to Manufacture)是给工厂大量压片的版本,内容跟正式版是一样的,不过RTM版也有出限制、评估版的。但是和正式版本的主要程序代码都是一样的。

OEM:是给计算机厂商随着计算机贩卖的,也就是随机版。只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。包装不像零售版精美,通常只有一面CD和说明书(授权书)。

RVL:号称是正式版,其实RVL根本不是版本的名称。它是中文版/英文版文档破解出来的。

EVAL:而流通在网络上的EVAL版,与“评估版”类似,功能上和零售版没有区别。

RTL:Retail(零售版)是真正的正式版,正式上架零售版。在安装盘的i386文件夹里有一个eula.txt,最后有一行EULAID,就是你的版本。比如简体中文正式版是EULAID:WX.4_PRO_RTL_CN,繁体中文正式版是WX.4_PRO_RTL_TW。其中:如果是WX.开头是正式版,WB.开头是测试版。_PRE,代表家庭版;_PRO,代表专业版。

α、β、λ常用来表示软件测试过程中的三个阶段,α是第一阶段,一般只供内部测试使用;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。
然后今天我在 MySQL 还看到一个叫 DMR 的版本,懵了。
其实是 Development Milestone Releases 的缩写 DMR 发展里程碑版本!

apt-get

adv

将高级选项传递给GPG,使用 —recv-key选项,可以从密钥服务器直接下载密钥到可信任的密钥列表。请注意,因为没有核查,如果你不小必使用,很容易损坏apt-secure的基础结构。
apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv-key [PUBKEY]

list

apt-key list #列出已保存在系统中key。

add

apt-key add keyname #把下载的key添加到本地trusted数据库中。

del

apt-key del keyname #从本地trusted数据库删除key。

update

apt-key update #更新本地trusted数据库,删除过期没用的key。

查看已安装包的源

  1. apt-cache policy <package-name>

替换为您要查看的包的名称。
执行此命令后,您将看到有关该包及其版本的详细信息,包括安装源的名称和URL。例如:

  1. Package files:
  2. 100 /var/lib/dpkg/status
  3. release a=now
  4. 500 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
  5. release v=18.04,o=Ubuntu,a=bionic,n=bionic,l=Ubuntu,c=universe,b=amd64
  6. origin us.archive.ubuntu.com
  7. 500 http://us.archive.ubuntu.com/ubuntu bionic/universe i386 Packages
  8. release v=18.04,o=Ubuntu,a=bionic,n=bionic,l=Ubuntu,c=universe,b=i386
  9. origin us.archive.ubuntu.com

在这个例子中,我们可以看到该包是从http://us.archive.ubuntu.com/ubuntu源的universe组件中安装的。

  • 500 - 此软件包已经安装,并且是当前版本
  • 100 - 此软件包已经安装,但不是当前版本
  • <100 - 此软件包已经安装,但是由于其他包的依赖关系而被保留
  • 0 - 该软件包是可用的,但未被安装
      • 该软件包无法使用,或者在源列表中不存在

在上面的例子中,状态码500表示软件包已经安装,并且是当前版本,而状态码100表示软件包已经安装,但不是当前版本。
请注意,状态码只是用于显示软件包的优先级,并不是软件包的版本号。软件包的版本号通常是在软件包名称后面的字符串。

查看包安装路径

  1. dpkg -L <package-name>