当学习新的 Linux 技能时(或者像我一样,为了 Linux 认证而学习),在你的笔记本电脑上准备一些虚拟机 (VM) 会很有帮助,这样你就可以随时随地进行学习。
但是,如果你在没有良好互联网连接的地方工作,并且想要使用 Web 服务器,该怎么办? 如果你想使用其他你尚未安装的软件呢? 如果你依赖于从发行版的存储库下载它们,你可能会倒霉。 通过一些准备,你可以设置一个家庭实验室,它将允许你在任何地方安装你需要的一切,无论是否有网络连接。
要求如下:
- 你打算使用的 Linux 发行版的已下载 ISO 文件(例如,CentOS、Red Hat 等)
- 具有虚拟化的主机。 我使用Fedora 与 KVM 和 virt-manager,但任何 Linux 系统的工作方式都类似。 你甚至可以使用带有虚拟化的 Windows 或 Mac,但在实现上会有些差异
- 大约一小时的时间
1. 为你的仓库主机创建 VM
使用 virt-manager 创建一个规格适中的 VM; 1GB 内存、一个 CPU 和 16GB 磁盘空间就足够了。
在 VM 上安装 CentOS 7。

选择你的语言并继续。
单击安装目标位置,选择你的本地磁盘,选中自动配置分区复选框,然后在左上角单击完成。
在软件选择下,选择基础设施服务器,选中FTP 服务器复选框,然后单击完成。

选择网络和主机名,在右上角启用以太网,然后在左上角单击完成。
单击开始安装以开始安装操作系统。
你必须创建一个 root 密码,然后你可以在安装过程中创建一个带密码的用户。
2. 启动 FTP 服务
下一步是启动 FTP 服务并将其设置为运行,并允许它通过防火墙。
使用你的 root 密码登录,然后启动 FTP 服务器
systemctl start vsftpd
使其在每次启动时都工作:
systemctl enable vsftpd
将端口设置为允许通过防火墙:
firewall-cmd --add-service=ftp --perm
立即启用此更改:
firewall-cmd --reload
获取你的 IP 地址:
ip a
(可能是 eth0)。 你稍后会用到它。
3. 复制本地仓库的文件
通过你的虚拟化软件将你安装所用的 CD 挂载到你的 VM。
创建一个目录,用于临时挂载 CD:
mkdir /root/temp
挂载安装 CD:
mount /dev/cdrom /root/temp
将所有文件复制到 FTP 服务器目录:
rsync -avhP /root/temp/ /var/ftp/pub/
4. 将服务器指向本地仓库
基于 Red Hat 的系统使用以 .repo 结尾的文件来标识从哪里获取更新和新软件。 这些文件可以在以下位置找到
cd /etc/yum.repos.d
你需要删除指向你的服务器以查找互联网上 CentOS 仓库的 repo 文件。 我更喜欢将它们复制到 root 的主目录以将其移开
mv * ~
然后创建一个新的 repo 文件以指向你的服务器。 使用你喜欢的文本编辑器创建一个名为 network.repo 的文件,其中包含以下行(将你在步骤 2 中获得的 IP 地址替换为 <你的 IP>),然后保存它
[network]
name=network
baseurl=ftp://192.168.122.<your ip>/pub
gpgcheck=0
完成后,我们可以使用以下命令进行测试
yum clean all; yum install ftp
如果你的 FTP 客户端从“network”仓库按预期安装,则你的本地仓库已设置完成!

5. 使用你设置的仓库安装新的 VM
返回虚拟机管理器,创建另一个 VM—但这次,选择网络安装,URL 为
ftp://192.168.122.<your IP>/pub
如果你使用的是不同的主机操作系统或虚拟化管理器,请像以前一样安装你的 VM,然后跳到下一节。
6. 设置新的 VM 以使用你现有的网络仓库
你可以从你现有的服务器复制 repo 文件以在此处使用。
与第一个服务器示例中一样,输入
cd /etc/yum.repos.d
mv * ~
然后:
scp root@192.168.122.<your IP>:/etc/yum.repos.d/network.repo /etc/yum.repos.d
现在你应该准备好使用你的新 VM 并从你的本地仓库获取所有软件了。
再次测试
yum clean all; yum install screen
这将从你的本地仓库服务器安装你的软件。
这种设置使你摆脱了网络的束缚,并能够安装软件,可以为你在旅途中扩展技能创造一个更加可靠的环境。
Bob Murphy 将在 6 月 15 日至 16 日在北卡罗来纳州夏洛特举行的 Southeast Linux Fest 上介绍这个主题以及 GNU Screen 的介绍。
2 条评论