Apple Silicon mac上の仮想環境にArch Linuxをインストールして自宅サーバ構築

May 18, 2025

linuxArchLinuxVirtualBoxUTM

目次

はじめに

Apple Silicon mac上にお手頃なLinuxサーバーを立ててみます。チョイスしたディストリビューションは軽量さとローリングリリースで定評なArch Linux。

あくまでサーバとしての利用を想定しています。従ってデスクトップ環境は入れません。デスクトップもArch Linuxでやってみるなら全て揃っているManjaroでいいかなと。

サーバを稼働させる仮想環境はUTMを使用してみます。Intel Mac時代の仮想環境といえばVirtualbox, VMWare Fusion, Parallelsなどが大勢でしたが、Apple Silicon Macで最もHotな仮想環境はUTMだと思います。UTMは仮想環境でarm64版のOSを動かせるだけでなく、x64版のOSのエミュレートもできるすぐれものです。

UTMのインストール

以下のサイトからUTMをインストール

https://mac.getutm.app/
Securely run operating systems on your Mac

ここからUTMをダウンロードします。あとはインストーラーの指示に従いインストールします。

macのアプリをHomebrewで管理している場合は、

$ brew install --cask utm

これで準備完了です。

Arch Linuxインストーラーの入手

arm64版の最新のArch Linuxインストーラーの入手先は以下のページです。

https://release.archboot.net/aarch64/latest/iso/

ここにいくつかのisoファイルが置かれていますが、そのうち無印のものをダウンロードします。

archboot-2025.04.19-02.26-6.14.2-1-aarch64-ARCH-aarch64.iso <-これをダウンロード
archboot-2025.04.19-02.26-6.14.2-1-aarch64-ARCH-latest-aarch64.iso
archboot-2025.04.19-02.26-6.14.2-1-aarch64-ARCH-local-aarch64.iso

ダウンロードしたisoファイルに悪意の改変が加えられていないかを確認するため、署名の検証を行います。

https://release.archboot.com/aarch64/latest/b2sum.txt

このファイルをダウンロードし、対象のisoファイルのチェックサムを確認します。

b2sum.txt
...
BLAKE2b (iso/archboot-2025.04.19-02.26-6.14.2-1-aarch64-ARCH-aarch64.iso) = 8ce02c24c874152cf49d2ea420ab07dc26b77d6c147cec24371e6585c1a9fe72b28836ae2baaea1905f8527b351c46de16fd7c763995905b6c35c09c7d69832d 
...

ダウンロードしたisoファイルのチェックサムを確認するために(もし無かったら)b2sumをインストールし、

$ brew install b2sum

チェックサムを計算します。

$ b2sum archboot-2025.04.19-02.26-6.14.2-1-aarch64-ARCH-aarch64.iso
8ce02c24c874152cf49d2ea420ab07dc26b77d6c147cec24371e6585c1a9fe72b28836ae2baaea1905f8527b351c46de16fd7c763995905b6c35c09c7d69832d  archboot-2025.04.19-02.26-6.14.2-1-aarch64-ARCH-aarch64.iso

b2sumで計算した値とb2sum.txtに記載された値が一致していたらOKです。

Arch Linux仮想マシンの作成

UTMでArch Linuxが動作する仮想マシンを作成します。

UTMを起動し、「新規仮想マシンを作成」をクリック。

utm_setting_1.png

「仮想化」を選択。

utm_setting_2.png

「Linux」を選択。

utm_setting_3.png

起動isoイメージを指定。前節でダウンロードしたインストーラーisoファイルを指定。

utm_setting_4.png

仮想マシンのメモリを指定。使い方にもよりますが、2GB〜4GB程度でいいでしょう。

utm_setting_5.png

ストレージ量は必要な分だけ。メモリのスワップ分も考慮に入れて決めてください。64GBにしました。

utm_setting_6.png

共有ディレクトリは今回はパス。

utm_setting_7.png

名前をArchLinuxに変更しました。一通り設定できたので保存。

utm_setting_8.png

左側の仮想マシンリストの中から作成した仮想マシンを右クリックして「編集」

utm_setting_9.png

追加設定ができます。「保存」クリックで設定完了。

utm_setting_10.png

再生ボタンをクリックすると仮想マシンが起動します。

Arch Linuxのインストール

