見出し画像

Arch Linuxをインストールしてみた

Arch Linuxをインストール〜デスクトップ環境の構築までの手順 

Amazonで1万円台で買った、メモリ4GB、SSD50GBくらいのASUSのノートPCにWindows10が入っていたけど、SSDの容量不足でまともに使えないので、Arch LinuxをインストールしたことがきっかけでArch Linuxが好きになりました。

Arch Linuxの良さげな点

・ミニマルなOSであること。

・USBに入れるISOイメージの容量も小さい、インストールされたPCにとっても軽い。

・インストールが難しい。zshシェルにコマンドを入力して設定、インストールを行っていくので勉強になる。

・難しいぶんドキュメントが充実している、ドキュメント自体でOSのシステムを勉強できる。

・インストール後も何もかも自分で設定していくので、自作PCみたいに自分で作り上げていく感覚が楽しい。

・インストール方法についてのブログ・記事が多いので、参考にしやすい。

Arch Linuxをインストールしようと思った理由

良さげな点とかぶりますが

Arch Linuxの存在は、名前は聞いたことあるくらいでした。あるブログを見ていると、軽量で、インストールが難しいと書いてあったのをみて、急に興味がそそられました。インストールがめんどくさくて難しいことで、知識が無い僕にとって勉強になると思い、ArchLinuxのインストールに挑戦しました。

インストールに成功

結果、インストールに成功しました。初めてなので、何度か失敗してはじめからやり直したりもしたので、初めての頃は、時間的にはおそらく7時間くらいかかってました。

慣れても、Arch Linux自体のアップデートなどによって、古いやり方が通用しなくなっていたりするので、たいていどこかで躓きますが、慣れてくると対処も段々とできるようになってきます。

ArchLinuxのインストール作業は、開始したらインストール完了まで当日中に行うのがよいかなと思いました。

なぜかというと、続きは翌日みたいなことももできるけど、途中で間違えておかしなことになると、またはじめからやり直しということもあり得るからです。

シンドイけど、途中で休憩しつつ、一気にインストール完了までやり遂げるのがいいかもです。

インストールしてブートできれば、あとは後日以降にでもゆっくり時間をかけて設定を育てていくスタイルでよいかなと思います。

充電しつつ、PCのバッテリー切れさえ注意しておけば、ずっと画面開きっぱなしでゆっくり進められます。僕の場合は、作業手順を別のPCに記録しつつ進めたので、時間がかかり、ハードでした。

今回はインストールに成功したけど、次は失敗したり、苦戦するとかありえるので、なるべくインストールの再現性を高めるために、自分用にメモをとっていこうと考えました。これがきっかけで今回、記事にしました。

インストールが完了したときは、とても達成感がありうれしかったです。

インストールにあたって参考にしたのが、ブログ記事です。初心者なので、ドキュメントに沿ってだと難しすぎて無理なので、きれいにまとまっているブログ記事を参考にするのが一番良さげです。

複数の記事を参考に進めてもうまくいかないときは、ドキュメントを見たりする感じで進めました。

ひとりのユーザーのブログをはじめから終わりまで真似してだと、途中にできない、うまくいかないといったことがあったので、僕の場合は複数ユーザーのブログを参考にして、この部分についてはこの記事を参考にする。他は違う記事を参考にする。みたいな感じで進めました。

ここまではこのブログを参考、ここからはこのブログを参考みたいな感じです。

参考にしたサイトや記事

公式サイトのリンク

日本語のサイトがよく整備されてて、分かりやすいです。

あと、ArchWikiも公式です。

ArchWikiは公式サイトの内部コンテンツなので、公式サイト内にリンクされてあるのですが、一応リンクを貼っておきます。


参考にさせていただいた記事

とても分かりやすかったです。


手順が何記事かに分割されているので、必要に応じて記事を参考にしました。


qiitaの記事もけっこう多くあり、はじめは参考にしてましたが、僕にとっては難しく思えることが多かったので、今回、qiitaの記事は参考にしませんでした。

インストール手順

