添加和更新软件包
更新、升级和安装软件包会导致网络服务中断
- 升级软件包可能会导致服务重启或停止。
- 安装软件包有时会通过更改核心服务依赖软件包来中断核心服务。在某些情况下,由于依赖关系,安装新软件包还会升级其他现有软件包。
- 如果服务停止,您需要重启交换机以重启服务。
列出交换机上安装的软件包
要显示交换机上安装的软件包,请运行以下命令。
cumulus@switch:~$ nv show platform software installed
acpi libfreeipmi17 libyajl2
acpid libfreetype6 libyaml-0-2
acpi-support-base libfstrm0 libyang2
adduser libfuse2 libyuv0
apt libgav1-1 libzmq5
arping libgcc-12-dev libzstd1
arptables libgcc-s1 linux-base
atftp libgcrypt20 linux-image-6.1.0-cl-1-amd64
atftpd libgd3 linux-image-amd64
auditd libgdbm6 linux-libc-dev
babeltrace libgdbm-compat4 linux-perf
base-files libgee-0.8-2 linuxptp
base-passwd libgeoip1 linux-selftests
...
cumulus@switch:~$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-=========================-============-=================================
ii acpi 1.7-1.1 amd64 displays information on ACPI devices
ii acpi-support-base 0.142-8 all scripts for handling base ACPI events such as th
ii acpid 1:2.0.31-1 amd64 Advanced Configuration and Power Interface event
ii adduser 3.118 all add and remove users and groups
ii apt 1.8.2 amd64 commandline package manager
ii arping 2.19-6 amd64 sends IP and/or ARP pings (to the MAC address)
ii arptables 0.0.4+snapshot20181021-4 amd64 ARP table administration
...
显示软件包版本
要显示交换机上安装的软件包的版本
以下示例命令显示交换机上 vrf
软件包的版本
cumulus@switch:~$ nv show platform software installed vrf
operational
----------- -------------------
package vrf
version 1.0-cl5.9.0u4
description Linux tools for VRF
以下示例命令显示交换机上 vrf
软件包的版本
cumulus@switch:~$ dpkg -l vrf
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==========-============-============-=================================
ii vrf 1.0-cl5.9.0u4 amd64 Linux tools for VRF
升级所有软件包
要将交换机上安装的所有软件包升级到最新版本,请运行以下命令
cumulus@switch:~$ nv action upgrade system packages to latest use-vrf default dry-run
默认情况下,NVUE nv action upgrade system packages
命令在管理 VRF 中运行。要在非管理 VRF(例如 default
)中运行该命令,您必须使用 use-vrf <vrf>
选项。
cumulus@switch:~$ sudo -E apt-get update
cumulus@switch:~$ sudo -E apt-get upgrade
系统列出要升级的软件包,并提示您继续。
上述命令将所有已安装版本升级到其最新版本,但不安装任何新软件包。要添加新软件包,请参阅下方的 添加软件包。
当您运行任何 apt-get
命令时,请始终将 -E
选项与 sudo
一起使用。此选项会在您安装新软件包或升级发行版之前保留您的环境变量(例如 HTTP 代理)。
添加软件包
要添加新软件包,首先使用 NVUE nv show platform software installed <package-name>
命令或 Linux dpkg -l | grep <package-name>
命令确保该软件包尚未在系统上。
- 如果软件包已在系统上,您可以从 Cumulus Linux 存储库更新软件包,作为软件包升级过程的一部分,该过程会升级系统上的所有软件包。请参阅上方的 升级软件包。
- 如果软件包不在系统上,请使用 Linux
sudo -E apt-get install <package-name>
命令添加它。此命令从 Cumulus Linux 存储库检索软件包,并将其与任何依赖软件包一起安装在您的交换机上。以下示例在交换机上添加tcpreplay
软件包
cumulus@switch:~$ sudo -E apt-get update
cumulus@switch:~$ sudo -E apt-get install tcpreplay
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
tcpreplay
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 436 kB of archives.
After this operation, 1008 kB of additional disk space will be used
...
您可以同时安装多个软件包
cumulus@switch:~$ sudo -E apt-get install <package1> <package2> <package3>
在某些情况下,由于依赖关系,安装新软件包还会升级其他现有软件包。要在安装之前查看这些其他软件包,请运行 apt-get install --dry-run
命令。
配置其他存储库
默认情况下,Cumulus Linux 搜索 Cumulus Linux 存储库以查找可用的软件包。您可以通过将其他存储库添加到 Cumulus Linux 查询的源列表来配置其他要搜索的存储库。
- NVIDIA 向某些软件包添加了功能或进行了错误修复;请勿将这些软件包替换为来自其他存储库的版本。
- NVIDIA 不测试不属于 Cumulus Linux 存储库的软件包,Cumulus Linux 技术支持也不支持这些软件包。
要配置其他存储库
- 提供存储库位置、发行版和池。
- 将存储库设置为受信任,或者提供安全密钥。
- 启用存储库源以添加来自存储库的源文件(可选)。
- 设置在添加其他存储库时要使用的 VRF(可选)。默认 VRF 为
mgmt
。
存储库 URL 可以是 https
或 http
格式,也可以是交换机上的目录和文件名 (/etc/myrepo
)。
以下示例配置位于 http://test.myrepo.com
的存储库,发行版为 mydist
,池为 mypool
,启用来自存储库的源文件,并将存储库设置为受信任。该示例还将 VRF 设置为 default
。
cumulus@switch:~$ nv set system packages use-vrf default
cumulus@switch:~$ nv set system packages repository http://test.myrepo.com distribution mydist pool mypool
cumulus@switch:~$ nv set system packages repository http://test.myrepo.com source enabled
cumulus@switch:~$ nv set system packages repository http://test.myrepo.com insecure enabled
cumulus@switch:~$ nv config apply
以下示例配置位于 http://test.myrepo.com
的存储库,发行版为 mydist
,池为 mypool
,启用来自存储库的源文件,并提供安全密钥 thekey.asc
。
cumulus@switch:~$ nv set system packages repository http://test.myrepo.com distribution mydist pool mypool
cumulus@switch:~$ nv set system packages repository http://test.myrepo.com source enabled
cumulus@switch:~$ nv set system packages repository http://test.myrepo.com key thekey.asc
cumulus@switch:~$ nv config apply
编辑 /etc/apt/sources.list
文件以配置存储库。
以下示例配置位于 http://test.myrepo.com
的存储库,发行版为 mydist
,池为 mypool
,启用来自存储库的源文件,并将存储库设置为受信任。
deb [trusted=yes] http://test.myrepo.com mydist mypool
deb-src [trusted=yes] http://test.myrepo.com mydist mypool
以下示例配置位于 http://test.myrepo.com
的存储库,发行版为 mydist
,池为 mypool
,启用来自存储库的源文件,并提供安全密钥 thekey.asc
。
deb [signed-by=/etc/apt/keyrings/thekey.asc] http://test.myrepo.com mydist mypool
deb-src [signed-by=/etc/apt/keyrings/thekey.asc] http://test.myrepo.com mydist mypool
管理存储库密钥
Cumulus Linux 提供以下命令:
- 获取存储库密钥并将其保存在交换机上。
- 删除存储库密钥。
- 要全局获取和保存密钥,请运行
nv action fetch system packages key <key>
命令。Cumulus Linux 获取密钥并将其全局保存在/etc/apt/trusted.gpg.d/
目录中。这是默认设置。 - 要为特定存储库获取和保存密钥,请运行
nv action fetch system packages key <key> scope repository
命令。Cumulus Linux 获取密钥并将其保存在/etc/apt/keyrings/
目录中。
以下示例获取存储库密钥 http://deb.opera.com/archive.key
并将其保存在 /etc/apt/trusted.gpg.d
目录中
cumulus@switch:~$ nv action fetch system packages key http://deb.opera.com/archive.key
以下示例通过将范围设置为 repository
,获取存储库密钥 http://deb.opera.com/archive.key
并将其保存在 /etc/apt/keyrings
目录中
cumulus@switch:~$ nv action fetch system packages key http://deb.opera.com/archive.key scope repository
要删除软件包密钥,请运行 nv action delete system packages key <key>
命令
cumulus@switch:~$ nv action delete system packages key debian-archive-bookworm-automatic.asc
要全局获取和保存存储库密钥
- 如果密钥已存在于文件系统中,请将其复制到
/etc/apt/trusted.gpg.d/
目录。 - 如果密钥位于远程 URL,请使用
wget
或其他实用程序获取它,然后将其复制到/etc/apt/trusted.gpg.d/
目录。
以下示例从远程 URL 获取密钥 http://your-url.com/name.key
并将其复制到 /etc/apt/trusted.gpg.d/
目录
cumulus@switch:~$ wget -qO - http://your-url.com/name.key
cumulus@switch:~$ sudo cp name.key /etc/apt/trusted.gpg.d
要为特定存储库获取和保存密钥
- 如果您的密钥已存在于文件系统中,请将其复制到
/etc/apt/keyrings/
目录。 - 如果密钥位于远程 URL,请使用
wget
或其他实用程序获取它,然后将其复制到/etc/apt/keyrings/
目录。
以下示例将文件系统上的密钥 name.key
复制到 /etc/apt/keyrings/
目录。
cumulus@switch:~$ sudo cp name.key /etc/apt/keyrings/
要删除密钥,请从 /etc/apt/keyrings
或 /etc/apt/trusted.gpg.d
目录中删除密钥。
cumulus@switch:~$ sudo rm /etc/apt/keyrings/name.key
显示存储库信息
要显示存储库列表及其详细信息
cumulus@switch:~$ nv show system packages repository
Repository Insecure Source Distribution Pool
-------------------------------------------- -------- ------- ----------------------- -----------
https://apps3.cumulusnetworks.com/repos/deb/ enabled enabled CumulusLinux-d12 netq-latest
CumulusLinux-d12-latest netq
upstream
https://apt.cumulusnetworks.com/repo CumulusLinux-d12-latest cumulus
netq
upstream
要显示特定存储库的详细信息
cumulus@switch:~$ nv show system packages repository https://apt.cumulusnetworks.com/repo
operational applied
-------------- ----------------------- -------
insecure enabled enabled
source enabled enabled
[distribution] CumulusLinux-d12 CumulusLinux-d12
[distribution] CumulusLinux-d12-latest CumulusLinux-d12-latest
要显示存储库的发行版列表
cumulus@switch:~$ nv show system packages repository https://apt.cumulusnetworks.com/repo distribution
Distribution Origin Version Codename Pool Priority
---------------- ---------------- ------- ---------------- ----------- --------
CumulusLinux-d12 Cumulus Networks CumulusLinux-d12 netq-latest 991
要显示存储库的发行版的详细信息
cumulus@switch:~$ nv show system packages repository https://apps3.cumulusnetworks.com/repos/deb/ distribution CumulusLinux-d12
operational applied
-------- ---------------- -------
[pool] netq-latest
codename CumulusLinux-d12
origin Cumulus Networks
要显示存储库的发行版池列表
cumulus@switch:~$ nv show system packages repository https://apps3.cumulusnetworks.com/repos/deb/ distribution CumulusLinux-d12 pool
Pool priority
-------- --------
netq-latest 100
要显示存储库和密钥的列表
cumulus@switch:~$ nv show system packages
operational applied
------- ----------- -------
use-vrf mgmt
repository
=============
Repository Insecure Source Key Distribution Pool
----------------------------------------------- -------- -------- --- ------------------------- ----
copy:/var/lib/cumulus/cumulus-local-apt-archive enabled disabled cumulus-local-apt-archive main
key
======
Key ID Path Scope
---------------------------------------------- --------------------------------------------------------------------- ------
debian-archive-bookworm-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-bookworm-automatic.asc global
debian-archive-bookworm-security-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-bookworm-security-automatic.asc global
debian-archive-bookworm-stable.asc /etc/apt/trusted.gpg.d/debian-archive-bookworm-stable.asc global
debian-archive-bullseye-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-bullseye-automatic.asc global
debian-archive-bullseye-security-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-bullseye-security-automatic.asc global
debian-archive-bullseye-stable.asc /etc/apt/trusted.gpg.d/debian-archive-bullseye-stable.asc global
debian-archive-buster-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-buster-automatic.asc global
debian-archive-buster-security-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-buster-security-automatic.asc global
debian-archive-buster-stable.asc /etc/apt/trusted.gpg.d/debian-archive-buster-stable.asc global
要显示密钥列表
cumulus@switch:~$ nv show system packages keys
Key ID Path Scope
---------------------------------------------- --------------------------------------------------------------------- ------
debian-archive-bookworm-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-bookworm-automatic.asc global
debian-archive-bookworm-security-automatic.asc /etc/apt/trusted.gpg.d/debian-archive-bookworm-security-automatic.asc global
debian-archive-bookworm-stable.asc /etc/apt/trusted.gpg.d/debian-archive-bookworm-stable.asc global
sample-test-key.asc /etc/apt/keyrings/sample-test-key.asc repository
要显示软件包密钥的详细信息
cumulus@switch:~$ nv show system packages key debian-archive-bookworm-automatic.asc
operational
----- ---------------------------------------------------------------------
scope global
path /etc/apt/trusted.gpg.d/debian-archive-bookworm-security-automatic.asc