UTMのArchLinux仮想マシンの再生ボタンをクリックすると、EFI画面があらわれます。ここで「*Archboot - Arch Linux AA64」を選択。

arch_install_1.png

初回起動時のセットアップ画面が表示されます。ここでCTRL-Cをクリックするとbashに落ちます。bashから全てコマンドでセットアップを続けていくことも可能ですが、今回はインストーラーに付属しているsetupを使うことにします。CTRL-Cを入力せずに、ENTERを入力します。

arch_install_2.png

まずはLocaleの設定をします。ここでえはJapaneseが選択できないのでEnglishにしておきます。

arch_install_3.png

「Network Interface」の設定。そのまま進みます。

arch_install_4.png

以下同じような感じでセットアップが続きます。

以下のような構成でインストールしていくことにします。

メモリ      4GB
ストレージ: 64GB
/         24GB
SWAP       8GB
/Home     32GB

Network Profile Name: デフォルトのまま

Network Configuration: Do you want to use DHCP?
インストール時はDHCPを有効にしておいて、サーバとして運用する場合は後で固定IPに変更することにします。

Proxy Server: デフォルトのまま

Summary: 提示されたまま

Package Mirror: 「http://tw.mirror.archlinuxarm.org 」を選択し
http://jp.mirror.archlinuxarm.org 」は何故か稼働していませんでした。そこで次に近そうな台湾のサーバを指定しました。応答が悪いサーバでもエラーが出ずに以降のインストールが進んでしまうので、ミラーの選び方は最重要!ミラーの選び方によっては、インストールがうまく出来ず、なにコレってことになってしまうことも。

New Kernel Available …

Launcher Menu: 「1 Launch Archboot Setup」のまま

Setup Menu: 「1 Prepare Storage Device」を選択し

Prepare Storage Device: 「1 Quick Setup (erase the ENTIRE storage device)」を選択し

Storage Device: 「/dev/vda 64G」を選択し

Device Name Scheme: 「PARTUUID PARTUUID=」を選択し

EFI SYSTEM PARTITION (ESP): 「/boot SINGLEBOOT」を選択し

EFI SYSTEM PARTITION (ESP) in MiB: 512のまま

Swap in MiB: 8192を指定して
仮想マシンのメモリ量の2倍にしておきます。

Filesystem / and /home: 「ext4 Ext4」を選択し

Confirmation:

/ in MiB: 24576に変更し

Confirmation:

/dev/vda will COMPLETELY ERASED!

Setup Menu: 「2 Install Packages」を選択し

Summary:

Setup Menu: 「3 Configure System」を選択し

New root Password: パスワードを設定して

Retype root Password: パスワードを設定して

Text Editor: 「NEOVIM VIM variant for experts」を選択し

MKINITCPIO EARLY USERSPACE: 「BUSYBOX Small and Fast」を選択し
System Configurationで設定ファイルの中身を埋めていくことができますが、これは後で普通に起動した後でも可能なので、ここでは未設定のまま。

arch_install_5.png

User Management: 「1 Set Default Shell」を選択し

Default Shell: 「BASH Standard Base Shell」を選択し

User Management: 「2 Create User Account」を選択し

Create User Account: Enter Username: アカウント名を入力し

Enable <アカウント名> as Administrator and part of wheel

<アカウント名> Account: Enter a comment eg. your Full Name: フルネームを入力し

New user Password: パスワードを設定して

Retype user Password: パスワードを設定して

User Management: 「」を選択し

System Configuration: 「<Back Return to Main Menu」を選択し

Setup Menu: 「4 Install Bootloader」を選択し

AA64 UEFI Bootloader: 「GRUP_UEFI GRUP(2) for AA64 UEFI」を選択し、< OK >

「You must now review the GRUB(2) configuration file.」が出て< OK >を選択し、Enter押下後、grub.cfgの編集画面に切り替わるので、何も編集せずに終了。

Setup Menu: 「< Exit」を選択し、< OK >

Exit Menu:「3 Poweroff System」を選択し、< OK >

仮想マシンを停止。インストールは完了。

初期セットアップ

まずは仮想マシンからインストーラーisoイメージを抜きます。

UTMのメニューからArchLinux仮想マシンを右クリックして「編集」
ドライブ>USBドライブ>パス
インストーラーISOファイルが指定されているので「消去」をクリック