USBを作成・・・これはググったらいくらでも記事があるので省略します。

windows pcでrufusというツールをダウンロードして使うのが一番簡単で早いです。

Arch LinuxのUSBを作成したら、PCの電源OFFでUSBをセットし、電源をONにします。

一度USBを作ってしまえば、PCにインストールしてもUSBの中身は消えないので、他のPCへのインストールに繰り返し使えます。

続いて、BIOS画面に入り、USBブートさせます。


Arch Linuxのインストールを選択したら、インストールを行う前準備で使用するシェルが立ち上がります。ここから、コマンドでOSインストール前の各種設定を行っていきます。

USBで起動し立ち上がったシェルは、あらかじめ便利なパッケージも同梱されていて使えるようになっています。

注意!便利なパッケージはなるべく事前にインストールしておこう

ここで注意なのが、isoメディアに入っている便利なパッケージは、PCにArchLinuxをインストールした後は、PC側には保存されていないことに注意が必要です。

僕はこれにハマりました。

OSインストールして再起動したあとは、無線LAN接続を簡単にできる便利なパッケージなども、すっかりなくなっています。

PC側にArchLinuxをインストール完了する前に、便利なパッケージをSSDにインストールしておくことが重要です。

なぜかというと、PCにインストール完了後には、ネット接続の手順で説明されている便利なパッケージがPCにインストールされてなく、bashのシンプルなコマンドしかないので、ネット接続させることすら大変なことになります。僕は、これにハマってしまい、またUSBブートではじめからArch Linuxのインストールをやり直すことになってしまいました。

ちなみに、USB挿してUSBに入っている便利なパッケージをPCにインストールを試してみましたが、敷居が高く無理っぽかったのであきらめました。

他にも、使いたいパッケージをUSBにダウンロードして、USBからパッケージを入手すればいいんじゃないか?と思いましたが、

敷居が高そうなので、こっちもやめときました。

この方法、やろうと思うと、パッケージのインストールまでの処理をちゃんと知っとかないとできないので、ある意味、やってみると勉強になるかも。

後々知ったのですが、isoブートメディアのArch Linuxを立ち上げて、そこからpcにマウントしてpc側のArch Linuxに入って必要なパッケージをインストールできるのでゼロからArch Linuxのインストール作業をやり直したりしなくても、この方法で大丈夫です。

エラーなどでインストール作業がうまくいかなかったときのために作業logを記録する

インストール作業の再現性を高めたら、ログなんて必要ないかもですが、インストールするPCが変わるだけで、同じ方法ではエラーが出たりするので、作業ログは記録しておいた方がよいかもしれません。

scriptコマンドを使うことで、コマンドに入力したコマンドと出力結果などをtypescriptのファイルに保存できます。

script

すると、下記のメッセージが出ます。

Script started, output log file is 'typescript'.

usbの中のtypescriptファイルに保存されます。

exitコマンドを実行すると、記録が止まります。そのままでは、pcを再起動したらusbの中に生成されたファイルが消えてしまうので、その前に cpコマンドでコピーしてSSDに保存します。

インストールができないときは、解決方法やエラーのトレースの方法などもArchWikiが詳しいです。

https://wiki.archlinux.jp/index.php/%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AA%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0

まず、日本語キーボード配列にします。

# loadkeys jp106

日本語キーボードの場合、日本語キーボード配列にしとかないと、例えば、作業時に使うキー(|パイプ)など必要なキーを押しても反応しないので、入力できないので不便です。

インストール作業は、途中でネット接続が必要なので、まず無線LANにつなぎます。

これ意外でした。僕が経験した限りだけど、centOS、LubuntuUSBブートはたいてい、USBだけで自動でインストールまで完了するからです。インストール完了後に、ネット接続もほぼ自動でやってくれてました。

一覧から無線LANのインターフェース名を確認します。

# ip link show

無線LANだと、「w」から始まるインターフェース名となっているはずです。

インストール時のネット接続はiwctlを使う

