ubuntu网络及软件包管理

发布于:2025-02-23 ⋅ 阅读:(14) ⋅ 点赞:(0)

1、Ubuntu中如何设置IP地址

在 Ubuntu 中,可以通过几种方式设置 IP 地址:使用网络管理器图形界面、命令行工具(如 nmcli 或 nmtui)、或直接编辑网络配置文件。以下是这几种方法的详细步骤。

1.1、方法一:使用图形界面(Network Manager)

1、打开网络设置:

  1. 点击屏幕右上角的网络图标。
  2. 选择“设置”或“网络设置”。

2、选择网络连接:

  1. 在左侧面板中选择要配置的网络连接(例如,有线网络或无线网络)。
  2. 点击齿轮图标以打开该连接的设置。

3、配置 IPv4 设置:

  1. 选择“IPv4”标签。
  2. 在“方法”下拉菜单中选择“手动”。
  3. 输入所需的 IP 地址、子网掩码和网关。
  4. 在 DNS 设置中输入 DNS 服务器地址(如果需要)。

4、保存更改:

  1. 点击“应用”按钮以保存更改。

1.2、方法二:使用 nmcli 命令行工具

你是否会遇到在不同的Linux系统中配置网络时,修改的配置文件和语法都不一样的烦恼呢?

各种不同的文件路径和语法,甚至Ubuntu系统中每隔几代网络配置文件就会变换位置和语法,这种情况非常不利于我们日常对系统的维护和管理。

对于这种情况,我们可以使用NetworkManager工具在不同的系统上进行统一语法的配置与管理

现阶段所发行的Linux版本基本都支持NetworkManager工具进行统一管理

如果配置时发生语法错误,该工具将会暂停修改该网络,不会造成配置文件错误而导致的一系列问题

甚至当你将原网络配置文件删除后,只要使用命令创建一个和原先参数一样的网络接口,该配置文件就会自动的重新生成

使用该工具配置的所有网络配置文件会存于/etc/NetworkManager/system-connections/目录下

注:network-manager接管网络后使用nmcli命令修改网卡的相关配置后都会永久生效(重启网卡后依旧生效)

                        

nmcli,全称为 NetworkManager Command-Line,是  NetworkManager的命令行工具。它主要用于创建、显示、编辑、删除、启用和禁用网络连接,以及控制和显示网络设备状态。使用nmcli 命令时,需要开启 NetworkManager 服务,不然会提示 "Error: NetworkManager is not  running."。

好处:

  1. 命令行更易于管理,nmcli命令敲错了不会生效,而手工修改配置文件则会导致配置异常
  2. nmcli命令使用可以补全,但需要安装bash-completion包

1.2.1、配置NetworkManager接管网络(选)

如果系统默认自带了NetworkManager工具就不用做此步,如果是后期手动安装的就需要配置接管网络

安装Network-Manager并启动

# apt update

# apt install network-manager -y

# systemctl restart NetworkManager

# systemctl enable NetworkManager

以下是一些常见的nmcli命令:

1. 查看所有网络连接:nmcli connection show

2. 查看活动的网络连接:nmcli connection show --active

3. 显示设备的连接状态:nmcli device status

4. 显示所有设备网络设备详情信息:nmcli device show

5. 显示指定网络设备的详细信息:nmcli device show <device name>

6. 启用网络连接:nmcli connection up <connection name>

7. 停用网络连接:nmcli connection down <connection name>

8. 禁用网卡连接:nmcli device disconnect <device name>

9. 启用网卡连接:nmcli device connect <device name>

10. 删除网络连接的配置文件:nmcli connection delete <connection name>

11. 重新加载网络配置文件:nmcli general reload

1.2.2、显示NM是否接管网络

# mcli networking

# nmcli n   //后置参数均可缩写

显示所有设备详细信息

# nmcli device show

# nmcli d sh         # show 不可简写为 s,否则与 status 冲突,但可以简写为 sh