この仮想マシンをサーバーとして利用する場合は、ネットワークモードを変更しておきます。


ネットワーク>ネットワークモード>共有ネットワーク

ネットワーク>ネットワークモード>ブリッジ(詳細)
ネットワーク>仮想ネットワークカード>Intel i82562 Ethernet (i82562)
に変更し、
「保存」をクリック。

utm_setting_11.png

isoイメージを抜いたら、仮想マシンを起動するとEFI画面になるので、「*Arch Linux」を選択します。

archlinux_start_1.png

その後、ログイン画面になります。

Arch Linux 6.8.6-1-aarch64-ARCH (tty1)

myhostname login:

まずはインストール時に作成したuserアカウントでログインします。

rootになれることの確認

[username@myhostname ~]$ su
Password:
[root@myhostname /home/username]#

userアカウントでログインして、suコマンドでルートになれることは確認できました。

キーマップの設定

最初のログイン直後、キーボードから記号を叩いてみて、キートップの記号と入力された記号が異なっていたら、それはキーマップが正しく設定されていないということです。日本語キーボードを使っている場合などに起こります。適切なキーマップに設定しておきましょう。

# localectl set-keymap jp106

ロケールを日本語に設定

まず/etc/locale.genの、ja_JP.UTF-8 UTF-8 をアンコメントします。

/etc/locale.gen
...
#ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
#ka_GE.UTF-8 UTF-8
...

以下を実行

$ sudo locale-gen
Generating locales...
  en_US.UTF-8... done
  en_US.ISO-8859-1... done
  ja_JP.UTF-8... done
Generation complete.

locale.confを書き換えて、

/etc/locale.conf
#LANG=en_US.UTF-8
LANG=ja_JP.UTF-8
LC_COLLATE=C

ログアウト後、再ログインするとメッセージが日本語になっています(表示が日本語になるだけで、日本語入力ができる訳では無い)。

ただし、日本語ロケールを設定すると、UTMのコンソールが文字化けしてしまいます。sshで接続する場合は、sshクライアント側が日本語が使えれば大丈夫です。macからsshでアクセスする場合、iTermでもターミナルでも文字化けはしません。

コマンドが無かったらpacmanで入れる

Arch Linuxインストール直後は最低限の機能しか含まれておらず、あとはパッケージマネージャpacmanで必要な機能を入れていくことになります。

# which which
bash: command not found
# pacman -Syu which
...
# which which
/usr/bin/which

インストール直後はviすら入っていません。インストーラーでテキストエディタとしてnvimを入れたので不要なのかもしれませんが…とりあえず、vi入れときます。

# pacman -Syu vi

sudoのインストール

pacmanはroot権限でしか実行できません。suでrootに入って作業を続けるのは気が引けますので、まずはsudoをインストールします。

# pacman -Syu sudo
# visudo

visudoで/etc/sudoersの編集画面になるので、

# %wheel ALL=(ALL:ALL) ALL

%wheel ALL=(ALL:ALL) ALL

に修正します。これでsudoが使えるようになったので、suから抜けます。次からはsuではなくsudoを使いましょう。

sshサーバのインストール

$ sudo pacman -Syu sudo
$ sudo systemctl enable --now sshd

これでsshでリモートログインできるようになりました。

$ sudo systemctl enable --now sshd
$ ip a

これでipアドレスを確認し、クライアント(macのターミナルやiTerm)から、

$ ssh <ARchLinuxnのipアドレス>

こうしてリモートログインして以降の作業を続けたほうが、コピペできるんで作業がはかどりますよ。

いつもの環境を構築

.bashrcに以下のaliasを追加

.bashrc
alias cls='clear'
alias ll='ls -l --color=auto'

ネットワーク関連の設定

まずは、/etc/hostnameを修正してコンピュータ名を設定します。varchという名前にしました。

/etc/hostname
varch

次に、ネットワークインターフェースを確認します。

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether fe:a1:56:90:3d:ae brd ff:ff:ff:ff:ff:ff

インターフェースはenp0s1であることがわかります。インストール直後のネットワークはdhcp接続でした。

$ cat /etc/systemd/network/enp0s1-ethernet.network
#/etc/systemd/network/enp0s1-ethernet.network generated by Archboot setup
[Match]
Name=enp0s1