iwctlを起動。2021年現在、こっちを使うほうがかなり楽にネット接続できます。archのインストールメディア立ち上げ時にもiwctlを使いましょうと表示されます。使い方は簡単。arch wikiをみればすぐにネット接続できると思います。

https://wiki.archlinux.jp/index.php/Iwd#iwctl

###################################################

下記はiwctlを使わずにネット接続する場合の手順です。

インターフェースを有効化します。

// 僕の場合はwlan0が無線LAN
# ip link set wlan0 up


WIFIのアクセスポイント一覧を表示します。


# iwlist wlan0 scanning | grep ESSID

一覧で、つなぎたいアクセスポイントの名前(ESSID)を確認しておきます。WIFIにつなぐためのパスワードも準備しておきます。

grep ESSIDとすることで、ESSIDが記載された箇所を抽出し表示してくれます。

WIFIに接続して、ネットにつながるか確認。

// ESSID,passwordの部分は自分のを確認して入力する
# wpa _supplicant -B -i wlan0 -c <(wpa_passphrase ESSID password)
# dhcpcd
# ping google.com // つながればok, Ctrl + cで抜けます

ここまでで、ネット接続できました。

簡単にネット接続できますが、これはパッケージのおかげです。zshにていまは使えていますが、前述したように、上記のような便利なコマンドはインストール後に再起動したら使えないので注意。使いたいコマンドは事前にインストールしとかないといけません。※あとでまとめてインストールします。


dhcpcdについては下記リンクを参照。

dhcpcdとすることで、DHCP接続を確立してくれます。固定IPと比べると、自動的にネット接続してくれるので便利。




iwctlを使わないネット接続の手順はここまで

####################################################

パーティションの作成

PCに内蔵されているSSDまたはHDDなど、ディスクの一覧を表示して、パーティションを作成するディスクを確認、特定する。

現在の一般的なPC状況からいうと、SSDを選択することになると思います。

OSをインストールするSSDの中にパーティションという仕切りをつくる。

物理的には1コのSSDの中身に必要に応じた数の仕切りを設けることで、役割を明確にして使いやすくします。Aには5GB持たせておこう、Bには240GB持たせておこうみたいな感じに分けます。

ここで僕がミスったのが、USBにパーティションを作ってしまったことです。初心者なので、はじめは作業内容を理解せず進めてたので、こんな凡ミスしちゃってました。

fdiskというコマンドをつかうことで、対話形式で設定を進められるようになります。

# fdisk -l


Archlinuxのパーティションの割り当てをする前に、OSなど既存のデータの削除を行います。

新しいpcならGPTパーティションテーブル、2011年以前くらいの古いpcならMBRパーティションテーブルを作成する必要があります。

PCの起動時にF-2キーなどでBIOSに入って、BIOSのセキュアブートの設定項目がある場合は、UEFIを採用した新しいpcなのでGPTのほうを採用します。

古いpcなのにGPTパーティションテーブルでパーティションを作ってしまうと、GRUBでのブート設定ができないので、ブートできずOSが立ち上がらないです。

UEFIについては、下記リンクがわかりやすいです。

UEFIはBIOSの進化バージョン。古いPCでなかったらUEFIから起動で良さそう。

https://wa3.i-3-i.info/word12796.html

GPTテーブルの作成手順

GPTテーブルの作成(パーティションの作成)を行います。

GPTテーブルとは、パーティショニングの標準規格のことで、固定化されたテンプレ的なものですね。標準規格にのっとってパーティショニングを行うことで安定・安心にパーティショニングを行えます。

fdisk -l でデータを削除したいディスク名を確認したので、fdiskの引数に渡します。

// 僕の場合は/dev/mmcblk0に入っているOS,データを削除して
// 新たにパーティションを割り当てます
# fdisk /dev/mmcblk0


ディスクの内容がきれいさっぱり消えるので注意!

// ディスクの内容を削除
# Command (m for help): g


# Command (m for help): n


Partition number:  // enterキーでok

First sector: // enterキーでok

Last sector: // +500M と入力(+100M以上必要)

※ここでDo you want to remove the signatureと聞かれたらyを入力。

