1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > apt和dpkg包管理器

apt和dpkg包管理器

时间:2023-06-11 04:52:00

相关推荐

apt和dpkg包管理器

apt包管理器

Ubuntu源apt常用命令刷新源搜索软件包查看软件包的策略和信息 安装软件包重新安装软件包 apt锁定软件版本查看源中的版本安装指定版本apt锁定软件版本 卸载软件包apt最佳卸载命令 升级所有软件包最佳升级软件命令升级系统版本 清理apt-cache apt-mark常用命令apt-cache从缓存中搜索包`apt`安装位置apt配置源 apt配置proxyapt只代理指定地址 离线下载deb包自动解决包依赖关系apt中断修复 apt-key管理GPG密钥apt-add-repository第三方软件存储库方法1:删除第三方软件存储库方法2:手动删除三方存储库文件附加步骤:删除仓库后删除GPG 密钥 dpkg包管理器dpkg安装递归安装 dpkg卸载dpkg查询查看deb包内容(仅查看)查看软件安装位置dpkg -L列出当前已安装的包dpkg -l查询指定已安装软件dpkg -l pakname查询文件属于哪个包dpkg -S filename apt缓冲锁解决办法永久禁用apt缓存锁 Ubuntu校验软件包是否被更改type定位命令行

Ubuntu源

/omaidb/article/details/132295733

每个 Ubuntu 版本都有自己的一组官方存储库

Main– Canonical 支持的自由开源软件Universe– 社区维护的自由开源软件Restricted– 设备的专有驱动程序Multiverse– 受版权或法律问题限制的软件

apt常用命令

刷新源

# 刷新源,更新`/etc/apt/sources.list`里的链接地址apt update

搜索软件包

# 搜索软件包apt search packagename

查看软件包的策略和信息

# 显示有关 软件包的策略和信息## 包括可用的候选版本、已安装的版本以及软件包的来源。apt policy pkgname

安装软件包

# 安装软件包apt install packagename

重新安装软件包

# 重新安装软件包apt install packagename --reinstall

apt锁定软件版本

查看源中的版本

# 查看源中的版本apt-cache madison 软件名

安装指定版本

# 安装指定版本 apt install 软件名=versionapt install package=version

apt锁定软件版本

# 锁定版本sudo apt-mark hold kubelet kubeadm kubect

卸载软件包

# 卸载依赖并清除配置文件apt autoremove --purge# 卸载依赖的程序apt autoremove# 卸载包并自动卸载不需要的包apt autoremove packagename# 卸载包并删除配置文件和不需要的包apt autoremove packagename --purge

apt最佳卸载命令

卸载程序(包括配置文件)、卸载依赖、删除/var/cache/apt/archives下所有安装包

# 卸载软件包并清理配置及残留apt remove packagename --purge && apt autoremove --purge && apt clean

升级所有软件包

# 升级所有程序/和apt dist-upgrade 一致apt upgradeapt dist-upgrade# 升级程序(不包括依赖关系改变的) ## -u 完整显示列表apt upgrade -u

最佳升级软件命令

# update刷新源,upgrade将所有软件升级到最新版apt update && apt upgrade

升级系统版本

# 升级os版本apt dist-upgrade 升级系统(包括依赖关系改变的并且重新组织依赖关系)

清理apt-cache

节约硬盘空间,下次安装需要重新下载包,软件包位置:/var/cache/apt/archives/

# 删除pkg的安装包apt clean# 删除已卸载pkg的安装包(Ubuntu14.04测试发现没起作用)apt autoclean

apt-mark常用命令

apt-cache从缓存中搜索包

参考: /EasonJim/p/7144017.html

# 从缓存中搜索包apt-cache search package # 从缓存中获取包的相关信息,如说明、大小、版本等apt-cache show packagename # 从缓存中显示软件包信息,包括包的依赖关系,包的提供者apt-cache showpkg package # 打印软件包列表中所有包的名字apt-cache pkgnames # 打印软件包列表中所有包的简介信息apt-cache dumpavail# 了解使用依赖apt-cache depends packagename # 查看该包被哪些包依赖apt-cache rdepends packagename

apt安装位置

下载的软件存放位置/var/cache/apt/archives安装后软件默认位置/usr/share可执行文件位置/usr/binlib文件位置/usr/lib

apt配置源

