🍣

Vagrant上のArch LinuxにGUIデスクトップを導入してみた

に公開

経緯

ローカルDNSやらなんやらを構築してみた という記事で使うようの端末用意につまづきました。
そのため、メモしておきます

構築環境

  • ArchLinux
  • Vagrant 2.4.9
  • NVIDIA RTX 3060

手順

  1. Vagrantfileを作成する
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  # メインPC(ArchLinux、プライベートネットワーク+デスクトップ対応)
  config.vm.define "mainpc" do |mainpc|
    mainpc.vm.box = "terrywang/archlinux"
    mainpc.vm.hostname = "mainpc"

    # 同一セグメントで固定IP
    mainpc.vm.network :private_network, ip: "192.168.56.10", virtualbox__intnet: "intnet"
    mainpc.vm.network :forwarded_port, guest: 3389, host: 33389
    mainpc.rdp.width = 1792
    mainpc.rdp.height = 1008

    mainpc.vm.provider "virtualbox" do |vb|
      vb.name = "MainPC"
      vb.cpus = 4
      vb.memory = "4096"
      vb.gui = true
      # VirtualBoxの表示/3D/VRAM設定は customize で行う
      vb.customize ["modifyvm", :id, "--graphicscontroller", "vmsvga"]
      vb.customize ["modifyvm", :id, "--accelerate3d", "on"]
      vb.customize ["modifyvm", :id, "--ioapic", "on"]
      vb.customize ["modifyvm", :id, "--vram", "128"]
      vb.customize ["modifyvm", :id, "--clipboard", "bidirectional"]
    end

    mainpc.vm.provision "shell", inline: <<-SHELL
    # エラー時に停止する用の、セーフティコマンド
    set -eux

    # 時刻同期
    timedatectl set-ntp true

    # キー更新
    pacman -Syy
    SHELL
  end
end

  1. 起動する
vagrant up
  1. sshに接続
vagrant ssh
  1. エラー回避
    そのまま、デスクトップのインストールを始めるとエラーが出ます。
    なので、それを回避するためGPGキーなどを更新していきます。

<コマンド> # \[入力値1] [入力値2] ...で、まとめて書いていきます

#言語設定
sudo localectl set-locale LANG=ja_JP.UTF-8
sudo locale-gen

#日本語フォント
sudo pacman -S otf-ipaexfont # [y]

#鍵更新
sudo pacman -Sy --needed archlinux-keyring # [y]

sudo pacman -Syu

NvidiaのGPUを使っている場合は、下のコマンドを打ちましょう

#nvidia関連のエラー
sudo pacman -Rdd linux-firmware # [y]
sudo pacman -Syu linux-firmware # [y]
  1. Xorgインストール
    多分エラーが解消されたと思うので、インストールしていきます
# 色々インストール
sudo pacman -S xorg-server xorg-apps xorg-xinit # [Enter] [y]
sudo pacman -S xfce4 # [Enter] [y]
sudo pacman -S xfce4-goodies # [Enter] [y]

sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings # [y]

# LightDMの有効化
sudo systemctl disable --now gdm sddm 2>/dev/null || true
sudo systemctl unmask lightdm 2>/dev/null || true
sudo systemctl enable lightdm
sudo systemctl set-default graphical.target

# 再起動
sudo reboot
  1. LightDMが起動するか確認
    vagrant upしたときに、立ち上がるVirtualBoxの画面に、下のようなログインUIが出ればOK!
    alt text

おまけ(yayを使えるようにする)

↓こんな風にエラーが出るはず

yay: error while loading shared libraries: libalpm.so.14: cannot open shared object file: No such file or directory

治すには、yayを再インストールすればOK!

# yayの再インストール
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si

まとめ?

今回は、簡単にメモ程度にまとめました。
VagrantにArchLinuxのBoxを指定して、デスクトップ構築している記事を見つけられなかったので書きました!

誰かの役に立てればなと思います〜
不備があった場合、遠慮なくコメントお願いします🙏

Discussion