ubuntu网络及软件包管理

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 、d pkg

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 、a pt-get 、a pt

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 、a pt-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 、a pt

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 、d pkg 、a pt-get 、a pt 区别

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 还有一些自己的命令

相关推荐
BingoGo12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅4 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