Command (m for help): // tと入力

 // Selected partition 1と表示される

Partition type (type L to list all types): // 1と入力

 // Changed type of partition 'Linux filesystem' to 'EFI System'.と表示される。

Command (m for help): // wと入力(変更を保存して終了)(変更を破棄して終了したい場合はqを入力する)


システム(OS)をインストールするパーティションを作成する

# fdisk /dev/mmcblk0
Command (m for help): n
// 以降、全てenterキーでok
 ...
Command(m for help): w


MBRテーブルの作成手順

OSをインストールしたい、pc側のHDDまたはSSDのディスク名称が、
/dev/sdaという名称の場合、/dev/sda1をブート用にし、/dev/sda2をその他全部のデータを保存するように分けるとします。分け方はあくまで1つの例です。スワップ専用の領域を作成したりもできます。その場合はパーティションが3つになります。

# fdisk /dev/sda
Command (m for help): o //既存のデータを削除して新しくMBRパーティションを作成
Command (m for help): n
Select (default p): p
Partition number: 1 // /dev/sda1となる
First sector: そのままEnterでok
Last sector: +512MB
Command (m for help): n
Select (default p): p
Partition number: 2 // /dev/sda2となる
First sector: そのままEnterでok
Last sector: そのままEnterでok
Command (m for help): a //Partition1にブートフラグをつける
Command (m for help): w //書き込み保存

つぎは、パーティションをフォーマットします。

# mkfs.ext2 /dev/sda1
# mkfs.ext4 /dev/sda2


ファイルシステムを作成する


パーティションを作成したら、次はファイルシステムの作成です。

まずパーティションのフォーマットを行います。

まずどのパーティションをフォーマットするのか、パーティションを確認します。

# lsblk


表示された一覧でフォーマットするパーティションを確認します。

僕の場合は、mmcblk0配下にmmcblk0p1とmmcblk0p2にパーティションが分割されていることを、上記コマンドで確認されました。

※注意:下記はGPTテーブルの場合のフォーマットです。

mmcblk0p1は、UFEI領域で使い、FAT32にフォーマットする。

# mkfs.fat -F32 /dev/mmcblk0p1

mmcblk0p2は、システム領域で使い、ext4にフォーマットします。

# mkfs.ext4 /dev/mmcblk0p2

フォーマットは完了。

ext4とは、LINUXが標準で採用しているファイルシステム。ジャーナリング機能付き。ジャーナリングとは、ファイルシステムを僕らが操作したときに、作業内容など記録しておいてくれる機能で、ミスってフォルダを消したり、なにかおかしなことをしたときにログなど追跡できると思います。

昔のファイルシステムはジャーナリングがなかったりするみたいです。あった方が当然便利ですね。


つぎは、マウントします。

システム領域は/mntにマウントする。

システム領域を入れるディレクトリを指定する感じです。システム領域のパーティションの/mntにシステムを入れますよ。と明示。

# mount /dev/mmcblk0p2 /mnt

UFEIの領域は /mnt/boot にマウントする。

# mkdir /mnt/boot
# mount /dev/mmcblk0p1 /mnt/boot

以上でマウントできました。

システムクロック設定

# timedatectl set-ntp true

以上でシステムクロックの設定は完了です。

NTPとは、ネット経由でNTPサーバーから正確な時間を取得する機能です。スマホみたいに、これで時間が正確に表示されます。


次は、ミラーサイトの設定です。

パッケージ管理のpacmanコマンドでパッケージを取得する際にどこからパッケージを取得するかについて、urlがズラーっと書かれているのが、ミラーリストで、ミラーサイトです。

日本に住んでいる場合、日本のサーバーから取得したほうが処理が速いらしいです。

# nano /etc/pacman.d/mirrorlist

リストの上から順に読み込まれるみたいなので、日本ぽいミラーリンクサイトを一番上の方にコピペしてもっていきます。

僕の場合は、デフォルトでjpで始まるURLが一番上だったので、何も編集せずにexitしました。

以上でミラーリンクサイトの設定は完了です。