[Network]
MulticastDNS=yes
DHCP=yes
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: enp0s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fe:a1:56:90:3d:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.128/24 metric 1024 brd 192.168.1.255 scope global dynamic enp0s1
       valid_lft 14342sec preferred_lft 14342sec
    inet6 2400:xxxx:yyyy:zzzzz:uuuu:vvvv:wwww:zzzz/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 14345sec preferred_lft 12545sec
    inet6 fe80::aaaa:bbbb:cccc:dddd/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever

ネットワークが繋がっていることも確認できました。

インストール時はお手軽にdhcpによるネット接続設定にしましたが、サーバとして利用するなら固定IP接続に変更しておいたほうが好都合です。

以下の固定アドレスを割り当てるとします。

IPv4アドレス: 192.168.1.7/24
IPv6アドレス: 2400:xxxx:yyyy:zzzzz::7/64

2400:xxxx:yyyy:zzzzzは、プロバイダーから払い出されたipv6プレフィクス。 2400:xxxx:yyyy:zzzzz:uuuu:vvvv:wwww:xxxxは、自宅ルーターのipv6アドレス

/etc/systemd/network/enp0s1-ethernet.network
[Match]
Name=enp0s1

[Network]
Address=192.168.1.7/24
Address=2400:xxxx:yyyy:zzzzz::7/64
Gateway=192.168.1.1
Gateway=2400:xxxx:yyyy:zzzzz:uuuu:vvvv:wwww:xxxx
DNS=192.168.1.1
DNS=2400:xxxx:yyyy:zzzzz:uuuu:vvvv:wwww:xxxx

DNSサーバも自宅LAN用に変更しておきます。

/etc/resolv.conf
nameserver 192.168.1.1
options edns0 trust-ad
search .

以上の設定で、次回起動時からは固定IPでつながるようになります。

docker

Dockerを入れておきます。

$ sudo pacman -Syu docker docker-compose

自分のログインアカウントをdockerグループに入れておく。

$ sudo groupadd -f docker
$ sudo usermod -aG docker myaccount

起動

$ sudo systemctl enable --now docker.service
$ sudo systemctl enable --now containerd.service

動作確認。rootではないユーザアカウントで動作すればOK。

$ docker run hello-world
...
Hello from Docker!
This message shows that your installation appears to be working correctly.
...

ファイルサーバー

Sambaをインストール

$ sudo pacman -Syu samba

Sambaのセットアップ
/home/samba/share をvarchという名前で公開

$ sudo mkdir /home/samba
$ sudo mkdir /home/samba/share
$ sudo chmod 777 /home/samba/share
$ sudo chown nobody:nobody /home/samba/share
/etc/samba/smb.conf
[global]
   unix charset = UTF-8
   dos charset = CP932
   workgroup = WORKGROUP
   server string = %h server (Samba, Alpine)
   dns proxy = no
   interfaces = 127.0.0.0/8 192.168.1.0/24
   bind interfaces only = yes
   map to guest = Bad User
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = no
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
   fruit:metadata = netatalk
   fruit:encoding = native

[varch]
   path = /home/samba/share/
   writable = yes
   browseable = yes
   guest ok = no
   guest only = no
   create mode = 0664
   directory mode = 0775
   valid user = username

ファイル共有時のアカウントの設定、usernameは変えてください

$ sudo pdbedit -a -u username

sambaの起動

$ sudo systemctl start smb nmb
$ sudo systemctl enable smb nmb

ファイル共有サーバを他のPCから見えるようにする

$ sudo pacman -Syu avahi dbus
$ sudo systemctl start dbus avahi-daemon
$ sudo systemctl enable dbus avahi-daemon
/etc/avahi/services/smb.service
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
        <type>_smb._tcp</type>
        <port>445</port>
    </service>
</service-group>
$ sudo systemctl restart avahi-daemon

Webサーバー

WebサーバーはApacheを使用。Apacheはdocker-composeで立ち上げることにします。

docker-compose.yml
version: '3.3'
services:
  httpd:
    image: httpd:2.4
    ports:
      - '80:80'
    volumes:
      - ./htdocs:/usr/local/apache2/htdocs
      - ./conf:/usr/local/apache2/conf
    restart: always
index.html
<html>
<body>
<h1>My Homepage</h1>
</body>
</html>

ディレクトリ構成

