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

 




 

posted @   凡人半睁眼  阅读(568)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示