Linux 软件管理常用命令

yum 和 rpm 软件管理

rpm命令 yum命令

yum下载软件包方法,应用场景,大型国企生产环境不允许开放外网

通过yum命令只下载rpm包不安装

yum 下载全量依赖 rpm 包及离线安装(终极解决方案

dnf软件管理

dnf命令

APT工具(新立得)

apt的全称是Advanced Packaging Tool是Linux系统下的一款安装包管理工具

保持依赖不更新

sudo apt-mark hold libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5qml5 libqt5qmlmodels5 libqt5quick5 libqt5widgets5

取消依赖不更新

sudo apt-mark unhold libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5qml5 libqt5qmlmodels5 libqt5quick5 libqt5widgets5

PPA管理

apt-key命令

sudo apt-key list
会出现这样:
pub   1024R/B455BEF0 2010-07-29
uid                  Launchpad clicompanion-nightlies
删除想删除的
sudo apt-key del B455BEF0

添加PPA源的命令为:
sudo add-apt-repository ppa:user/ppa-name
添加好更新一下: sudo apt-get update
删除命令格式则为:
sudo add-apt-repository -r ppa:user/ppa-name

或者
到源的目录:cd  /etc/apt/sources.list.d/ 可以看到关于源的文件,删除即可 

DPKG

dpkg 是Debian package的简写,为”Debian“ 操作系统 专门开发的套件管理系统,用于软件的安装,更新和移除。

所有源自”Debian”的Linux的发行版都使用 dpkg,   例如”Ubuntu”。

dpkg本身是一个底层的工具。上层的工具,如APT,被用于从远程获取软件包以及处理复杂的软件包关系。 

安装指定软件包

dpkg -i|--install <.deb file name> ... | -R|--recursive <directory> ...
ex:dpkg -i -R /dirname 安装目录下的所有deb包

解压软件包

dpkg --unpack <.deb file name> ... | -R|--recursive <directory> ...
ex:dpkg --unpack -R /dirname 解压目录下的deb包

重新配置和释放软件包

dpkg --configure <package> ... | -a|--pending
-a 将配置所有没有配置的软件包 

dpkg  --triggers-only <package> ... | -a|--pending

移除软件包

dpkg -r|--remove <package> ... | -a|--pending

移除软件包和配置

dpkg -P|--purge  <package> ... | -a|--pending

-V|–verify <软件包名> … 检查包的完整性

–get-selections [<表达式> …] 把已选中的软件包列表打印到标准输出

–set-selections 从标准输入里读出要选择的软件

–clear-selections 取消选中所有不必要的软件包

–update-avail <软件包文件> 替换现有可安装的软件包信息

–merge-avail <软件包文件> 把文件中的信息合并到系统中

–clear-avail 清除现有的软件包信息

–forget-old-unavail 忘却已被卸载的不可安装的软件包

-s|–status <软件包名> … 显示指定软件包的详细状态

-p|–print-avail <软件包名> … 显示可供安装的软件版本

-L|–listfiles <软件包名> … 列出属于指定软件包的文件 查看已安装文件的路径

dpkg -L libwebp-dev
/usr
/usr/include
/usr/include/webp
/usr/include/webp/decode.h
...

-l|–list [<表达式> …] 简明地列出软件包的状态

-S|–search <表达式> … 搜索含有指定文件的软件包

-C|–audit [<表达式> …] 检查是否有软件包残损

–yet-to-unpack 列出标记为待解压的软件包

–predep-package 列出待解压的预依赖

–add-architecture <体系结构> 添加 <体系结构> 到体系结构列表

–remove-architecture <体系结构> 从架构列表中移除 <体系结构>

–print-architecture 显示 dpkg 体系结构 指的是cpu的体系架构 例amd64

–print-foreign-architectures 显示已启用的异质体系结构

–assert-<特性> 对指定特性启用断言支持

–validate-<属性> <字符串> 验证一个 <属性>的 <字符串>

–compare-vesions <a> <关系> <b> 比较版本号 – 见下

–force-help 显示本强制选项的帮助信息

-Dh|–debug=help 显示有关出错调试的帮助信息
-?, –help 显示本帮助信息

–version 显示版本信息
Assert 特性: support-predepends, working-epoch, long-filenames, multi-conrep, multi-arch, versioned-provides.
可验证的属性:pkgname, archname, trigname, version.
调用 dpkg 并带参数 -b, –build, -c, –contents, -e, –control, -I, –info, -f, –field, -x, –extract, -X, –vextract, –ctrl-tarfile, –fsys-tarfile是针对归档文件的 (输入 dpkg-deb –help 获取帮助)
选项:

–admindir=<目录> 使用 <目录> 而非 /var/lib/dpkg

–root=<目录> 安装到另一个根目录下

–instdir=<目录> 改变安装目录的同时保持管理目录不变

–path-exclude=<表达式> 不要安装符合Shell表达式的路径

–path-include=<表达式> 在排除模式后再包含一个模式

-O|–selected-only 忽略没有被选中安装或升级的软件包

-E|–skip-same-version 忽略版本与已安装软件版本相同的软件包

-G|–refuse-downgrade 忽略版本早于已安装软件版本的的软件包

-B|–auto-deconfigure 就算会影响其他软件包,也要安装

–[no-]triggers 跳过或强制随之发生的触发器处理

–verify-format=<格式> 检查输出格式(‘rpm’被支持)

–no-debsig 不去尝试验证软件包的签名

–no-act|–dry-run|–simulate 仅报告要执行的操作 – 但是不执行

-D|–debug=<八进制数> 开启调试(参见 -Dhelp 或者 –debug=help)

–status-fd <n> 发送状态更新到文件描述符<n>

–status-logger=<命令> 发送状态更新到 <命令> 的标准输入

–log=<文件名> 将状态更新和操作信息到 <文件名>

–ignore-depends=<软件包>,… 忽略关于 <软件包> 的所有依赖关系

–force-… 忽视遇到的问题(参见 –force-help)

–no-force-…|–refuse-… 当遇到问题时中止运行

–abort-after <n> 累计遇到 <n> 个错误后中止


可供–compare-version 使用的比较运算符有:

lt le eq ne ge gt (如果版本号为空,那么就认为它先于任意版本号);

lt-nl le-nl ge-nl gt-nl (如果版本号为空,那么就认为它后于任意版本号);

< << <= = >= >> > (仅仅是为了与主控文件的语法兼容)

Snap 官方文档

Snap是Canonical推出的一种新的软件打包格式,彻底解决linux依赖性的问题,Snap 软件包拥有更加稳定和安全的特性。snap也就是安装snap软件包的命令。

安装snap

sudo apt install snap 

列出计算机上所有snap安装情况:

sudo snap list

在应用商店中查找snap:

sudo snap find <软件包名>

安装Snap软件:

sudo snap install <snap软件包名>


更新Snap软件:

sudo snap refresh <snap软件包名>

更新所有的snap软件包:

sudo snap refresh

要将Snap还原到以前安装的版本:

sudo snap revert <snap软件包名>

卸载snap软件:

sudo snap remove <snap软件包名>

参考