Linux系统void编程与管理教程大全从零开始掌握开源操作系统包含安装配置系统管理编程等全方位内容助你快速上手成为专家
1. Void Linux 简介
Void Linux 是一个独立的、滚动发布的通用操作系统发行版,它使用 runit 作为 init 系统,以及 XBPS 作为其默认的包管理器。Void Linux 支持多种架构,包括 x86、x86_64、ARM、ARMv6、ARMv7、aarch64、ppc64、ppc64le 等,并且同时提供 glibc 和 musl libc 两种版本。
Void Linux 的主要特点包括:
- 滚动发布模式:无需系统升级,系统始终保持最新状态
- 快速、轻量级:启动速度快,资源占用少
- 独特的包管理系统:XBPS (The X Binary Package System)
- 默认使用 runit 作为 init 系统,而不是 systemd
- 支持 glibc 和 musl libc 两种 C 库实现
Void Linux 适合那些寻求简单、高效、稳定操作系统的用户,特别是开发者和系统管理员。
2. Void Linux 安装
2.1 准备工作
在开始安装 Void Linux 之前,你需要准备以下内容:
一台符合最低系统要求的计算机:
- x86_64 架构处理器
- 至少 1GB RAM(推荐 2GB 或更多)
- 至少 10GB 的磁盘空间(推荐 20GB 或更多)
- 可引导的 USB 存储设备或 DVD
下载 Void Linux 安装镜像:
- 访问 Void Linux 官方网站:https://voidlinux.org/
- 下载页面:https://voidlinux.org/download/
- 选择适合你系统架构的 ISO 镜像文件
创建可引导的安装介质:
- Linux 系统下可以使用
dd
命令:dd if=void-live-*.iso of=/dev/sdX bs=1M status=progress
其中
/dev/sdX
是你的 USB 设备,请确保使用正确的设备名
- Linux 系统下可以使用
2.2 安装过程
启动安装程序:
- 将创建好的安装介质插入计算机并重启
- 在 BIOS/UEFI 设置中选择从 USB/DVD 启动
- 从启动菜单中选择 “Live” 环境启动
连接网络:
如果使用有线网络,系统通常会自动连接
如果使用无线网络,可以使用以下命令: “`bash
查看无线网卡名称
ip a
# 启动无线网卡 ip link set wlan0 up
# 连接到无线网络 wifi-menu “`
分区磁盘:
- 使用
fdisk
或cfdisk
进行分区:cfdisk /dev/sda
- 推荐的分区方案:
/boot
分区:至少 200MBswap
分区:建议大小为 RAM 的 1-2 倍/
根分区:剩余所有空间
- 使用
格式化分区: “`bash
格式化 boot 分区为 ext2/ext3/ext4
mkfs.ext4 /dev/sda1
# 格式化根分区 mkfs.ext4 /dev/sda3
# 设置 swap 分区 mkswap /dev/sda2 swapon /dev/sda2
5. 挂载分区: ```bash # 挂载根分区 mount /dev/sda3 /mnt # 创建 boot 目录并挂载 mkdir /mnt/boot mount /dev/sda1 /mnt/boot
安装基础系统: “`bash
安装基础系统
xbps-install -S -R https://repo-default.voidlinux.org/current -r /mnt base-system
# 安装 Linux 内核 xbps-install -r /mnt linux
# 安装引导程序 xbps-install -r /mnt grub
7. 配置系统: ```bash # 生成 fstab 文件 chroot /mnt "xbps-reconfigure -f linux5.15; grub-install /dev/sda; grub-mkconfig -o /boot/grub/grub.cfg" # 进入 chroot 环境 chroot /mnt # 设置 root 密码 passwd # 设置主机名 echo voidlinux > /etc/hostname # 配置时区 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 配置语言环境 echo "LANG=en_US.UTF-8" > /etc/locale.conf echo "en_US.UTF-8 UTF-8" >> /etc/default/libc-locales xbps-reconfigure -f glibc-locales # 退出 chroot 环境 exit
完成安装: “`bash
卸载分区
umount /mnt/boot umount /mnt
# 重启系统 reboot
## 3. 系统配置 ### 3.1 用户和权限管理 1. 创建新用户: ```bash # 添加新用户 useradd -m -G users,wheel,audio,video,storage -s /bin/bash username # 设置用户密码 passwd username
配置 sudo: “`bash
安装 sudo
xbps-install -S sudo
# 配置 sudoers 文件 visudo
在打开的文件中,取消以下行的注释:
%wheel ALL=(ALL) ALL
### 3.2 网络配置 1. 有线网络配置: ```bash # 启用 DHCP ln -s /etc/sv/dhcpcd /var/service/ # 手动配置静态 IP # 编辑 /etc/network/interfaces 文件 cat > /etc/network/interfaces << EOF auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 EOF
无线网络配置: “`bash
安装必要的软件包
xbps-install -S wpa_supplicant iw
# 配置 wpa_supplicant wpa_passphrase “SSID” “password” > /etc/wpa_supplicant/wpa_supplicant.conf
# 启用 wpa_supplicant 服务 ln -s /etc/sv/wpa_supplicant /var/service/
# 启用 DHCP ln -s /etc/sv/dhcpcd /var/service/
### 3.3 图形界面安装 1. 安装 Xorg: ```bash xbps-install -S xorg
- 安装显示管理器(如 LightDM): “`bash xbps-install -S lightdm lightdm-gtk3-greeter
# 启用 LightDM 服务 ln -s /etc/sv/lightdm /var/service/
3. 安装桌面环境(如 XFCE): ```bash xbps-install -S xfce4 # 安装主题和其他实用工具 xbps-install -S xfce4-terminal xfce4-settings xfce4-panel thunar gvfs
4. 软件包管理
4.1 XBPS 基础命令
Void Linux 使用 XBPS (The X Binary Package System) 作为其包管理系统。以下是一些常用的 XBPS 命令:
同步软件包数据库:
xbps-install -S
搜索软件包:
xbps-query -Rs package_name
安装软件包:
xbps-install -S package_name
删除软件包:
xbps-remove -R package_name
更新系统:
xbps-install -Su
列出已安装的软件包:
xbps-query -l
查找文件属于哪个软件包:
xbps-query -o /path/to/file
4.2 源码编译安装
除了使用二进制包外,你还可以从源码编译安装软件:
安装编译工具:
xbps-install -S base-devel
下载源码:
git clone https://github.com/void-linux/void-packages.git cd void-packages
配置编译环境:
./xbps-src binary-bootstrap
编译软件包:
./xbps-src pkg package_name
安装编译好的软件包:
xi package_name
5. 系统管理
5.1 服务管理
Void Linux 使用 runit 作为 init 系统,而不是 systemd。服务管理的方式也有所不同:
查看已启用的服务:
ls /var/service/
启用服务:
ln -s /etc/sv/service_name /var/service/
禁用服务:
rm /var/service/service_name
查看服务状态:
sv status service_name
启动、停止、重启服务:
sv up service_name # 启动服务 sv down service_name # 停止服务 sv restart service_name # 重启服务
5.2 日志管理
Void Linux 使用 svlogd 进行日志管理:
查看服务日志:
tail -f /var/log/service_name/current
配置日志轮转: 编辑
/etc/sv/service_name/log/run
文件,设置日志大小和保留数量:#!/bin/sh exec logger -t service_name -p daemon.info
5.3 系统监控
查看系统资源使用情况: “`bash
安装 htop
xbps-install -S htop
# 运行 htop htop
2. 查看磁盘使用情况: ```bash df -h
查看内存使用情况:
free -h
查看系统启动时间:
uptime -p
6. Shell 脚本编程
6.1 Bash 基础
- 创建简单的 Shell 脚本: “`bash #!/bin/bash
# 这是一个简单的 Shell 脚本示例 echo “Hello, Void Linux!”
# 定义变量 NAME=“Void Linux”
# 使用变量 echo “Welcome to $NAME”
# 获取用户输入 read -p “Enter your name: ” USER_NAME echo “Hello, $USER_NAME!”
2. 条件语句: ```bash #!/bin/bash read -p "Enter your age: " AGE if [ $AGE -lt 18 ]; then echo "You are a minor." elif [ $AGE -ge 18 ] && [ $AGE -lt 65 ]; then echo "You are an adult." else echo "You are a senior citizen." fi
- 循环语句: “`bash #!/bin/bash
# for 循环 echo “Counting with for loop:” for i in {1..5}; do
echo "Count: $i"
done
# while 循环 echo “Counting with while loop:” COUNT=1 while [ $COUNT -le 5 ]; do
echo "Count: $COUNT" COUNT=$((COUNT + 1))
done
### 6.2 实用脚本示例 1. 系统信息脚本: ```bash #!/bin/bash echo "===== System Information =====" echo "Hostname: $(hostname)" echo "OS: $(cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '"')" echo "Kernel: $(uname -r)" echo "Uptime: $(uptime -p)" echo "" echo "===== CPU Information =====" echo "Model: $(cat /proc/cpuinfo | grep 'model name' | head -1 | cut -d: -f2 | xargs)" echo "Cores: $(nproc)" echo "" echo "===== Memory Information =====" free -h echo "" echo "===== Disk Information =====" df -h
- 备份脚本: “`bash #!/bin/bash
# 设置备份源目录和目标目录 SOURCE_DIR=”/home/user” BACKUPDIR=“/mnt/backups” DATE=$(date +%Y%m%d%H%M%S) BACKUPNAME=“backup${DATE}.tar.gz”
# 创建备份目录(如果不存在) mkdir -p $BACKUP_DIR
# 创建备份 echo “Creating backup of (SOURCE_DIR..." tar -czf )BACKUP_DIR/(BACKUP_NAME )SOURCE_DIR
# 检查备份是否成功 if [ $? -eq 0 ]; then
echo "Backup created successfully: $BACKUP_DIR/$BACKUP_NAME"
else
echo "Backup failed!" exit 1
fi
# 删除30天前的备份 echo “Cleaning up old backups…” find $BACKUPDIR -name “backup*.tar.gz” -mtime +30 -delete echo “Done.”
## 7. 系统编程 ### 7.1 C 语言编程 1. 安装开发工具: ```bash xbps-install -S gcc make libc-devel
- 编写简单的 C 程序: “`c // hello.c #include
int main() {
printf("Hello, Void Linux!n"); return 0;
}
3. 编译和运行: ```bash gcc -o hello hello.c ./hello
- 更复杂的 C 程序示例(文件操作): “`c // file_io.c #include
#include
int main() {
FILE *sourceFile, *targetFile; char ch; // 打开源文件 sourceFile = fopen("source.txt", "r"); if (sourceFile == NULL) { printf("Cannot open source file.n"); exit(1); } // 创建目标文件 targetFile = fopen("target.txt", "w"); if (targetFile == NULL) { printf("Cannot create target file.n"); fclose(sourceFile); exit(1); } // 复制文件内容 while ((ch = fgetc(sourceFile)) != EOF) { fputc(ch, targetFile); } printf("File copied successfully.n"); // 关闭文件 fclose(sourceFile); fclose(targetFile); return 0;
}
### 7.2 Python 编程 1. 安装 Python: ```bash xbps-install -S python3 python3-pip
编写简单的 Python 程序: “`python
hello.py
print(“Hello, Void Linux!”)
# 获取用户输入 name = input(“Enter your name: “) print(f”Hello, {name}!“)
3. 运行 Python 程序: ```bash python3 hello.py
更复杂的 Python 程序示例(文件操作): “`python
file_copy.py
import sys
def copy_file(source, target):
try: with open(source, 'r') as src_file: content = src_file.read() with open(target, 'w') as tgt_file: tgt_file.write(content) print(f"File '{source}' copied to '{target}' successfully.") except FileNotFoundError: print(f"Error: Source file '{source}' not found.") except Exception as e: print(f"An error occurred: {str(e)}")
if name == “main”:
if len(sys.argv) != 3: print("Usage: python file_copy.py <source_file> <target_file>") sys.exit(1) source_file = sys.argv[1] target_file = sys.argv[2] copy_file(source_file, target_file)
### 7.3 使用 Makefile 管理项目 1. 创建项目目录结构: ```bash mkdir myproject cd myproject mkdir src include
- 编写头文件: “`c // include/mylib.h #ifndef MYLIB_H #define MYLIB_H
void print_message(const char *message); int add_numbers(int a, int b);
#endif
3. 编写源文件: ```c // src/mylib.c #include <stdio.h> #include "mylib.h" void print_message(const char *message) { printf("Message: %sn", message); } int add_numbers(int a, int b) { return a + b; }
- 编写主程序: “`c // src/main.c #include
#include “mylib.h”
int main() {
print_message("Hello from mylib!"); int result = add_numbers(5, 7); printf("5 + 7 = %dn", result); return 0;
}
5. 创建 Makefile: ```makefile # Makefile CC = gcc CFLAGS = -Wall -I./include SRCDIR = src OBJDIR = obj SOURCES = $(wildcard $(SRCDIR)/*.c) OBJECTS = $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o) TARGET = myprogram .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJECTS) $(CC) $(OBJECTS) -o $(TARGET) $(OBJDIR)/%.o: $(SRCDIR)/%.c @mkdir -p $(OBJDIR) $(CC) $(CFLAGS) -c $< -o $@ clean: rm -rf $(OBJDIR) $(TARGET)
- 编译和运行:
make ./myprogram
8. 网络配置与管理
8.1 基本网络配置
查看网络接口:
ip a
配置静态 IP 地址: “`bash
创建网络配置文件
cat > /etc/network/interfaces << EOF auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 EOF
# 重启网络服务 sv down dhcpcd sv up network
3. 配置 DNS: ```bash # 编辑 resolv.conf 文件 cat > /etc/resolv.conf << EOF nameserver 8.8.8.8 nameserver 8.8.4.4 EOF
8.2 防火墙配置
安装防火墙工具:
xbps-install -S iptables
创建基本防火墙规则: “`bash
创建防火墙规则脚本
cat > /etc/firewall.sh << EOF #!/bin/bash
# 清除现有规则 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X
# 设置默认策略 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
# 允许本地回环 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
# 允许已建立的连接 iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
# 允许 SSH iptables -A INPUT -p tcp –dport 22 -j ACCEPT
# 允许 HTTP 和 HTTPS iptables -A INPUT -p tcp –dport 80 -j ACCEPT iptables -A INPUT -p tcp –dport 443 -j ACCEPT
# 保存规则 iptables-save > /etc/iptables/rules.v4 EOF
# 使脚本可执行 chmod +x /etc/firewall.sh
# 运行脚本 /etc/firewall.sh
3. 创建服务以在启动时加载防火墙规则: ```bash # 创建服务目录 mkdir -p /etc/sv/iptables # 创建运行脚本 cat > /etc/sv/iptables/run << EOF #!/bin/sh iptables-restore < /etc/iptables/rules.v4 exec sv once iptables EOF # 使脚本可执行 chmod +x /etc/sv/iptables/run # 启用服务 ln -s /etc/sv/iptables /var/service/
8.3 网络服务配置
安装和配置 SSH 服务器: “`bash
安装 OpenSSH 服务器
xbps-install -S openssh
# 启用 SSH 服务 ln -s /etc/sv/sshd /var/service/
# 配置 SSH 服务器 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak cat > /etc/ssh/sshd_config << EOF Port 22 Protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ed25519key PermitRootLogin no PasswordAuthentication yes ChallengeResponseAuthentication no UsePAM yes X11Forwarding yes PrintMotd no AcceptEnv LANG LC* Subsystem sftp /usr/libexec/sftp-server EOF
# 重启 SSH 服务 sv restart sshd
2. 安装和配置 Web 服务器(Nginx): ```bash # 安装 Nginx xbps-install -S nginx # 启用 Nginx 服务 ln -s /etc/sv/nginx /var/service/ # 创建网站目录 mkdir -p /var/www/html # 创建测试页面 echo "<h1>Welcome to Void Linux Web Server</h1>" > /var/www/html/index.html # 配置 Nginx cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak cat > /etc/nginx/nginx.conf << EOF user nginx; worker_processes auto; error_log /var/log/nginx/error.log; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; } } } EOF # 重启 Nginx 服务 sv restart nginx
9. 安全设置
9.1 系统安全加固
更新系统:
xbps-install -Su
禁用 root 登录: “`bash
创建普通用户
useradd -m -G users,wheel -s /bin/bash username passwd username
# 禁用 root 登录 passwd -l root
3. 配置 sudo: ```bash # 安装 sudo xbps-install -S sudo # 配置 sudoers visudo
在打开的文件中,取消以下行的注释:
%wheel ALL=(ALL) ALL
配置 Fail2ban: “`bash
安装 Fail2ban
xbps-install -S fail2ban
# 启用 Fail2ban 服务 ln -s /etc/sv/fail2ban /var/service/
# 配置 SSH 保护 cat > /etc/fail2ban/jail.local << EOF [sshd] enabled = true port = 22 filter = sshd logpath = /var/log/sshd.log maxretry = 3 bantime = 3600 EOF
# 重启 Fail2ban 服务 sv restart fail2ban
### 9.2 文件系统安全 1. 设置文件权限: ```bash # 设置重要目录权限 chmod 700 /root chmod 750 /home chmod 755 /var/www # 设置敏感文件权限 chmod 600 /etc/passwd- chmod 600 /etc/shadow- chmod 600 /etc/group- chmod 600 /etc/gshadow-
查找没有所有者的文件:
find / -nouser -o -nogroup
查找 SUID/SGID 文件:
find / -type f ( -perm -4000 -o -perm -2000 ) -ls
9.3 系统审计
安装审计工具:
xbps-install -S audit
配置审计规则: “`bash
创建审计规则
cat > /etc/audit/rules.d/audit.rules << EOF
删除现有规则
-D
# 设置缓冲区大小 -b 8192
# 监控文件访问 -w /etc/passwd -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/group -p wa -k identity -w /etc/sudoers -p wa -k identity
# 监控系统调用 -a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -k perm_mod -a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -k perm_mod
# 使规则永久 -e 1 EOF
# 启用审计服务 ln -s /etc/sv/auditd /var/service/
3. 查看审计日志: ```bash ausearch -k identity ausearch -k perm_mod
10. 性能优化
10.1 系统性能监控
安装监控工具:
xbps-install -S htop iotop sysstat
使用 htop 监控系统资源:
htop
使用 iotop 监控磁盘 I/O:
iotop
配置 sysstat: “`bash
启用 sysstat 收集
sed -i ’s/ENABLED=“false”/ENABLED=“true”/’ /etc/default/sysstat
# 启用 sysstat 服务 ln -s /etc/sv/sysstat /var/service/
# 查看 CPU 使用统计 sar -u
# 查看内存使用统计 sar -r
# 查看磁盘 I/O 统计 sar -b
### 10.2 内核参数优化 1. 编辑 sysctl 配置: ```bash # 创建 sysctl 配置文件 cat > /etc/sysctl.d/99-sysctl.conf << EOF # 网络参数优化 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_congestion_control = bbr net.ipv4.tcp_fastopen = 3 net.core.netdev_max_backlog = 5000 # 文件系统优化 vm.swappiness = 10 vm.vfs_cache_pressure = 50 vm.dirty_ratio = 30 vm.dirty_background_ratio = 10 # 安全参数 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.tcp_syncookies = 1 EOF # 应用 sysctl 配置 sysctl -p /etc/sysctl.d/99-sysctl.conf
10.3 文件系统优化
使用 noatime 挂载选项: “`bash
编辑 /etc/fstab
cp /etc/fstab /etc/fstab.bak sed -i ’s/defaults/defaults,noatime/’ /etc/fstab
# 重新挂载所有文件系统 mount -o remount /
2. 配置 I/O 调度器: ```bash # 创建 udev 规则 cat > /etc/udev/rules.d/60-ioscheduler.rules << EOF ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline" ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq" EOF # 重新加载 udev 规则 udevadm control --reload-rules udevadm trigger
11. 常见问题解决
11.1 系统启动问题
修复 GRUB 引导: “`bash
从 Live USB 启动并挂载根分区
mount /dev/sda2 /mnt mount /dev/sda1 /mnt/boot
# 进入 chroot 环境 chroot /mnt
# 重新安装 GRUB grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg
# 退出 chroot 并重启 exit umount /mnt/boot umount /mnt reboot
2. 检查和修复文件系统: ```bash # 检查文件系统 fsck /dev/sda2 # 修复文件系统(如果需要) fsck -y /dev/sda2
11.2 软件包管理问题
清理 XBPS 缓存: “`bash
清理已下载的软件包
xbps-remove -O
# 清理孤立软件包 xbps-remove -o
2. 修复损坏的软件包数据库: ```bash # 删除损坏的数据库 rm /var/db/xbps/*.plist # 重新同步软件包数据库 xbps-install -S
11.3 网络连接问题
重置网络配置: “`bash
停止网络服务
sv down network
# 重置网络接口 ip link set eth0 down ip addr flush dev eth0 ip link set eth0 up
# 重新启动网络服务 sv up network
2. 检查网络连接: ```bash # 检查网络接口状态 ip a # 检查路由表 ip r # 测试 DNS 解析 nslookup example.com # 测试网络连接 ping -c 4 example.com
12. 进阶主题
12.1 容器化技术
安装 Docker: “`bash
安装 Docker
xbps-install -S docker
# 启用 Docker 服务 ln -s /etc/sv/docker /var/service/
# 将用户添加到 docker 组 usermod -aG docker username
# 重新登录或使用以下命令使更改生效 newgrp docker
2. 使用 Docker 运行容器: ```bash # 拉取 Ubuntu 镜像 docker pull ubuntu:latest # 运行 Ubuntu 容器 docker run -it ubuntu:latest /bin/bash # 在容器中安装软件 apt update apt install -y htop # 退出容器 exit
12.2 虚拟化技术
安装 KVM 和相关工具: “`bash
安装虚拟化软件包
xbps-install -S qemu virt-manager libvirt
# 启用 libvirt 服务 ln -s /etc/sv/libvirtd /var/service/
# 将用户添加到 libvirt 组 usermod -aG libvirt username
# 重新登录或使用以下命令使更改生效 newgrp libvirt
2. 创建虚拟机: ```bash # 使用 virt-manager 创建虚拟机(图形界面) virt-manager # 使用 virt-install 创建虚拟机(命令行) virt-install --name vm1 --memory 2048 --vcpus 2 --disk size=20 --cdrom /path/to/iso/file.iso --os-variant ubuntu20.04
12.3 系统自动化
安装 Ansible:
# 安装 Ansible xbps-install -S ansible
创建简单的 Ansible Playbook: “`yaml
site.yml
- name: Configure Void Linux server hosts: localhost become: yes
tasks:
- name: Update system xbps: name: "*" state: latest update_cache: yes - name: Install essential packages xbps: name: - htop - vim - git - python3 state: present - name: Create user user: name: ansible shell: /bin/bash groups: users,wheel append: yes - name: Start and enable services service: name: "{{ item }}" enabled: yes state: started with_items: - sshd - docker
”`
运行 Ansible Playbook:
ansible-playbook site.yml
通过本教程,你已经从零开始学习了 Void Linux 的安装、配置、系统管理和编程等方面的知识。Void Linux 是一个强大而灵活的操作系统,适合开发者和系统管理员使用。随着你的深入学习和实践,你将能够更好地掌握这个优秀的开源操作系统,并成为一名真正的 Linux 专家。