显示指定设备详细信息

# nmcli d sh ens33

查询网卡状态

# nmcli device status

# nmcli d s

在 Ubuntu 系统上使用 nmcli 命令查看网络设备时,发现网络接口的 STATE 是 unmanaged(上面状态提示未接管):

配置NetworkManager接管网络:

开启网络

# nmcli networking on

情况1:netplan管理网络的系统

如果是netplan管理网络的系统(如ubuntu22.04)需要在netplan中指定NetworkManager接管网络:

# vim /etc/netplan/00-installer-config.yaml         # 每个系统的文件名都不一样,我这里叫00-installer-config.yaml

在version下添加,注意开头对齐:

renderer: NetworkManager

保存退出

使配置应用到系统中

# netplan apply

此时已经可以通过nmcli管理网络了

使用nmcli -p device或nmcli device status查看设备状态  

情况2:

ifupdown管理网络的系统

如果是ifupdown管理网络的系统(如eve-ng或Ubuntu18.04)需要:

1、在NetworkManager配置中指定ifupdown也可管理网络,这样如果系统原先存在有网络连接,在NetworkManager接管后原网络连接依旧存在不改变:

# vim /etc/NetworkManager/NetworkManager.conf

修改以下内容:

managed=true

保存退出

2、创建.yaml文件并修改(如果原先存在有后缀为.yaml的文件,直接修改即可,没有的话再创建)

# vim /etc/netplan/interface.yaml

添加以下内容:

network:

    version: 2

    renderer: NetworkManager

保存退出

3、暂时关闭系统网络服务后使得netplan配置在系统生效并重启NetworkManager服务

# systemctl stop systemd-networkd

# netplan apply

# systemctl restart NetworkManager

# systemctl restart systemd-networkd

1.2.3、列出所有网络连接:

# nmcli connection show

# nmcli c s

# nmcli c #show是nmcli c的默认项,因此可以省略

显示某个网卡的详细信息

# nmcli connection show netplan-ens33

启动/关闭指定连接

如果某个设备原本就处于连接状态,那么该命令会重启它

# nmcli c up 设备名

关闭之后,再用nmcli c查看,DEVICE项将显示--。

# nmcli c down 设备名

删除网络连接

# nmcli c delete netplan-ens33  

# nmcli c de netplan-ens33      # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de

新增网络连接

# nmcli c add type 连接类型 选项 选项值  

# nmcli c a type 连接类型 选项 选项值

通常用的type是802-3-ethernet(别名 ethernet)。

其中有几个重要选项:

  1. connection.id(别名 con-name):连接名;
  2. connection.interface-name(别名 ifname):设备名;
  3. connection.autoconnect(别名 autoconnect):是否开机自启,其值只能是 yes 或 no,默认 yes

示例:

# nmcli connection add type ethernet con-name ens33 ifname ens33

查看ens33连接的配置文件:

修改连接的 IP 地址信息:

语法:

nmcli con modify <连接名> ipv4.method manual ipv4.addresses <新的ipv4地址> ipv4.gateway <新的ipv4网关地址> ipv4.dns <dns服务器>

示例:

假设要修改的连接名是 netplan-ens33,并将 IP 地址设置为 192.168.3.106,子网掩码为24,网关为 192.168.30.254,dns为8.8.8.8,114.114.114.114:

# nmcli connection modify ens33 ipv4.addresses 192.168.30.106/24   # 修改 IP 地址和子网掩码

# nmcli connection modify ens33 ipv4.method manual     # 修改为静态配置,默认是 auto

# nmcli connection modify ens33 ipv4.gateway 192.168.30.254       # 修改默认网关

# nmcli connection modify ens33 ipv4.dns 8.8.8.8           # 修改 DNS

# nmcli connection modify ens33 +ipv4.dns 114.114.114.114      # 添加一个 DNS

# nmcli connection modify ens33 ipv6.method ignored     # 将 IPv6 禁用