次は、ベースシステムをインストールです。

# pacstrap /mnt base base-devel linux vim git

/mnt配下にbase、base-devel、linux、vim、gitをインストールするという意味。

いろんな記事を見ましたが、少しインストールするものに個人差がありますが、baseだけじゃなくlinuxもインストールしないとだめみたいです。

つぎは、fstabを作成します。fstabが何のことか全然わからないので、ググってみました。

mountと一緒に使われるfstabファイル。作成したパーティションに対して、どのようにしてLINUXのファイルシステムをマウントするかの詳細を設定するファイル。fstabは、file sysytems tableの略です。wikipediaも少し視点を変えたアプローチで説明されており、英語版だけどわかりやすかったです。

上記3つのリンクを流し読みするだけでも、fstabが、なんとなくどんなものか理解できると思います。


システム起動時のパーティションマウントを設定するfstabを生成

# genfstab -U /mnt >> /mnt/etc/fstab

再起動reboot後、/dev/mmcblk0p2がルートディレクトリとなります。


今だけrootディレクトリを変更する。これまではUSBブートのArchLinuxで作業してきた。ここから、PC側(SSD)にインストールしたArchLinuxのシステムにchroot(change root)で中に入って作業を行う。一旦SSD側に入ると、その外のディレクトリのファイルやコマンド(USB)にはアクセスできなくなる。

PC側にインストールしたシステムに一時的に入って、インストール作業が完了する前に、最後の仕上げとしてパッケージのダウンロードや設定を事前にしておく感じ。

# arch-chroot /mnt

editorをインストールします。

# pacman -S nano

time-zoneの設定

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --utc

ArchWikiを参照。

ロケール設定

# nano /etc/locale.gen 

こちらも上記ArchWikiを参照。

nanoエディタでロケール設定を行うlocale.genを開いて、「en_US.UTF-8 UTF-8」と「ja_JP.UTF-8 UTF-8」のコメントを解除(アンコメント)。「#」を削除します。

上記2つをアンコメント(コメントアウト)することでタイムゾーンなどロケール設定され、日本に対応した各種設定がされます。あと、英語圏にも対応されます。


設定したロケールの反映

# locale-gen
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# echo KEYMAP=jp106 > /etc/vconsole.conf

現時点では、完全に日本語化できていないので、環境変数であるLANG変数はまだ英語を設定しておく。

LANG:デフォルトロケール


ホストネームを設定

# echo [myhostname] > /etc/hostname

[myhostname]の部分に好きな名前を設定します。


同じ[myhostname]を/etc/hostsにも設定

nanoで編集します。

# nano /etc/hosts


// etc/hostsの内容を下記にする。
127.0.0.1	localhost
::1		localhost
127.0.1.1	myhostname.localdomain	myhostname


rootパスワードを変更

# passwd


マイクロコードをインストール

# pacman -S intel-ucode

PCがintelのCPUの場合は上記コマンドでマイクロコードのアップデートを実施。マイクロコードについての概要などはこちらを参照。

インストール時のネット接続はiwctlを使う

マイクロコード - ArchWikiwiki.archlinux.jp


GRUBとEFIブートマネージャーをインストールする

# pacman -S grub
# pacman -S efibootmgr

GRUBとはブートローダーのことで、ブートローダーとは、BIOSやUEFIによって起動される一番最初のソフトウェア。

ブートローダーがマイクロコードをロードする仕様になっています。

EFIブートマネージャー(=efibootmgr)は、GRUBのインストールスクリプトによって使用される.efiブータブルスタブを作成します。

スタブ(stub)とは


# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub


GRUBインストール後の設定ファイルを生成

# grub-mkconfig -o /boot/grub/grub.cfg

※拡張子のcfgは主に設定ファイルに使用されるファイル形式。


ここまでで設定は完了で、あとはchrootからexitして再起動したら、完了となり、SSDからArchLinuxが起動されます。

chrootから抜ける前に無線LAN(WiFi)の便利なパッケージをPCにインストールしておく