apache
│  docker-compose.yml
│
├─conf
│  │  httpd.conf
│  │  magic
│  │  mime.types
│  │
│  ├─extra
│
└─htdocs
        index.html

apacheを仮起動し、confディレクトリを抽出する。

$ docker run --rm --name httpd -d httpd:2.4
$ sudo docker cp httpd:/usr/local/apache2/conf/ conf
$ docker rm -f httpd

apacheを起動

$ docker comppose up -d --build

動作確認

$ curl http://localhost/
<html>
<body>
<h1>My Homepage</h1>
</body>
</html>

ファイアーウォール

Arch Linuxは初期状態ではファイアーウォールは入っていませんので、iptablesで簡易ファイアーウォールを構築します。

アクセスPolicyは、

  • 内部から外部へのアクセスはすべて可能。
  • 同一サブネットの外部からのアクセスはssh, samba avihi, http(80と8080)のみ可能
  • 外部からのping可能

としました。

まず、iptablesとipv6用のip6tablesがインストール済みかを確認します。

$ which iptables
/usr/bin/iptables
$ which ip6tables
/usr/bin/ip6tables

iptablesがインストール時点で入っているようなので、iptablesでFirewallを構築すしていきます。

iptablesを起動

$ sudo systemctl start iptables
$ sudo systemctl start iptables6
$ sudo systemctl enable iptables
$ sudo systemctl enable iptables6

iptablesとip6tablesで全てDENYでsshとpingとhttpとsmbとavihiだけ通すファイアーウォールを設定していきます。/etc/iptables/simple_firewall.rulesというファイアーウォール設定のサンプルが置いてありますので、これを元に設定します。

/etc/iptables/iptables.rules
# varch rules
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
# ssh
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp --dport 22 -j ACCEPT
# samba
-A INPUT -s 192.168.1.0/255.255.255.0 -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp --dport 445 -j ACCEPT
# avahi-daemon
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp --dport 5353 -j ACCEPT
# web
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp --dport 80 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -p tcp --dport 8080 -j ACCEPT
#
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
COMMIT

ip6tablesのルールはiptablesのルールと同じにしましたが、ipv6を使用していないならすべてDROPでもいいと思います。

/etc/iptables/ip6tables.rules
# varch rules
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -p udp --sport 547 --dport 546 -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m conntrack --ctstate NEW -j ACCEPT
# ssh
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p tcp --dport 22 -j ACCEPT
# samba
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p udp --dport 137 -j ACCEPT
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p udp --dport 138 -j ACCEPT
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p tcp --dport 139 -j ACCEPT
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p tcp --dport 445 -j ACCEPT
# avahi-daemon
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p tcp --dport 5353 -j ACCEPT
# web
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p tcp --dport 80 -j ACCEPT
-A INPUT -s 2400:4150:8aa0:cd00::/64 -p tcp --dport 8080 -j ACCEPT
#
-A INPUT -p udp -j REJECT --reject-with icmp6-adm-prohibited
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
COMMIT

iptables service停止

$ sudo systemctl stop iptables
$ sudo systemctl stop ip6tables

iptables service起動

$ sudo systemctl start iptables
$ sudo systemctl start ip6tables

起動時に iptables が自動的にロードされるようにしたいとき

$ sudo systemctl enable iptables
$ sudo systemctl enable ip6tables

思惑通りファイアーウォールが設定されたかは必ず確認しておいてくださいね。

システムの更新

Arch Linuxの特徴の1つローリングリリースは、常に最新のシステムに更新されて稼働できることを意味します。Windows UpdateやiOSなんかも自動更新を有効にしておけば似たようなものですが…

手動で更新する場合は以下のコマンドで。

$ sudo pacman -Syyu

cronを使って定期的に自動更新する方法がArchWikiに記載があります。

https://wiki.archlinux.jp/index.php/%E5%88%A9%E7%94%A8%E8%80%85:Crontab_%E3%81%A7%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E6%9B%B4%E6%96%B0
利用者:Crontab でパッケージを更新

今回はUTM上にインストールしたサーバなので自動更新はやめておきます。

おわりに

以上でファイル共有、Webサーバ機能を持ったサーバの出来上がり。dockerでWebアプリをガンガン入れて動かすこともできますよ。


Written by questions6768 who lives in Uji, Kyoto.