# nmcli connection modify ens33 connection.autoconnect yes     # 开机启动

# nmcli connection up ens33

注意在修改method前,要先修改address

使用空引号""代替选项值,可以将选项设回默认值:nmcli c m ens33 ipv4.method ""

给ens33连接在增加一个ip地址

# nmcli connection modify ens33 +ipv4.addresses 192.168.30.107/24 #添加第二个ip地址

注:上面修改网络连接的各个ip地址信息也可以写成一条命令

# nmcli con modify ens33 ipv4.method manual ipv4.addresses 192.168.30.106/24 ipv4.gateway 192.168.30.254 ipv4.dns 8.8.8.8

# nmcli connection up ens33

1.3、方法三:使用 nmtui 命令行工具

1、启动 nmtui 工具:

# nmtui

2、选择“编辑连接”。

3、选择要编辑的连接并按回车键。

4、配置 IPv4 设置:

  1. 将“方法”设置为“手动”。
  2. 输入 IP 地址、子网掩码和网关。
  3. 输入 DNS 服务器地址。

5、保存更改并退出。

1.4、方法四:手动编辑网络配置文件(Netplan)

对于 Ubuntu 18.04 及更高版本,可以使用 Netplan 来配置网络:

1、打开 Netplan 配置文件:

在Ubuntu 服务器上配置静态 IP 地址,你可以修改 /etc/netplan/ 目录中的相关 netplan 网络配置文件。

注意

仔细检查配置文件中的 renderer 节。如果渲染器配置设置为 NetworkManager,则 Ubuntu 的系统网络配置由 GUI 网络管理器管理。如果您不希望通过网络管理器配置网络 IP 地址,请将渲染器更改为 renderer: networkd。

networkd 守护进程通过 DHCP 配置网络接口:

应用新的网络配置:

使用以下命令来应用新的配置:

# netplan apply

将网络接口 ens33 设置为静态 IP 地址 192.168.30.100,网关为 192.168.30.254,DNS 服务器为 8.8.8.8 和 114.114.114.114 将上面的配置替换为下面的配置。

警告

请注意,你必须为块的每一行遵守正确的代码缩进。换句话说,每行的前缀空格数很重要。否则,您可能会收到类似于以下内容的错误消息:

//etc/netplan/00-installer-config.yaml 第 7 行第 1 列处的 YAML 无效:未识别的密钥。

Networkd守护进程通过静态配置网络接口:

应用新的网络配置:

使用以下命令来应用新的配置:

# netplan apply

上面的警告显示的是从22.04版本开始gateway4参数不建议使用了,使用default routes代替了。

应用新的网络配置:

使用以下命令来应用新的配置:

# netplan apply

如果你遇到一些问题,请执行:

# netplan --debug apply

提示:从22.04版本开始,网络的配置文件也可以按下面的方式编写

2、ubuntu中的软件包管理器apt和dpkg、apt和apt-get的区别

1、Linux软件包按封装类型

Linux软件包按封装类型分为3类:

  1. Debian,其文件扩展名为“.deb”

发行版代表:Debian/Ubuntu,

软件管理机制:DPKG, 使用指令:dpkg;

在线升级机制:apt-get 或新工具 apt。

  1. Red Hat, 其文件扩展名为“.rpm”

发行版代表:Red Hat/Fedora/centos,

软件管理机制:RPM, 使用指令:rpm/rpmbuild;

在线升级机制:yum。

  1. Tarball,其扩展名有“.tar.gz”、“.tar.bz2”或“TGZ”

源码安装,执行makefile文件,使用gcc将源码文件编译成可执行的二进制文件。

2、Ubuntu软件包管理

Ubuntu使用dpkg作为其底层的软件包管理系统,dpkg是Debian软件包管理器的简称,它能够处理软件包的安装、卸载和配置等操作,直接使用dpkg进行软件包管理可能会比较繁琐,因此Ubuntu还提供了更高级的软件包管理工具,如apt和apt-get,以简化软件包管理的过程。