無線LAN接続だけでも、複数のパッケージで複数の方法があり、接続がうまくいかなかったときの代替用として、僕の場合は何個かインストールしておきました。

# pacman -S netctl
# pacman -S iw
# pacman -S dhcpcd
# pacman -S NetworkManager
# pacman -S wpa_supplicant

こんな感じに、通常は、netctlを使うとよいみたいなので、僕もnetctlを使用しました。心配だったら下記公式サイトを参照して全部インストールしといたらよいかと思います。

必要なパッケージをインストールしたら、無線LAN接続設定をやっておきます。そして、再起動後は設定内容が消されて、自動接続されないので、PC起動したら自動的に無線LAN接続を行うように設定もします。


まず無線LANのドライバーがロードされているかを確認

# lspci -k

※カードをPCI接続している場合は-k。もしUSBで無線LAN接続の場合は-vを使用

表示された内容から、wifiやiwlifiという文字列が見つかればokで、ドライバがロードされていて使える状態。


無線LAN接続を行うネットワークインターフェース名の確認

# ip link

無線LANのネットワークインターフェース名を確認し、これから設定で使うのでメモまたは頭の中で覚えておきます。

wで始まるのが無線LANのインターフェース名です。

僕の場合、wlo1というインターフェース名でした。


インターフェースを起動します

# ip link set wlo1 up


先ほどインストールした、ワイヤレス接続のためのパッケージであるnetctlのディレクトリに移動します

# cd /etc/netctl

netctlでは、ネットワークについてのプロファイルを手動で作成すると、netctlがこのプロファイルを参照します。PC起動時に無線LANに自動接続するようにプロファイルを書けばOKです。

プロファイルのファイルは、/etc/netctlディレクトリの中に任意の名前で作成します。拡張子はいらないです。

接続方法の種類によってサンプルのプロファイルが/etc/netctl/examplesディレクトリの中に用意されています。

このサンプルファイルをコピーして、名前を任意でつけたファイルにペーストすると、このプロファイルがnetctlから参照されます。

lsコマンドで確認すると、ファイルがいっぱい表示されますが、通常は、

wireless-wpaを使えばokです。


wireless-wpaファイルの内容をwirelessという任意の名前のプロファイルにコピペ

# cp examples/wireless-wpa wireless


プロファイル内にWi-Fiルーターに接続するための暗号化キーを記載するので、root以外の管理者以外がファイル内容を閲覧できないようにするため、chmodでプロファイルのパーミッションを操作し、アクセス制限をかけます。

# chmod 600 wireless


nanoでプロファイルを編集する

# nano wireless

内容はこんな感じ

Description='A simple WPA encrypted wireless connection using 256-bit Encrypted PSK'
Interface=wlo1
Connection=wireless
Security=wpa
IP=dhcp
ESSID=your_essidWi-Fi機器の名称)
Key=Wi-Fi機器の暗号化キー

上記のinterfaceにPCのネットワークインターフェース名を書く。

ESSID、keyを書く。この3つを書いて保存。他はデフォルトのままでok。

以上でプロファイルの作成は完了です。


ここで、netctlを使ってWi-Fi接続する前に、ipコマンドで起動したインターフェースを停止しておきます。そうしないと、netctlでの接続に失敗します。

# ip link set wlo1 down


プロファイルを使ってnetctlで接続

# netctl start wireless

netctlのstartコマンドにプロファイル名を渡すことで、プロファイルの内容を参照しWi-Fi接続してくれます。


PC起動時に自動接続させる

 # netctl enable wireless

上記コマンドを1回実行するだけで、以降はsystemdがpc起動時にnetctlを実行→netctlがプロファイルを参照しWi-Fi接続してくれます。

※起動時の自動接続の有効、無効はenable/disableコマンドを使う。

enable/disableコマンドによってsystemdに登録/削除が行われています。

systemdとは、システムやサービスを管理するシステムサービスマネージャで、起動時や一定期間ごとに実行したいものをsystemdに登録します。

Wi-Fiルータ変更などでプロファイルの内容を後で書き換えた場合、下記コマンドで再設定を行う必要があります。

