我的 Ubuntu 21.10 服务器没有互联网。不幸的是,发行版中缺少用于检测路由问题和其他网络问题的主要软件包。因此,由于缺少路由命令,我无法知道我的服务器的实际路由是什么。
但是,现在我可以从其他对等网桥看到我的服务器。我想通过 scp 从其他机器复制 net-tools,然后手动安装这个最重要的包。但是:
- 我安装了 Ubuntu LiveCD,将此源添加到 /etc/apt/source.list - 并收到答案“未找到包”
- 如何找到 net-tools 软件包http://archive.ubuntu.com/?
- 哪些部分需要通过 scp 复制到目标机器?
- 如何在目标机器上手动启动该包?
- 如何避免 GPG 问题以及其他受信任安装包的问题?
- 多年来,我在与各种服务器联网时都遇到过类似的问题,事实上,在我所有的运营商和任何 Linux 发行版中都是如此。为什么用于检测网络问题的主要软件包没有包含在任何 Linux 发行版中?为什么要从 LiveCD 中删除如此重要的软件包?我仍然不明白这个决定。
答案1
您可以在此处找到该包的下载链接: https://packages.ubuntu.com/impish/net-tools
我猜你想要 64 位版本,所以点击“amd64”链接,这会带你进入一个页面,你必须选择你想要下载的服务器(建议选择离你最近的服务器)。
将其复制到目标系统并安装:
sudo dpkg -i net-tools_*.deb
答案2
对于从 Ubuntu 系统手动下载包:
sudo apt install package_name --download-only
对于从其他操作系统手动下载软件包,请使用http://packages.ubuntu.com。
- 选择正确的 Ubuntu 版本。(例如:https://packages.ubuntu.com/focal/net-tools)。错误发布的软件包通常不会起作用。
将包复制到离线系统后,使用 apt 进行安装:
sudo apt install /path/to/package_name.deb
对于大多数线下用户来说,这是最简单的部分,这这时就会变得棘手:Apt 可能会因为缺少依赖项而拒绝安装软件包。这意味着要记下这些依赖项,然后再手动下载和 scp 软件包。
sudo apt install /path/to/package1.deb /path/to/package2.deb /path/to/packageN.deb
有时需要几轮依赖关系。我曾经不得不进行八轮潜入测试,才得到所有依赖关系。
这次之后,我吸取了教训。现在我保留一个在线虚拟机,其软件包设置与离线系统相同(无数据),并使用 apt --download-only 方法,该方法可以第一次捕获所有依赖项。