2.1、dpkg

dpkg是一个底层的本地软件包管理系统,主要用于对已下载到本地和已安装的软件包(xxx.deb)进行管理,具体使用命令如下:

dpkg -i package.deb # 安装一个 Debian 软件包,如手动下载的xxx.deb文件。dpkg不能自动解决依赖关系,如果安装时遇到了软件依赖问题,可以用apt-get、apt

dpkg -c package.deb # 列出 package.deb 的内容。

dpkg -I package.deb # 从 package.deb 中提取包信息。(大写的i)

dpkg -r package # 删除包,不是完全的卸载,它的配置文件还存在。

dpkg -P package # 完全清除一个已安装的包。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配置文件。

dpkg -L package # 列出 package 安装的所有文件清单。

dpkg -l package    # 列出当前已安装的包的简单信息,包括名字,版本,架构,简单描述。

dpkg -s package # 显示已安装包的信息。

dpkg -S package # 查看软件在哪个包里,即查询系统中某个文件属于哪个软件包(类似于rpm -qf)提供的。

例如1:查询find命令属于哪个软件包

root@server01:~# which find

which find

/usr/bin/find    #用which查出find可执行文件的位置

root@server01:~# dpkg -S /usr/bin/find

dpkg -S /usr/bin/find

findutils: /usr/bin/find   #find命令属于findutils包

例如2:查询ip命令属于哪个软件包

root@server01:~# which ip

which ip

/usr/sbin/ip     #用which查出find可执行文件的位置

root@server01:~# dpkg -S /usr/sbin/ip

dpkg -S /usr/sbin/ip

dpkg-query: no path found matching pattern /usr/sbin/ip  #报错了

原因是文件名是一个符号链接

root@server01:~# ll /usr/sbin/ip

ll /usr/sbin/ip

lrwxrwxrwx 1 root root 7 Mar 24  2022 /usr/sbin/ip -> /bin/ip*

root@server01:~# ll /bin/ip

ll /bin/ip

-rwxr-xr-x 1 root root 718896 Mar 24  2022 /bin/ip*

root@server01:~# dpkg -S /bin/ip

dpkg -S /bin/ip

iproute2: /bin/ip     #ip命令属于iproute2包

例如3:查看帮助

root@server01:~# dpkg  --help

例如4:列出已安装的deb包

root@server01:~# dpkg -l  (小写L)

例如5:列出deb中的文件列表

root@server01:~# dpkg -L iproute2

例如6:打印deb包的详细信息,包括版本、依赖关系等

root@server01:~# dpkg -s iproute2

扩展:查看ubuntu的版本

root@server01:~# lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 22.04.2 LTS

Release:        22.04

Codename:       jammy

root@server01:~# cat /etc/issue

2.2、apt-get、apt

1、apt-get:是一个命令行工具,用于从Ubuntu软件源/软件仓库中获取和安装软件包,它支持自动解决软件包依赖关系,并提供了一些额外的功能,如升级已安装的软件包、删除不需要的软件包等。

2、apt:是apt-get的更高级版本,提供了更多的功能和选项,它支持更友好的命令行交互界面,并具有更好的依赖关系解决能力,使用apt时,可以通过apt install、apt remove、apt update等命令来管理软件包。

2.2.1、软件源/软件仓库
2.2.1.1、软件源

软件源

因为每个人都可以编译、制作deb包、并随意发布到网上,这就很容易造成混乱,甚至有些包还有可能是一个病毒软件。

因此Ubuntu系统采用一个软件仓库来管理这些deb软件包,把这些包放到一个官方的网站服务器上,用户使用apt/apt-get命令安装软件时,只能到这个服务器上下载软件。这些服务器我们也称为软件源 (repository) 或者简称为“源”。

