常用工具与命令
软件包管理工具
- 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
add
apt-key add keyname #把下载的key添加到本地trusted数据库中。
del
apt-key del keyname #从本地trusted数据库删除key。
update
apt-key update #更新本地trusted数据库,删除过期没用的key。
查看已安装包的源
apt-cache policy <package-name>
将
执行此命令后,您将看到有关该包及其版本的详细信息,包括安装源的名称和URL。例如:
Package files:
100 /var/lib/dpkg/status
release a=now
500 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
release v=18.04,o=Ubuntu,a=bionic,n=bionic,l=Ubuntu,c=universe,b=amd64
origin us.archive.ubuntu.com
500 http://us.archive.ubuntu.com/ubuntu bionic/universe i386 Packages
release v=18.04,o=Ubuntu,a=bionic,n=bionic,l=Ubuntu,c=universe,b=i386
origin us.archive.ubuntu.com
在这个例子中,我们可以看到该包是从http://us.archive.ubuntu.com/ubuntu源的universe组件中安装的。
- 500 - 此软件包已经安装,并且是当前版本
- 100 - 此软件包已经安装,但不是当前版本
- <100 - 此软件包已经安装,但是由于其他包的依赖关系而被保留
- 0 - 该软件包是可用的,但未被安装
- 该软件包无法使用,或者在源列表中不存在
在上面的例子中,状态码500表示软件包已经安装,并且是当前版本,而状态码100表示软件包已经安装,但不是当前版本。
请注意,状态码只是用于显示软件包的优先级,并不是软件包的版本号。软件包的版本号通常是在软件包名称后面的字符串。
查看包安装路径
dpkg -L <package-name>