apt-get、dpkg常用命令
1、搜索包
1 2 3 4 5 | apt install aptitude apt - cache search package aptitude search linux - image | awk '{print $2}' apt search xx aptitude - y download xxx |
2、apt-cache show package #获取包的相关信息,如说明,大小,版本。
3、apt-cache madison nvidia-container-runtime-hook
列出可安装的docker版本
1 | apt-cache madison docker-ce |
等同于centos
1 2 | yum search --showduplicates nvidia-container-toolkit yum list docker-ce --showduplicates | sort -r |
查看已经安装的
1 2 3 4 5 6 7 8 9 10 11 | ~ dpkg --list | grep docker ii docker-ce 5:20.10.14~3-0~ubuntu-focal amd64 Docker: the open-source application container engine ii docker-ce-cli 5:20.10.14~3-0~ubuntu-focal amd64 Docker CLI: the open-source application container engine ii docker-ce-rootless-extras 5:20.10.14~3-0~ubuntu-focal amd64 Rootless support for Docker. ii docker-scan-plugin 0.17.0~ubuntu-focal amd64 Docker scan cli plugin. apt-cache policy linux-source-4.19 linux-source-4.19: 已安装:4.19.249-2 候选: 4.19.249-2 |
4. apt-get install package=version
#安装指定版本的docker
1 | apt- get install docker-ce=5:19.03.6~3-0~debian-buster docker-ce-cli=5:19.03.6~3-0~debian-buster containerd.io |
5、 查看该包被那些包依赖,该包依赖哪些包
1 2 3 4 5 6 7 8 | apt-cache depends ansible apt show ansible | grep Recommends dpkg -I path_to_deb_file # apt-rdepends 来查看依赖及依赖的依赖 apt-rdepends ansible |
centos版
1 2 3 | rpm - qR postfix # 查postfix 依赖哪些包,R参数的意思就是requires就是依赖哪些软件包 yum deplist postfix #查postfix 依赖哪些包 |
下载包及其依赖
下载单个,如下载ansible
1 | apt - get install - - reinstall - - print - uris - - yes ansible | grep ^\ ' | cut -d\' - f2 | wget - i - |
参数解释
-
--reinstall
:强制重新安装 Ansible(即使已安装)。 -
--print-uris
:不实际安装,仅输出需要下载的软件包 URL。 -
--yes
:自动确认操作(跳过用户确认)。
-
grep ^\'
:过滤出以单引号'
开头的行(APT 输出的 URL 行)。 -
cut -d\' -f2
:以单引号为分隔符,提取第二个字段(即 URL 本身)。 -i -
:从标准输入读取 URL 列表,并批量下载文件到当前目录
脚本下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #!/bin/bash # 用于下载的软件包列表,更易读的格式 packages = ( "telnet" "zip" "rsync" ) # 遍历数组中的每个软件包 for package in "${packages[@]}" ; do # 为每个软件包创建一个目录 mkdir - p "$package" # 创建一个用于下载的临时目录 TEMP_DIR = $(mktemp - d) # 下载软件包及其依赖项 echo "Downloading $package and its dependencies..." apt - get install - - reinstall - y - d - o Dir ::Cache = "$TEMP_DIR" "$package" $(apt - cache depends "$package" | grep "Depends" | cut - d: - f2 | tr - d "<>" ) # 确保命令成功后才移动文件 if [ $? - eq 0 ]; then # 将下载的包移动到以软件包命名的目录中 mv "$TEMP_DIR" / archives / * .deb "$package" / echo "$package downloaded and organized in ./$package directory." else echo "Failed to download $package." fi # 清理临时目录 rmdir "$TEMP_DIR" / archives rmdir "$TEMP_DIR" done |
6.两种下载方式apt-get -d install 和 apt-get download 的区别
1 | apt- get download 的包更新,下载在当前路径下 |
7.apt-get install package --reinstall #重新安装包
8.apt-get -f install #修复安装(17.10.31,之前小看这个东东了,这个是启动APT自动安装依赖关系的一个功能键,换句话说,你更新完源之后,如果APT还不能自行解决依赖关系,就可以执行一下这个命令)
9.apt-get source package #下载该包的源代码
10. apt-get remove package #删除包
11.apt-get remove package --purge #删除包,包括删除配置文件等
12.apt-get update #更新apt软件源数据库
13.apt-get upgrade #更新以安装的包
14. apt-get dist-upgrade #升级系统
15.apt-get dselect-upgrade #使用dselect升级
16. apt-get build-dep package #安装相关的编译环境
17. apt-get clean & sudo apt-get autoclean #清理无用的包
18. apt-get check #检查是否有损坏的依赖
19、 列出已经安装软件的所有文件的位置
1 | dpkg -L package |
20.cd /var/cache/apt/archives #所下载的用于安装的软件包存放位置( apt-get clean会清空)
21.dpkg -i package.deb #类似于rpm -ivh的安装方式
dpkg安装的包可用apt-get remove 卸载
22.dpkg -l package #显示包的版本
23.dpkg -r package #移除软件保留配置
24.dpkg -P package #移除软件,不保留配置
25.查询某个命令来自哪个包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ##先安装apt-file apt-get install -y apt-file apt-file update ##查询命令:(已查询ifconfig为例) apt-file search bin/ifconfig net-tools: /bin/ifconfig ##apt-file search -x(--regexp) 后可接正则表达式,如: apt-file search -x 'bin/rz$' lrzsz: /usr/bin/rz apt-file search --regexp 'bin/rz$' lrzsz: /usr/bin/rz ###查询ping命令安装包 apt-file search /bin/ping ctdb: /usr/bin/ping_pong echolot: /usr/bin/pingd inetutils-ping: /bin/ping inetutils-ping: /bin/ping6 iputils-ping: /bin/ping iputils-ping: /bin/ping4 iputils-ping: /bin/ping6 ###安装ping命令 apt-get install -y iputils-ping ping 172.21.0.3 PING 172.21.0.3 (172.21.0.3) 56(84) bytes of data. 64 bytes from 172.21.0.3: icmp_seq=1 ttl=64 time =0.063 ms 64 bytes from 172.21.0.3: icmp_seq=2 ttl=64 time =0.154 ms |
26、add-apt-repository 等价于 yum-config-manager --add-repo
1 2 3 4 | add-apt-repository \ "deb [arch=amd64] https: //mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \ $(lsb_release -cs) \ stable" |
27、只下载不安装
1 2 | apt-get install -d <软件包> ls /var/cache/apt/archives/ |
实测:UOS 20中不能下载依赖,已经安装的包需要卸载才能下到缓存路径中。
28、dpkg -X 提取deb包中的二进制可执行文件
1 | dpkg -X path |