考虑到全球各个地方的网络环境差异,往往会在全球各地同时配置几个镜像服务器,这样全球各地的Ubuntu用户都可以根据网络状况到最合适的服务器上去下载和安装deb软件包了。

主要的软件仓库有:Main、Restricted、Universe、Multiverse这4个

  1. Main:包含Ubuntu官方支持的自由软件。
  2. Restricted:包含Ubuntu官方支持的非自由软件,如硬件驱动程序。
  3. Universe:包含社区支持的自由软件。
  4. Multiverse:包含社区支持的非自由软件。

官方源或其镜像源(这个是不需要密钥的)地址保存文件:

/etc/apt/source.list

第三方源地址保存文件:

*/etc/apt/source.list.d文件夹下的所有 .list 文件

2.2.1.2、软件源资源索引

软件源配置文件只是告知Ubuntu系统可以访问的镜像站点地址,但那些镜像站点具体都拥有什么软件资源并不清楚。若每安装一个软件包,就在服务器上寻找一遍,效率是很低的。因而,就有必要为这些软件资源列个清单(建立索引文件),以便本地主机查询。

apt-get update或apt update命令扫描 /etc/apt/sources.list 文件记录的源服务器,自动连网寻找每个源服务器对应的Packages/Sources/Release列表文件,将服务器所具有软件包资的索引文件下载更新到本地。存放在本地的/var/lib/apt/lists/目录下。

2.2.1.3、Ubuntu中如何设置和管理软件源

以ubuntu 22.04版本为例

在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件包,

Ubuntu系统安装完成后,使用"apt-get install/apt install"安装软件的时候,由于使用的源是国外的(即ubuntu官方源),下载速度可能较慢,导致软件安装和更新速度较慢。为了提高下载速度,我们可以更换为国内的镜像源。下面以清华大学镜像源和阿里镜像源为例,介绍在Ubuntu系统下更换镜像源的方法。

换源思路:

1).备份源文件

2).获取国内源,修改源文件,并保存。

在Ubuntu官网上可以看到世界各地的更新源:

https://launchpad.net/ubuntu/+archivemirrors

https://launchpad.net/ubuntu/+cdmirrors

3).更新源文件。

Ubuntu22.04更换国内源

第一步:备份源文件

root@server01:~# scp /etc/apt/sources.list /etc/apt/sources.list.bak

第二步:获取国内源,修改源文件,并保存。

修改源文件/etc/apt/sources.list,将原有的所有源注释掉

root@server01:~# sed -i 's/^/# /' /etc/apt/sources.list

添加国内源:

root@server01:~# vim /etc/apt/sources.list

Ubuntu22.04常用的国内源有如下(以阿里源和清华源为例,实际操作时二者任选其一):

(1)、阿里源

阿里源地址:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

在列表上找到Ubuntu

点击进去选择对应的版本

修改镜像源配置文件,复制上面的镜像写入配置文件/etc/apt/sources.list,然后保存退出

(2)、清华源

清华源地址:https://mirrors.tuna.tsinghua.edu.cn/help

在列表上找到Ubuntu

点击进去选择对应的版本

修改镜像源配置文件,复制上面的镜像写入配置文件/etc/apt/sources.list,然后保存退出

第三步、更新软件源列表

root@server01:~# apt-get update

root@server01:~# apt update

2.2.1.4、安装来自第三方软件源中的软件

1)、使用 add-apt-repository 工具添加三方源

例如1:添加docker软件仓库

参考https://mirrors.aliyun.com

step 1: 安装必要的一些系统工具

# apt-get update

# apt-get -y install apt-transport-https ca-certificates curl software-properties-common

step 2: 安装GPG证书

# curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

Step 3: 写入软件源信息

# add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

Step 4: 更新并安装Docker-CE

# apt-get -y update

# apt-get -y install docker-ce

安装指定版本的Docker-CE:

Step 1: 查找Docker-CE的版本:

# apt-cache madison docker-ce