# 默认仓库配置文件/etc/apt/sources.list# 仓库子配置文件目录/etc/apt/sources.list.d/## 你可以在/etc/apt/sources.list.d/目录下创建后缀名为list的软件仓库配置文件# 每当你更改过仓库配置文件的时候,必须要使用apt update刷新下apt源# 备份源cp /etc/apt/sources.list /etc/apt/sources.list.bak# 安装完ubuntu操作系统之后默认的仓库源都配置为了国外的仓库,你可以自行修改vim /etc/apt/sources.list# 替换源地址为阿里云的地址sed -i "s///g" /etc/apt/sources.list# 或sed -i "s/cn.//g" /etc/apt/sources.list

apt配置proxy

/article-15815-1.html?utm_source=rss&utm_medium=rss

# 创建一个proxy配置vim /etc/apt/apt.conf.d/proxy.conf

配置proxy

## httpAcquire::http::proxy "http://127.0.0.1:8000/";Acquire::https::Proxy "http://proxy-IP-address:proxyport/";Acquire::https::proxy "https://127.0.0.1:8000/";## 带认证的配置Acquire::http::Proxy "http://username:password@proxy-IP-address:proxyport";Acquire::https::Proxy "http://username:password@proxy-IP-address:proxyport";Acquire::socks::proxy "socks://127.0.0.1:1080/";

配置格式2:

Acquire {http::Proxy "http://username:password@proxy-IP-address:proxyport/";https::Proxy "http://username:password@proxy-IP-address:proxyport/";}

# 刷新源apt update

apt只代理指定地址

socks5h表示远程解析 dns,如果直接写socks5本地解析 dns

vim /etc/apt/apt.conf#Acquire::http::Proxy::<repository URL> "socks5h://proxy-:1080";Acquire::http::Proxy:: "socks5h://proxy-:1080";

离线下载deb包

# 下载deb包apt download 包名.deb# 拷贝到离线机器上,使用dpkg离线安装即可dpkg -i 包名.deb

自动解决包依赖关系

# 自动解决包依赖关系apt -y install -f

apt中断修复

例如,执行apt upgrade过程中强行终止,会导致apt无法正常使用.

sudo dpkg --configure -a

apt-key管理GPG密钥

# 查看GPG 密钥列表apt-key list# 导入 GPG 密钥apt-key adv --keyserver --recv-keys 12345678# 删除已导入的 GPG 密钥apt-key del 12345678

apt-add-repository第三方软件存储库

/article-15985-1.html?utm_source=rss&utm_medium=rss

方法1:删除第三方软件存储库

# 列出添加的仓库apt-add-repository --list

# 删除指定的三方仓库apt-add-repository -r repo_name# 示例:删除yarn仓库add-apt-repository -r deb /debian/ stable main

方法2:手动删除三方存储库文件

# 进入sources.list.d目录,并列出其内容cd /etc/apt/sources.list.d/ && ls

一个仓库将有两个文件。一个带有.list扩展名,另一个带有.save扩展名。

.list文件是3方软件仓库文件,里面配置了该软件的

当使用apt-get update命令更新软件包列表时,会生成相应的.save文件。

.save文件包含了更新前的软件包列表信息,以便在需要时进行回滚。

# 删除.list后缀的3方仓库文件rm Repo_name.list

附加步骤:删除仓库后删除GPG 密钥

# 列出现有的 GPG 密钥apt-key list

GPG密钥名称虚线(----)上方公钥第二行

例如,以下是 Chrome GPG 密钥的相关数据:

# 删除指定 GPG 密钥## 指定GPG密钥IDapt-key del D38B4796

# 指定整个公钥apt-key del "完整密钥ID"apt-key del "72EC F46A 56B4 AD39 C907 BBB7 1646 B01B 86E5 0310"

dpkg包管理器

dpkg 包管理器是 Linux 系统中一个基本的软件包管理工具,用于安装、升级、卸载和查询软件包。它通常用于 Debian 系统和基于 Debian 的 Linux 发行版,如 Ubuntu 和 Linux Mint 等。

dpkg安装

# -i参数 安装软件包dpkg -i 包名.deb

递归安装

# -R参数表示安装一个目录下的所有软件包dpkg -iR ./deb目录名

dpkg卸载

# -r参数表示卸载软件包## 相当于rpm的-e参数(extract)dpkg -r xxx.deb# -p同--purge选项表示卸载的同时清除配置文件dpkg -rp xxx.deb