# netctl reenable wireless



一通りの作業が終わったのでchrootから抜ける

# exit


PCの再起動後は/mntのマウントは不要になるので、アンマウントしておきます。

# umount -R /mnt

シャットダウン

# shutdown -h now

シャットダウンされたら、USBを抜きます。

これで再度起動すると、ArchLinuxが立ち上がります。

上記でpacmanでダウンロードしたGRUB UEFI アプリケーションを boot/EFI/grub にインストールして、モジュールを /boot/grub/x86_64-efi にインストールそして、grubx64.efi ブータブルスタブを boot/EFI/grub に配置

ここまでで、インストール作業は完了です。

つぎは、デスクトップ環境をインストールするための準備をしていきます。

一般ユーザーの追加

rootユーザーだけしかなく、セキュリティ上も危ないので、必要なときだけsudoやsuでroot権限を使える、一般ユーザーを作ることが一般的に推奨されていますので、新規にユーザーを作成します。

# useradd -m -g [initial_group] [username]

-mはユーザーのhomeディレクトリを同時に作成するオプション。

-gはユーザーの所属するグループ名

僕の場合は、下記のようにユーザーを追加しました。

# useradd -m -g wheel hoge

wheelグループとは、sudoやsuコマンドを使うことで、一時的にroot権限をもつことのできるグループ。

次に、パスワードを設定します。

# passwd [username]
# // 設定したいパスワードを入力(確認用で2回入力します)

これでユーザーの追加とパスワードの設定が完了です。

# logout

ログアウトすると、またログインするプロンプトになるので、そこで作成したユーザー名とログインを入力することで、作成したユーザーでログインできるようになります。

以上の作業は、詳しくは、ArchWikiに。

https://wiki.archlinux.jp/index.php/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%A8%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97#.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E3.83.87.E3.83.BC.E3.82.BF.E3.83.99.E3.83.BC.E3.82.B9

バッテリー残量を確認できるようにしておく

ここで、少し余談ですが、デスクトップ環境作成するまでに、ノートPCの場合、バッテリーの残量が気になるかと思います。

バッテリーの状態が見れるようにしておきます。

バッテリーの状態は、acpiパッケージをインストールすることで、コマンドラインからコマンドで見ることができるようになります。

# pacman -S acpi

インストールが完了したら、acpiコマンドでバッテリーの残量や付随する情報が確認できます。

# acpi -b

-bオプションで、バッテリーの残量が表示されます。

その他のオプションは、

# acpi --help

とすることで、確認できます。

https://wiki.archlinux.jp/index.php/%E3%83%8E%E3%83%BC%E3%83%88%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3?rdfrom=https%3A%2F%2Fwiki.archlinux.org%2Findex.php%3Ftitle%3DLaptop_%28%25E6%2597%25A5%25E6%259C%25AC%25E8%25AA%259E%29%26redirect%3Dno

電源管理についての情報もArchWikiで。

ArchWiki、めちゃくちゃ詳しくて便利ですね。


もう一度パッケージ全体のアップデート

この辺のタイミングで、もう一度パッケージ全体のアップデートをしておきます。引き続きリポジトリから任意のパッケージをダウンロードしていきます。

ここまでの作業で日数が経過している場合、パッケージをアップデートしておかないと、任意のパッケージを指定してダウンロードするとき、リポジトリから404ステータスコードが返ってきたり、タイムアウトが発生し、欲しいパッケージをダウンロードできなくなるからです。

# pacman -Syu

一般ユーザーのためにsudoインストールと設定

一般ユーザーを作成したけど、実はsudoがインストールされていません。当たり前に使えると思ってたけど、sudoもインストールしなくちゃいけないんですね。

https://wiki.archlinux.jp/index.php/Sudo

sudoとは、substitute user doの略。

sudoパッケージをインストール

# pacman -S sudo

sudoの設定ファイルは、/etc/sudoersです。この設定ファイルのユーザーのsudo権限についてのコメントを解除することで、sudoの設定ができます。