docker-ce | 5:27.1.1-1~ubuntu.22.04~jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

 docker-ce | 5:27.1.0-1~ubuntu.22.04~jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

 docker-ce | 5:27.0.3-1~ubuntu.22.04~jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

 docker-ce | 5:27.0.2-1~ubuntu.22.04~jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

 docker-ce | 5:27.0.1-1~ubuntu.22.04~jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

 docker-ce | 5:26.1.4-1~ubuntu.22.04~jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

 docker-ce | 5:26.1.3-1~ubuntu.22.04~jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages

Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的5:27.1.1-1~ubuntu.22.04~jammy)

格式:apt-get -y install docker-ce=[VERSION]

# apt-get -y install docker-ce=5:27.1.1-1~ubuntu.22.04~jammy

2)、手动添加三方源

在 /etc/apt/source.list.d/ 目录下新建 xxx.list 文件,并向文件写入第三方软件源。

# apt-get update 更新apt软件源数据库

# apt-get install -y package 下载安装软件包

2.2.2、apt-get

1、apt-get使用的关键目录

/var/lib/dpkg/available

文件的内容是软件包的描述信息,包括详细的软件包信息,包括软件版本、软件依赖的包等。

该文件包括当前系统所使用的所有软件包,其中包括当前系统中已安装的和未安装的软件包。

/var/cache/apt/archives

目录是在用 apt-get install 安装软件时,软件包的临时存放路径

/etc/apt/sources.list

/etc/apt/source.list.d文件夹下的所有 *.list 文件

存放的是软件源站点

/var/lib/apt/lists

使用apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录

2、apt-get 的功能和用法

apt-get命令主要用于软件包的安装、升级、删除和其他管理任务。以下是一些常用的apt-get命令及其功能:

  1. 安装软件包:

# apt-get install package_name

这个命令会从默认的软件仓库中下载并安装指定的软件包。

  1. 更新软件源数据库:

# apt-get update

这个命令会更新本地的软件源数据库,确保你获取到最新的软件版本信息。

  1. 升级已安装的软件包:

# apt-get upgrade

这个命令会升级所有已安装的软件包到最新的版本。

  1. apt-mark hold package_name

使用这个命令可以将指定的包的版本hold住,这样在更新的时候就会忽略掉这个包。

  1. apt-mark unhold package_name

将 hold 替换为 unhold 就可以取消对这个包版本的锁定了。

  1. 删除软件包:

# apt-get remove package_name

这个命令会删除指定的软件包,但保留其配置文件。

  1. 彻底删除软件包:

# apt-get purge package_name

这个命令不仅会删除软件包,还会删除其所有的配置文件。

  1. 清理下载的缓存文件:

# apt-get clean

这个命令会清理掉已下载的.deb包,以释放磁盘空间。

  1. 自动删除不再需要的软件包:

# apt-get autoremove

这个命令会自动删除所有不再需要的依赖包。

  1. apt-cache:用于查询软件包信息

apt-cache search package    #搜索包

apt-cache show package   #获取包的相关信息,如说明,大小,版本。

apt-cache depends package #了解使用的依赖

apt-cache rdepends package #查看该包被哪些包依赖

  1. 安装软件包指定版本

使用 apt-cache madison 列出软件的所有来源

# apt-cache madison vim

安装指定版本软件

# apt-get install vim=2:8.2.3995-1ubuntu2.17

3、apt-get instal下载软件包流程

大体分为4步:apt-get命令维护软件时,会自动识别并下载相应的依赖软件。

  1. 扫描本地存放的软件包更新列表(由“apt-get update”命令刷新更新列表,也就是/var/lib/apt/lists/),找到最新版本的软件包;
  2. 进行软件包依赖关系检查找到支持该软件正常运行的所有软件包;/var/lib/dpkg/available 文件记录了当前系统已安装和未安装的软件包信息,包括依赖;或者使用 apt-cache depends package 查看此软件包的依赖信息。
  3. 从软件源所指的镜像站点中,下载相关软件包(包含所依赖的软件包),并存放在/var/cache/apt/archive;
  4. 使用dpkg来解压软件包,并自动完成应用程序的安装和配置。