dpkg查询

通常使用 “dpkg -l” 命令查询已安装的软件包,可以列出软件包的名称、版本和状态等信息。

查看deb包内容(仅查看)

# 列出deb包的内容## -c参数相当于rpm的-qpl参数(软件包未安装情况)dpkg -c package.deb

查看软件安装位置dpkg -L

# 查看软件安装位置## -L参数相当于rpm的-ql参数(软件包已安装)dpkg -L openssh-server## 打印信息/usr/usr/lib/usr/lib/openssh/usr/lib/openssh/ssh-session-cleanup/usr/sbin/usr/sbin/sshd

列出当前已安装的包dpkg -l

# 列出当前已安装的包## -l参数相当于rpm的-qa参数dpkg -l

查询指定已安装软件dpkg -l pakname

# 查询指定已安装软件root@u20:~# dpkg -l openssh-server## 打印信息Desired=Unknown/Install/Remove/Purge/Hold| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)||/ Name Version Architecture Description+++-==============-==================-============-=======================================================>ii openssh-server 1:8.2p1-4ubuntu0.3 amd64 secure shell (SSH) server, for secure access from remot

查询文件属于哪个包dpkg -S filename

# 例如,我要查询ls这个命令属于哪个包# -S参数相当于rpm的-qf参数## 查询ls的文件位置[chengdu-u20 root ~]# which ls/usr/bin/ls## 根据/bin/ls查询包名称[chengdu-u20 root ~]# dpkg -S /bin/lscoreutils: /bin/ls## 查询包详情 dpks -S 包名[chengdu-u20 root ~]# dpkg -S coreutilslanguage-pack-en-base: /usr/share/locale-langpack/en_GB/LC_MESSAGES/coreutils.molanguage-pack-en-base: /usr/share/locale-langpack/en_CA/LC_MESSAGES/coreutils.mocoreutils: /usr/share/doc/coreutils/README.gzcoreutils: /usr/share/doc/coreutils/TODO.gzlanguage-pack-en-base: /usr/share/locale-langpack/en/LC_MESSAGES/coreutils.mocoreutils: /usr/lib/x86_64-linux-gnu/coreutilscoreutils: /usr/share/doc/coreutils/changelog.Debian.gzcoreutils: /usr/share/doc/coreutils/THANKS.gzcoreutils: /usr/share/info/coreutils.info.gzcoreutils: /usr/share/doc/coreutils/NEWS.gzcoreutils: /usr/share/doc/coreutilscoreutils: /usr/share/doc/coreutils/copyrightcoreutils: /usr/share/doc/coreutils/AUTHORSlanguage-pack-en-base: /usr/share/locale-langpack/en_AU/LC_MESSAGES/coreutils.mocoreutils: /usr/share/doc/coreutils/README.Debiancoreutils: /usr/lib/x86_64-linux-gnu/coreutils/libstdbuf.socoreutils: /usr/share/doc/coreutils/NEWS.Debian.gz

apt缓冲锁

Ubuntu使用sudo apt install安装时,提示正在等待缓存锁:无法获得锁/var/lib/dpkg/lock-frontend

解决办法

这3个文件只有在遇到apt缓冲锁的时候才会出现。

# 强制删除锁sudo rm -rf /var/lib/dpkg/lock-frontend /var/cache/apt/archives/lock /var/lib/dpkg/lock

永久禁用apt缓存锁

# 编辑apt自动更新配置vim /etc/apt/apt.conf.d/10periodic

配置内容如下

root@dev:~$cat /etc/apt/apt.conf.d/10periodic# 更新软件包列表 1是启用,0是禁用APT : :Periodic: : Update-Package-Lists "0";# 自动下载更新包APT : :Periodic: : Download-Upgradeable-Packages "0";# 自动清除缓存APT : :Periodic: :AutocleanInterval "0";# 无人值守升级APT : :Periodic: :Unattended-Upgrade "0";

Ubuntu校验软件包是否被更改

# 校验openssh包是否被篡改# debsums 包名debsums openssh-serverdebsums -a # 配置文件的md5值也查debsums -e # 只查配置文件的debsums -s #仅报告错误debsums -ca # 报告md5指改变过的# 然后利用dpkg -S 查这个文件属于哪个包dpkg -S 被篡改的文件

type定位命令行

# 定位dig命令type -a dig

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。