1、Ubuntu中如何设置IP地址
在 Ubuntu 中,可以通过几种方式设置 IP 地址:使用网络管理器图形界面、命令行工具(如 nmcli 或 nmtui)、或直接编辑网络配置文件。以下是这几种方法的详细步骤。
1.1、方法一:使用图形界面(Network Manager)
1、打开网络设置:
- 点击屏幕右上角的网络图标。
- 选择“设置”或“网络设置”。
2、选择网络连接:
- 在左侧面板中选择要配置的网络连接(例如,有线网络或无线网络)。
- 点击齿轮图标以打开该连接的设置。
3、配置 IPv4 设置:
- 选择“IPv4”标签。
- 在“方法”下拉菜单中选择“手动”。
- 输入所需的 IP 地址、子网掩码和网关。
- 在 DNS 设置中输入 DNS 服务器地址(如果需要)。
4、保存更改:
- 点击“应用”按钮以保存更改。
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."。
好处:
- 命令行更易于管理,nmcli命令敲错了不会生效,而手工修改配置文件则会导致配置异常
- 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)。
其中有几个重要选项:
- connection.id(别名 con-name):连接名;
- connection.interface-name(别名 ifname):设备名;
- 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 设置:
- 将“方法”设置为“手动”。
- 输入 IP 地址、子网掩码和网关。
- 输入 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类:
- Debian,其文件扩展名为“.deb”
发行版代表:Debian/Ubuntu,
软件管理机制:DPKG, 使用指令:dpkg;
在线升级机制:apt-get 或新工具 apt。
- Red Hat, 其文件扩展名为“.rpm”
发行版代表:Red Hat/Fedora/centos,
软件管理机制:RPM, 使用指令:rpm/rpmbuild;
在线升级机制:yum。
- 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个
- Main:包含Ubuntu官方支持的自由软件。
- Restricted:包含Ubuntu官方支持的非自由软件,如硬件驱动程序。
- Universe:包含社区支持的自由软件。
- 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命令及其功能:
- 安装软件包:
# apt-get install package_name
这个命令会从默认的软件仓库中下载并安装指定的软件包。
- 更新软件源数据库:
# apt-get update
这个命令会更新本地的软件源数据库,确保你获取到最新的软件版本信息。
- 升级已安装的软件包:
# apt-get upgrade
这个命令会升级所有已安装的软件包到最新的版本。
- apt-mark hold package_name
使用这个命令可以将指定的包的版本hold住,这样在更新的时候就会忽略掉这个包。
- apt-mark unhold package_name
将 hold 替换为 unhold 就可以取消对这个包版本的锁定了。
- 删除软件包:
# apt-get remove package_name
这个命令会删除指定的软件包,但保留其配置文件。
- 彻底删除软件包:
# apt-get purge package_name
这个命令不仅会删除软件包,还会删除其所有的配置文件。
- 清理下载的缓存文件:
# apt-get clean
这个命令会清理掉已下载的.deb包,以释放磁盘空间。
- 自动删除不再需要的软件包:
# apt-get autoremove
这个命令会自动删除所有不再需要的依赖包。
- apt-cache:用于查询软件包信息
apt-cache search package #搜索包
apt-cache show package #获取包的相关信息,如说明,大小,版本。
apt-cache depends package #了解使用的依赖
apt-cache rdepends package #查看该包被哪些包依赖
- 安装软件包指定版本
使用 apt-cache madison 列出软件的所有来源
# apt-cache madison vim
安装指定版本软件
# apt-get install vim=2:8.2.3995-1ubuntu2.17
3、apt-get instal下载软件包流程
大体分为4步:apt-get命令维护软件时,会自动识别并下载相应的依赖软件。
- 扫描本地存放的软件包更新列表(由“apt-get update”命令刷新更新列表,也就是/var/lib/apt/lists/),找到最新版本的软件包;
- 进行软件包依赖关系检查找到支持该软件正常运行的所有软件包;/var/lib/dpkg/available 文件记录了当前系统已安装和未安装的软件包信息,包括依赖;或者使用 apt-cache depends package 查看此软件包的依赖信息。
- 从软件源所指的镜像站点中,下载相关软件包(包含所依赖的软件包),并存放在/var/cache/apt/archive;
- 使用dpkg来解压软件包,并自动完成应用程序的安装和配置。
2.2.3、apt
1、apt 的功能和用法
apt命令整合了apt-get和apt-cache的功能,提供了一个更易于记忆和使用的命令集。以下是一些常用的apt命令及其功能:
- 安装软件包:
# apt install package_name
这个命令与apt-get install功能相同,用于安装指定的软件包。
- 更新软件包列表:
# apt update
这个命令与apt-get update功能相同,用于更新本地的软件包列表。
- 升级已安装的软件包:
# apt upgrade
这个命令与apt-get upgrade功能相同,用于升级所有已安装的软件包。
- 删除软件包:
# apt remove package_name
这个命令与apt-get remove功能相同,用于删除指定的软件包。
- 彻底删除软件包:
# apt purge package_name
这个命令与apt-get purge功能相同,用于彻底删除软件包及其配置文件。
- 查看包信息:
# apt show package_name
这个命令用于显示指定软件包的详细信息,包括描述、依赖关系、版本等。与apt-cache show功能相同
- 搜索软件包:
¥ 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命令:
- Ubuntu是基于Debian的Linux系统,而Debian系统的软件是使用APT和dpkg进行管理。dpkg是"Debian Packager"的简写,是一个底层的软件包管理工具。
- dpkg:用来安装.deb文件时,不会解决软件的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。
apt-get命令:
- apt-get主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件。如果你已阅读 apt-get 命令指南,可能已经遇到过许多类似的命令,如 apt-cache、apt-config 等。这些命令都比较低级又包含众多功能,普通的 Linux 用户也许永远都不会使用到。换种说法来说,最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。
- apt-get:会解决和安装软件的依赖问题,并会咨询软件仓库,但不会安装本地的deb文件,apt-get是建立在dpkg之上的软件管理工具。
apt命令:
- apt是会解决和安装模块的依赖问题,并会咨询软件仓库,是在线安装。
- apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中的功能。
- 简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。
- 虽然 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 还有一些自己的命令