2.2.3、apt

1、apt 的功能和用法

apt命令整合了apt-get和apt-cache的功能,提供了一个更易于记忆和使用的命令集。以下是一些常用的apt命令及其功能:

  1. 安装软件包:

# apt install package_name

这个命令与apt-get install功能相同,用于安装指定的软件包。

  1. 更新软件包列表:

# apt update

这个命令与apt-get update功能相同,用于更新本地的软件包列表。

  1. 升级已安装的软件包:

# apt upgrade

这个命令与apt-get upgrade功能相同,用于升级所有已安装的软件包。

  1. 删除软件包:

# apt remove package_name

这个命令与apt-get remove功能相同,用于删除指定的软件包。

  1. 彻底删除软件包:

# apt purge package_name

这个命令与apt-get purge功能相同,用于彻底删除软件包及其配置文件。

  1. 查看包信息:

# apt show package_name

这个命令用于显示指定软件包的详细信息,包括描述、依赖关系、版本等。与apt-cache show功能相同

  1. 搜索软件包:

¥ apt search search_term

这个命令用于在软件包列表中搜索包含指定关键字的软件包。与apt-cache search功能相同

2.2.4、dpkg、apt-get、apt区别

dkpg(底层工具)->apt-get(上层工具)->apt(apt-get的再封装)

首先,需要理解包管理系统这个概念。

Linux包管理系统DPKG和RPM

不同的 Linux 发行版使用不同的包管理系统,一般而言,大多数发行版分别属于两大包管理技术阵营: Debian 的”.deb”,和红帽的”.rpm”。

dpkg :这个机制最早是由Debian Linux社群所开发出来的﹐通过dpkg 的机制,Debian提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息。只要是衍生于Debian 的其他Linux distributions 大多使用dpkg这个机制来管理软件的,包括B2D, Ubuntu等等。

RPM:这个机制最早是由Red Hat这家公司开发出来的﹐后来实在很好用﹐因此很多distributions 就使用这个机制来作为软件安装的管理方式。包括Fedora, CentOS, SuSE等等知名的开发商都是使用RPM。

软件包管理系统通常由两种工具类型组成:底层工具用来处理这些任务,比方说安装和删除软件包文件,上层工具,完成元数据搜索和依赖解析。

dpkg命令:

  1. Ubuntu是基于Debian的Linux系统,而Debian系统的软件是使用APT和dpkg进行管理。dpkg是"Debian Packager"的简写,是一个底层的软件包管理工具。
  2. dpkg:用来安装.deb文件时,不会解决软件的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。

apt-get命令:

  1. apt-get主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件。如果你已阅读 apt-get 命令指南,可能已经遇到过许多类似的命令,如 apt-cache、apt-config 等。这些命令都比较低级又包含众多功能,普通的 Linux 用户也许永远都不会使用到。换种说法来说,最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。
  2. apt-get:会解决和安装软件的依赖问题,并会咨询软件仓库,但不会安装本地的deb文件,apt-get是建立在dpkg之上的软件管理工具。

apt命令:

  1. apt是会解决和安装模块的依赖问题,并会咨询软件仓库,是在线安装。
  2. apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中的功能。
  3. 简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。
  4. 虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。

apt-get upgrade和apt-get dist-upgrade的区别

使用upgrade更新时,如果依赖关系无法解决时可能会报错或者停止,但是dist-upgrade命令可以自动解决依赖关系,因此dist-update有一定的危险性,因为可能会更新你不希望更新的软件,导致原来的一些需要依赖旧包的软件无法运行,可能会导致linux系统的崩溃。所以,我们一般较少使用apt-get dist-upgrade

当然,apt 还有一些自己的命令