apt-get、dpkg常用命令

1、搜索包

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版本

apt-cache madison docker-ce

等同于centos

yum search --showduplicates nvidia-container-toolkit
yum list docker-ce --showduplicates | sort -r

查看已经安装的

~ 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

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、 查看该包被那些包依赖,该包依赖哪些包

apt-cache depends  ansible

apt show  ansible  | grep Recommends

dpkg -I path_to_deb_file

# apt-rdepends 来查看依赖及依赖的依赖
apt-rdepends ansible

centos版

rpm   -qR  postfix      # 查postfix 依赖哪些包,R参数的意思就是requires就是依赖哪些软件包

yum deplist postfix   #查postfix 依赖哪些包

下载包及其依赖

下载单个,如下载ansible

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 列表,并批量下载文件到当前目录

脚本下载

#!/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 的区别

 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、 列出已经安装软件的所有文件的位置

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.查询某个命令来自哪个包

##先安装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

add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
   $(lsb_release -cs) \
   stable"

27、只下载不安装

apt-get install -d <软件包>
ls /var/cache/apt/archives/

 实测:UOS 20中不能下载依赖,已经安装的包需要卸载才能下到缓存路径中。

28、dpkg -X 提取deb包中的二进制可执行文件

dpkg -X  path 

29、删除系统默认安装的游戏软件

# 从已安装软件过滤,2种方式
apt list --installed | grep mahjongg
dpkg --list  | grep -i  Aisle*

# 删除
apt --fix-broken install
sudo apt purge gnome-mahjongg

  



 

posted @ 2020-05-14 08:59  凡人半睁眼  阅读(597)  评论(0)    收藏  举报