从零搭建Manjaro 24.0开发与办公环境:虚拟机部署、安全配置及一站式软件指南

张开发
2026/4/17 13:19:24 15 分钟阅读

分享文章

从零搭建Manjaro 24.0开发与办公环境:虚拟机部署、安全配置及一站式软件指南
1. 虚拟机环境准备与Manjaro安装最近在VMware Workstation Pro上折腾Manjaro 24.0发现这个基于Arch的发行版对开发者特别友好。先说说我的硬件配置i7-12700H处理器32GB内存分配了8核CPU和16GB内存给虚拟机500GB NVMe固态硬盘分了120GB给Manjaro。实测这个配置跑开发环境非常流畅编译大型项目时也不会卡顿。1.1 VMware Workstation Pro配置要点装VMware时有个坑要注意现在VMware被博通收购后下载需要注册账号并登录。我试了17.5和17.6两个版本推荐用17.5更稳定。安装时记得勾选增强型键盘驱动程序这个对Linux输入法支持很重要。另外建议开启虚拟化引擎的所有选项特别是虚拟化IOMMU和虚拟化CPU性能计数器这对后续开发工具的性能监控很有帮助。创建虚拟机时关键设置固件类型选UEFI不要选传统BIOS虚拟磁盘类型选SCSINVMe模式可能会有问题图形控制器选自动检测不要强制指定声卡和打印机这些用不到的设备可以直接移除1.2 Manjaro镜像选择技巧官方提供了GNOME、KDE和XFCE三种桌面环境我选了GNOME因为对高分屏支持最好我笔记本是2.5K屏Wayland原生支持更流畅扩展生态丰富比如有类似Mac的Dock下载时注意校验SHA256我就遇到过镜像损坏导致安装失败的情况。推荐用aria2多线程下载aria2c -x16 -s16 https://download.manjaro.org/gnome/24.0.8/manjaro-gnome-24.0.8-240908-linux69.iso1.3 安装过程中的避坑指南安装界面语言建议选英文中文可能会有乱码。分区方案我推荐/boot 1GBEFI分区/ 50GBbtrfs文件系统支持快照/home 剩余空间ext4更稳定swap分区可以不要用swapfile代替安装完成后别急着重启先点开安装摘要检查引导加载器位置是否正确一般是/dev/sda时区是否设为Asia/Shanghai键盘布局是不是English(US)注意如果卡在正在安装引导加载器阶段可能是EFI分区太小建议重装时给/boot分配1GB空间2. 系统初始化与安全加固刚装好的系统就像毛坯房得先做好基础装修。我通常会花半小时完成这些基础配置后面用起来才顺手。2.1 SSH远程管理配置Manjaro默认没开SSH但开发时经常需要从主机连接。配置步骤sudo pacman -S openssh sudo systemctl enable --now sshd sudo ufw allow 22/tcp遇到连接超时的问题检查这两点VMware的虚拟网络编辑器里NAT设置是否允许端口转发主机防火墙是否放行了22端口推荐用VS Code的Remote-SSH插件管理比命令行方便多了。配置文件~/.ssh/config可以这样写Host manjaro-vm HostName 192.168.xxx.xxx User yourname IdentityFile ~/.ssh/vm_key2.2 软件源加速方案默认源在国外慢得要死换成国内镜像速度直接起飞sudo pacman-mirrors -c China -m rank然后更新系统sudo pacman -Syyu装个yay方便后续安装AUR包sudo pacman -S base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si2.3 防火墙最佳实践UFW简单易用基本配置sudo pacman -S ufw sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 22/tcp # SSH sudo ufw allow 5900/tcp # 后续可能用VNC sudo ufw enable开发常用端口建议提前放行3306 MySQL5432 PostgreSQL6379 Redis8080/3000 开发服务器3. 开发环境全家桶安装作为全栈开发者我的环境配置可能比大多数人复杂但这份清单应该能覆盖大部分需求。3.1 Java生态配置安装JDK 17现在8已经太老了sudo pacman -S jdk-openjdk配置环境变量echo export JAVA_HOME/usr/lib/jvm/java-17-openjdk ~/.bashrc echo export PATH$PATH:$JAVA_HOME/bin ~/.bashrc开发工具链yay -S intellij-idea-ultimate-edition maven gradle3.2 Node.js多版本管理用nvm管理Node版本最方便curl -o- https://raw.gitmirror.com/nvm-sh/nvm/v0.39.7/install.sh | bash常用版本安装nvm install 18 nvm install 16 nvm use 18配置淘宝镜像npm config set registry https://registry.npmmirror.com yarn config set registry https://registry.npmmirror.com3.3 Python环境配置系统自带Python3但建议用pyenv管理curl https://pyenv.run | bash安装常用版本pyenv install 3.11.6 pyenv global 3.11.6配置pip镜像pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/4. 数据库服务部署开发离不开数据库这里介绍三种主流数据库的安装配置。4.1 MySQL 8.0安装用官方仓库安装最稳定sudo pacman -S mysql sudo mysqld --initialize --usermysql --basedir/usr --datadir/var/lib/mysql sudo systemctl enable --now mysqld安全加固sudo mysql_secure_installation配置远程访问仅开发环境CREATE USER dev% IDENTIFIED BY password; GRANT ALL PRIVILEGES ON *.* TO dev%; FLUSH PRIVILEGES;4.2 PostgreSQL 15配置安装sudo pacman -S postgresql sudo -iu postgres initdb -D /var/lib/postgres/data sudo systemctl enable --now postgresql创建开发用户sudo -iu postgres createuser -P devuser sudo -iu postgres createdb -O devuser devdb4.3 Redis调优指南安装sudo pacman -S redis sudo systemctl enable --now redis配置优化sudo vim /etc/redis/redis.conf修改以下参数maxmemory 2gb maxmemory-policy allkeys-lru save 5. 高效办公环境打造Linux桌面环境现在其实已经很好用了关键是要装对软件。5.1 文档处理方案WPS Office兼容性最好yay -S wps-office-cn wps-office-mui-zh-cn字体问题解决方案sudo pacman -S ttf-wps-fontsPDF阅读推荐Okularsudo pacman -S okular5.2 输入法配置Fcitx5现在比IBus好用sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-configtool环境变量配置echo export GTK_IM_MODULEfcitx ~/.bashrc echo export QT_IM_MODULEfcitx ~/.bashrc echo export XMODIFIERSimfcitx ~/.bashrc5.3 效率工具推荐文件搜索yay -S fsearch截图工具sudo pacman -S flameshot剪贴板管理yay -S copyq待办事项sudo pacman -S planner6. 影音娱乐解决方案谁说Linux不能娱乐这些软件体验很棒。6.1 视频播放SMPlayer MPV后端组合sudo pacman -S smplayer mpv解码器安装sudo pacman -S ffmpeg gst-libav gst-plugins-good6.2 音乐客户端网易云音乐官方版yay -S netease-cloud-musicSpotify客户端yay -S spotify6.3 游戏体验Steam原生支持sudo pacman -S steamProton兼容层配置在Steam设置中启用Steam Play选择Proton Experimental版本安装游戏时自动下载所需组件7. 开发工具链配置工欲善其事必先利其器。这些工具让开发效率翻倍。7.1 IDE全家福VS Code配置yay -S visual-studio-code-bin常用插件Remote DevelopmentDockerPythonESLintGitLensIntelliJ IDEA终极版yay -S intellij-idea-ultimate-edition7.2 数据库工具DBeaver社区版sudo pacman -S dbeaverRedis桌面管理yay -S redis-desktop-manager7.3 版本控制Git配置优化git config --global user.name Your Name git config --global user.email emailexample.com git config --global core.editor vim git config --global pull.rebase true图形化工具sudo pacman -S gitkraken8. 系统优化与维护用久了系统会变慢这些技巧让Manjaro保持流畅。8.1 定期维护命令清理旧内核sudo pacman -Rns $(pacman -Qdtq)清理缓存sudo pacman -Sc yay -Sc8.2 性能调优启用TRIM对SSD重要sudo systemctl enable fstrim.timer调整swappinessecho vm.swappiness10 | sudo tee -a /etc/sysctl.d/99-sysctl.conf8.3 Timeshift系统备份安装配置yay -S timeshift推荐设置备份类型BTRFS如果根分区是btrfs计划每周一次保留3个快照排除/home目录单独备份9. 硬件外设支持让Manjaro完美支持各种外设。9.1 打印机配置CUPS打印系统sudo pacman -S cups sudo systemctl enable --now cups访问 http://localhost:631 进行配置9.2 蓝牙设备安装蓝牙支持sudo pacman -S bluez bluez-utils sudo systemctl enable --now bluetooth常见问题排查bluetoothctl power on agent on scan on9.3 多显示器配置使用arandr管理布局sudo pacman -S arandrWayland下的缩放设置gsettings set org.gnome.desktop.interface scaling-factor 210. 虚拟化进阶技巧在虚拟机里跑虚拟机这些技巧帮你搞定。10.1 嵌套虚拟化启用Intel VT-x/AMD-V嵌套vim /etc/modprobe.d/kvm.conf添加options kvm_intel nested1检查是否启用cat /sys/module/kvm_intel/parameters/nested10.2 Docker集成安装Dockersudo pacman -S docker docker-compose sudo systemctl enable --now docker sudo usermod -aG docker $USER配置镜像加速sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://registry.docker-cn.com] } EOF sudo systemctl restart docker11. 故障排查指南遇到问题别慌这些命令帮你快速定位。11.1 日志查看技巧查看系统日志journalctl -xe查看启动失败服务systemctl --failed11.2 网络问题排查检查连接ping -c4 google.com路由追踪traceroute google.com端口检测nc -zv localhost 2211.3 性能瓶颈分析实时监控htopIO性能iotop网络流量nethogs12. 安全加固进阶基础安全配置做完后这些措施让系统更安全。12.1 SSH加固禁用密码登录sudo vim /etc/ssh/sshd_config修改PasswordAuthentication no ChallengeResponseAuthentication no更改默认端口Port 222212.2 自动更新配置启用自动安全更新sudo pacman -S unattended-upgrades sudo systemctl enable --now unattended-upgrades配置更新策略sudo vim /etc/pacman.d/unattended-upgrades12.3 入侵检测安装配置AIDEsudo pacman -S aide sudo aide --init sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz定期检查sudo aide --check13. 备份与恢复策略系统崩了不怕完善的备份方案是关键。13.1 文件级备份使用rsync增量备份rsync -avz --delete /home/user/ /mnt/backup/home/加入cron定时任务crontab -e添加0 3 * * * rsync -avz --delete /home/user/ /mnt/backup/home/13.2 系统镜像备份使用dd命令sudo dd if/dev/nvme0n1 | gzip /mnt/backup/manjaro.img.gz恢复命令gunzip -c /mnt/backup/manjaro.img.gz | sudo dd of/dev/nvme0n113.3 云备份方案Rclone配置yay -S rclone rclone config同步命令rclone sync /home/user mydrive:backup -P14. 桌面美化与个性化让Manjaro既好用又好看。14.1 GNOME扩展推荐必备扩展Dash to DockArc MenuClipboard IndicatorGSConnect手机互联安装方法sudo pacman -S gnome-shell-extensions14.2 主题与图标安装流行主题yay -S orchis-theme-git tela-icon-theme应用主题gsettings set org.gnome.desktop.interface gtk-theme Orchis-Dark gsettings set org.gnome.desktop.interface icon-theme Tela14.3 字体优化安装更纱黑体yay -S ttf-sarasa-gothic字体渲染设置sudo vim /etc/fonts/conf.d/10-autohint.conf修改match targetfont edit nameautohint modeassign booltrue/bool /edit edit namehinting modeassign booltrue/bool /edit edit namehintstyle modeassign consthintslight/const /edit edit namergba modeassign constrgb/const /edit /match15. 移动开发环境配置在Manjaro上也能搞Android开发。15.1 Android Studio安装通过AUR安装yay -S android-studio配置SDK路径echo export ANDROID_HOME$HOME/Android/Sdk ~/.bashrc echo export PATH$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools ~/.bashrc15.2 模拟器加速安装KVM加速sudo pacman -S qemu libvirt sudo systemctl enable --now libvirtd sudo usermod -aG kvm,libvirt $(whoami)创建AVD时选择x86_64镜像并开启硬件加速。15.3 真机调试配置udev规则sudo vim /etc/udev/rules.d/51-android.rules添加SUBSYSTEMusb, ATTR{idVendor}18d1, MODE0666, GROUPplugdev重新加载规则sudo udevadm control --reload-rules16. 虚拟机与宿主机协同打破虚拟机和主机的隔阂。16.1 共享文件夹配置VMware Tools安装后sudo vmware-hgfsclient # 查看可用共享 sudo mkdir -p /mnt/hgfs sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other永久挂载echo .host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0 | sudo tee -a /etc/fstab16.2 剪贴板共享确保VMware Tools服务运行sudo systemctl enable --now vmware-tools如果遇到问题可以重启服务sudo systemctl restart vmware-tools16.3 拖放文件支持需要安装额外组件sudo pacman -S gtkmm3然后在VMware设置中启用拖放和复制粘贴功能。17. 性能监控与调优让Manjaro跑得更快更稳。17.1 系统监控工具安装套件sudo pacman -S gnome-system-monitor htop bashtop推荐使用bpytopyay -S bpytop17.2 内核参数优化调整文件描述符限制echo fs.file-max 2097152 | sudo tee -a /etc/sysctl.confTCP调优echo net.core.somaxconn 65535 | sudo tee -a /etc/sysctl.conf echo net.ipv4.tcp_max_syn_backlog 65535 | sudo tee -a /etc/sysctl.conf应用更改sudo sysctl -p17.3 内存管理启用zswapecho zswap.enabled1 | sudo tee -a /etc/modprobe.d/zswap.conf echo zswap.compressorlz4 | sudo tee -a /etc/modprobe.d/zswap.conf18. 终端环境增强开发者的主战场必须够强。18.1 Zsh终极配置安装oh-my-zshsudo pacman -S zsh sh -c $(curl -fsSL https://raw.gitmirror.com/ohmyzsh/ohmyzsh/master/tools/install.sh)推荐插件git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting主题推荐powerlevel10kyay -S zsh-theme-powerlevel10k echo source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ~/.zshrc18.2 TMUX配置基础配置sudo pacman -S tmux配置文件~/.tmux.confset -g mouse on set -g base-index 1 set -g pane-base-index 1 set-window-option -g mode-keys vi bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-selection18.3 终端复用技巧SSH持久连接vim ~/.ssh/config添加Host * ControlMaster auto ControlPath ~/.ssh/%r%h:%p ControlPersist 1h19. 容器化开发环境用Docker打造隔离的开发环境。19.1 开发容器配置示例DockerfileFROM archlinux:latest RUN pacman -Syu --noconfirm \ base-devel git vim \ python python-pip \ nodejs npm WORKDIR /workspace VOLUME [/workspace] CMD [/bin/bash]构建和运行docker build -t dev-env . docker run -it --rm -v $(pwd):/workspace dev-env19.2 VSCode远程容器安装Remote-Containers扩展后在项目目录创建.devcontainer/devcontainer.json配置开发环境重新打开项目时会自动构建容器示例配置{ image: mcr.microsoft.com/devcontainers/base:archlinux, features: { ghcr.io/devcontainers/features/node:1: { version: 18 } } }20. 持续集成与部署在Manjaro上搭建CI/CD流水线。20.1 Jenkins安装使用Docker部署docker run -d --name jenkins \ -p 8080:8080 -p 50000:50000 \ -v jenkins_home:/var/jenkins_home \ jenkins/jenkins:lts-jdk17获取初始密码docker logs jenkins20.2 GitLab Runner配置安装Runnersudo pacman -S gitlab-runner sudo systemctl enable --now gitlab-runner注册Runnersudo gitlab-runner register配置Docker执行器[[runners]] executor docker [runners.docker] image archlinux:latest privileged true volumes [/cache, /var/run/docker.sock:/var/run/docker.sock]21. 多语言开发环境配置各种编程语言的开发环境。21.1 Go语言环境安装最新Gosudo pacman -S go环境变量配置echo export GOPATH$HOME/go ~/.bashrc echo export PATH$PATH:$GOPATH/bin ~/.bashrc21.2 Rust工具链通过rustup安装curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh常用组件rustup component add rust-analyzer cargo install exa bat ripgrep21.3 C/C环境完整工具链sudo pacman -S gcc clang cmake gdb makeIDE支持yay -S ccls22. 网络服务搭建在虚拟机里搭建各种网络服务。22.1 Nginx配置安装sudo pacman -S nginx sudo systemctl enable --now nginx基础站点配置server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html; } }22.2 内网穿透方案使用frp实现yay -S frpc客户端配置frpc.ini[common] server_addr your_server_ip server_port 7000 [ssh] type tcp local_ip 127.0.0.1 local_port 22 remote_port 600022.3 VPN服务搭建使用WireGuardsudo pacman -S wireguard-tools生成密钥对wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey服务端配置[Interface] PrivateKey server_private_key Address 10.0.0.1/24 ListenPort 51820 PostUp iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] PublicKey client_public_key AllowedIPs 10.0.0.2/3223. 自动化运维脚本用脚本解放双手。23.1 系统更新脚本创建~/bin/update-system#!/bin/bash echo Starting system update... sudo pacman -Syu yay -Syu sudo paccache -rk1 echo Update completed!23.2 备份脚本示例数据库备份脚本#!/bin/bash DATE$(date %Y%m%d) BACKUP_DIR/mnt/backup # MySQL备份 mysqldump -u root -p --all-databases | gzip $BACKUP_DIR/mysql_$DATE.sql.gz # PostgreSQL备份 sudo -u postgres pg_dumpall | gzip $BACKUP_DIR/pgsql_$DATE.sql.gz # 保留最近7天备份 find $BACKUP_DIR -name *.sql.gz -mtime 7 -delete23.3 监控脚本资源监控脚本#!/bin/bash LOG_FILE/var/log/system-monitor.log echo $(date) $LOG_FILE echo CPU Load: $(uptime) $LOG_FILE echo Memory Usage: $(free -m) $LOG_FILE echo Disk Usage: $LOG_FILE df -h $LOG_FILE24. 虚拟化高级技巧解锁VMware的更多潜能。24.1 快照管理创建快照vmrun snapshot /path/to/vm.vmx Snapshot Name恢复快照vmrun revertToSnapshot /path/to/vm.vmx Snapshot Name24.2 虚拟机克隆完整克隆vmrun clone /path/to/original.vmx /path/to/clone.vmx full链接克隆vmrun clone /path/to/original.vmx /path/to/clone.vmx linked24.3 资源动态调整修改虚拟机配置memSize 8192 numvcpus 4热添加内存需要VMware Toolssudo vmware-toolbox-cmd stat mem set 819225. 性能基准测试量化系统性能表现。25.1 CPU性能测试使用sysbenchsudo pacman -S sysbench sysbench cpu --cpu-max-prime20000 run25.2 磁盘IO测试使用fiosudo pacman -S fio fio --namerandread --ioenginelibaio --iodepth64 --rwrandread --bs4k --direct1 --size1G --numjobs4 --runtime60 --group_reporting25.3 网络性能iperf3测试sudo pacman -S iperf3 # 服务端 iperf3 -s # 客户端 iperf3 -c server_ip26. 内核定制与优化深度玩转Manjaro内核。26.1 切换内核版本查看可用内核mhwd-kernel -l安装LTS内核sudo mhwd-kernel -i linux-lts26.2 自定义内核编译安装依赖sudo pacman -S base-devel bc rsync获取配置sudo cp /proc/config.gz ~/ gunzip ~/config.gz mv ~/config ~/.config编译安装make oldconfig make -j$(nproc) sudo make modules_install sudo make install26.3 内核参数调优调整进程调度echo kernel.sched_migration_cost_ns 5000000 | sudo tee -a /etc/sysctl.d/99-sysctl.conf文件系统缓存echo vm.vfs_cache_pressure 50 | sudo tee -a /etc/sysctl.d/99-sysctl.conf27. 系统恢复与救援当系统崩溃时的救命技巧。27.1 急救模式进入在GRUB界面选择Advanced options for Manjaro Linux然后选择恢复模式。27.2 修复引导使用Live USB启动后sudo mount /dev/nvme0n1p2 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot sudo arch-chroot /mnt grub-install /dev/nvme0n1 grub-mkconfig -o /boot/grub/grub.cfg27.3 密码重置在恢复模式下passwd username28. 硬件兼容性解决让Manjaro支持更多硬件。28.1 显卡驱动配置NVIDIA显卡sudo mhwd -a pci nonfree 0300AMD显卡sudo pacman -S mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon28.2 无线网卡支持常见驱动sudo pacman -S linux-firmwareRealtek网卡yay -S rtl88xxau-aircrack-dkms-git28.3 外置设备支持USB摄像头sudo pacman -S guvcview游戏手柄sudo pacman -S xboxdrv29. 虚拟网络配置复杂网络环境模拟。29.1 多网卡配置在VMware中添加多个网络适配器NAT连接外网Host-only主机通信自定义特定虚拟网络29.2 VLAN划分使用ip命令sudo ip link add link eth0 name eth0.100 type vlan id 100 sudo ip addr add 192.168.100.1/24 dev eth0.100 sudo ip link set dev eth0.100 up29.3 路由配置添加静态路由sudo ip route add 10.0.1.0/24 via 192.168.1.1 dev eth0持久化配置echo 10.0.1.0/24 via 192.168.1.1 dev eth0 | sudo tee -a /etc/netctl/static-routes30. 安全审计与监控全方位保护系统安全。30.1 漏洞扫描使用OpenVASyay -S openvas sudo gvm-setup30.2 日志分析安装ELK套件yay -S elasticsearch kibana logstash30.3 入侵检测配置Suricatasudo pacman -S suricata sudo suricata -c /etc/suricata/suricata.yaml -i eth031. 桌面虚拟化方案在Linux中运行Windows应用。31.1 Wine配置安装Winesudo pacman -S wine wine-mono wine-gecko配置winecfg31.2 虚拟机GPU穿透需要主机支持VT-d/AMD-Vi在主机BIOS中启用IOMMU配置VFIO驱动将GPU设备直通给虚拟机31.3 远程桌面访问使用RDPsudo pacman -S xrdp sudo systemctl enable --now xrdp32. 系统清理与维护保持系统整洁高效。32.1 清理旧包删除孤立包sudo pacman -Rns $(pacman -Qdtq)清理缓存sudo pacman -Sc32.2 大文件查找查找大于100M的文件find / -type f -size 100M -exec ls -lh {} \;32.3 日志轮转配置logrotatesudo vim /etc/logrotate.conf33. 时间同步配置确保系统时间准确。33.1 NTP服务启用systemd-timesyncdsudo systemctl enable --now systemd-timesyncd33.2 时区设置设置时区sudo timedatectl set-timezone Asia/Shanghai33.

更多文章