sudoers設定ファイルは、visudoコマンドを使って編集するべきと推奨されています。一時的にnanoを使いたい場合、下記コマンドのようにETIDOR変数を設定します。

nanoを使いたいので、下記コマンドを実行します。

# EDITOR=nano visudo

つぎは、sudoersファイルのコメントを解除します。

今回は、wheel グループに所属する全てのユーザーがsudoを使えるようにしてみます。

sudoersファイルの下記の部分を探し、# %wheel ALL=(ALL) ALLの「#」を削除することで、コメントを解除(アンコメント)します。

// sudoersファイル
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

以上で wheelグループに所属する一般ユーザーがsudoが使えるようになりました。

sudoの使えるユーザーやsudoが使えるコマンドの状況を知りたいときは、下記コマンドで表示されます。

# sudo -ll


sudoの設定は以上です。

AUR(リポジトリ)を利用できるようにする

AURとはArch User Repositoryの略で、このリポジトリからパッケージをダウンロードしなければいけないときもあるため、利用できるようにします。

https://wiki.archlinux.jp/index.php/Arch_User_Repository

AURを利用できるようにするためには、まずbase-develパッケージをインストールしとく必要があります。そうしないと、うまくいきません。詳細はあとで書きます。

gitも必要なので、base-develとgitを一緒にインストールしておきます。

# pacman -S base-devel git

AURヘルパーのyayをインストール。

yayは人気らしく、新しく、メンテナンスもされてるらしいので、こちらを使用で問題なさそう。

yayについては、こちらの記事が参考になりました。

https://slacknotebook.com/testing-out-arch-linux-aur-helper-yay/

base-develとgitをインストールしたら、つぎは、下記のコマンドを実行します。

gitからyayをクローン(複製)する

# git clone https://aur.archlinux.org/yay.git


yayに移動

# cd yay

メイクすることでパッケージをインストール。

# makepkg -si

もし、base-develをインストールしていなかったら、ここで下記のようなエラーが出ます。

ERROR: Cannot find the strip binary required for object file stripping.

エラーが出た場合、base-develをallで再インストールします。

# pacman -S base-devel

続いて、メッセージが表示され、入力を促されます。ここで、

default=allなので、enterキーを押してインストールを続ける。
→改めてmakepkg -siコマンドを実行することで解決できます。

以上でyayのインストールが完了。ビルド用ファイルは不要なので削除しておきます。

# cd

# rm -rf yay

yayのビルドに必要なgoも実は自動的にインストールされているので、いらない場合は削除しておきます。

# pacman -Rs yay

makepkgでxzがAURパッケージの圧縮に使われていますが、シングルスレッドの設定となっているので、CPUを最大限に活用するように設定を変更しておきます。

# nano /etc/makepkg.conf

// makepkg.confファイルが開かれる
// COMPRESSXZを下記に変更
COMPRESSXZ=(xz -T 0 -c -z -) 

シングルスレッドとは、下記のような感じです。

CPUの性能を使って、マルチタスクした方が処理が速いのに、性能を生かさずにシングルタスクを行う感じです。シングルスレッドでファイルを圧縮すると、ファイルサイズがデカいときは処理に時間がかかってしまう原因となる感じです。

https://wa3.i-3-i.info/diff165thread.html

上記設定に関しても、archWikiが参考になります。


zshをインストール

bashよりも高機能なシェルのzshをインストールし使うように設定します。

pacman -S zsh


シェルをzshに変更

chsh -s $(which zsh)


chshコマンドでシェルを変更できる。-sでログインシェルに設定。
-lを使うと、インストールされているシェルのパス・一覧を表示できます。


必要最低限の設定を~/.zshrcファイルに書く。

nano ~/.zshrc
// .zshrc
autoload -U compinit; compinit
PROMPT='%n@%m:%~ %# '

exitして再度ログインしたら、zshシェルに切り替わります。

zshについてもArcWikiが詳しいです。




以降、また記事の内容をアップデートします。。


この記事が気に入ったらサポートをしてみませんか?