ArchLinux開発環境構築
コメント
以下の記事はとても長い。
なので、Dockerを使った、devkit によるコマンド一発で、私と同じ環境が作れるものを開発した。なお、ディストロ全体の容量は10GBほど。以下は、ほぼほぼdevkitの Dockerfile に記述している内容と同じである。
開発環境構築
ネット確認
応答があれば、ネットにつながっている。
ping google.com
Localeの設定
echo LANG=en_US.UTF-8 > /etc/locale.conf
# /etc/locale.gen、最上行に追加
tee -a /etc/locale.gen <<EOL
ja_JP.UTF-8 UTF-8
en_US.UTF-8 UTF-8
EOL
locale-gen
もし、Localeエラーが出たら
en_US.UTF-8 UTF-8の行がコメントアウトされていないことを確認
sudo vim /etc/locale.gen
sudo pacman -S glibc
Timezoneの設定
現在のタイムゾーンを確認
timedatectl status
利用可能なタイムゾーンを一覧表示
timedatectl list-timezones
タイムゾーンを設定
sudo timedatectl set-timezone Asia/Tokyo
pacman
キーの初期化
GnuPG
キーリングを初期化し、以降でダウンロードするパッケージが改ざんされていないことを確認し、開発者やメンテナーによって署名されたキーを使うことで、pacman
が安全にパッケージを検証することができる。
pacman-key --init
ArchLinux公式キーの登録
Arch Linuxの公式パッケージメンテナーの公開鍵をキーリングに登録。これにより、公式リポジトリからダウンロードしたパッケージ署名を検証できる。
pacman-key --populate archlinux
基本パッケージと開発ツールのインストール
pacman -Syyu base base-devel git gvim wget unzip reflector go glibc
一部、かいつまんで説明する。
-
base
最小限のArch Linuxシステムを構成するために必要な基本的なパッケージのグループ -
base-devel
ソフトウェア開発に必要な基本的なツールが含まれるグループ(gcc
,make
,binutils
など) -
reflector
Arch Linuxのミラーサイトのリストを生成し、最適なミラーを選択するためのツール
システム全体のパッケージアップグレード
pacman -Syu
ユーザー作成およびパスワード設定
<user>となっているところは各自ユーザー名に置き換えてほしい
# rootパスワード設定
passwd
useradd -m -g users -G wheel -s /bin/bash <user>
passwd <user>
pacman -S sudo
# wheelグループにNO PASSWDの全権限付与
# %wheel ALL=(ALL:ALL) NOPASSWD: ALLの行をコメントアウト
vim /etc/sudoers
AURヘルパーのインストール
非公式レポジトリであるAUR専門のパッケージマネジャーをインストールする必要がある。今回は、yay
を紹介するが、他にも、paru
, pikaur
, aura
, cower
などがある。
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
その他ソフトウェア
インストール
sudo pacman -S kitty starship w3m lazygit tree unzip neovim noto-fonts-cjk
説明しよう。
- neovim
私が愛用しているエディター、高性能、多機能、己と一緒に成長する最強のエディター - kitty
ターミナルエディター。画像も表示できる。キーマップも多彩。Waylandとの互換性が良い。 - starship
プロンプトジェネレーター。あなたのターミナルを柔軟にカスタマイズできる。 - w3m
ターミナルでのブラウジングが可能なTUI。kittyのimagemagick
と組み合わせれば、ブラウジング中に画像も見れちゃう。 - noto-fonts-cjk
日本語フォント。
pyenvによるpython環境構築
pyenvのインストール
以下、pyenvで、tkが必要になることがあるため。
sudo pacman -S tk pyenv
環境変数の設定
(既に設定している場合はスキップ)
# 必要な設定を追加
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc
適切なPythonバージョンをインストール
例として、Python 3.10.12をインストールする。
# Python 3.10.12をインストール
pyenv install 3.10.12
# グローバルにPython 3.10.12を使用するように設定
pyenv global 3.10.12
確認
# Pythonバージョンを確認
python --version
詳しくは、以下を参照。
https://github.com/pyenv/pyenv?tab=readme-ov-file#installation
rustupのインストール
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
詳しくは、以下を参照。
https://www.rust-lang.org/ja/tools/install
dockerのインストール
sudo pacman -S docker docker-compose
githubシークレットサービス
git-credential-manager
を使用すると、Gitでのリモートへのプッシュ時に、ブラウザによるログイン認証が行われる。
私は以下に書いてある内容を環境毎に入力するのが面倒だったので、専用のbashファイルを作って、実行するようにしてます。
興味のある方は、verazza/dotfiles:/.global/bin/gauth を見てみてください。
yay -Syu git-credential-manager-core-extras
git config --global credential.helper 'manager'
git config --global credential.credentialStore secretservice
名前とメールアドレスを登録してなかったら以下
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
各レポジトリでHTTPS URLになっていることを確認
なっていなかったら、
git remote set-url origin https://github.com/username/repo.git
java/scala環境構築
どちらもsdkmanを使用してセットアップしていく。
まずは、java環境を作る。
例として、oracle製のjava17をインストールする。
curl -s "https://get.sdkman.io" | bash
source ~/.sdkman/bin/sdkman-init.sh
sdk install java 17.0.12-oracle
なお、別のjavaバージョンが知りたい場合は、以下を実行して、見ることができる。
sdk list java
次に、javaの後継と言われているあの言語、scala環境を作る。
curl -s "https://get.sdkman.io" | bash
source ~/.sdkman/bin/sdkman-init.sh
sdk install sbt
yay -S coursier
coursier setup -y
coursier install metals
coursier
とmetals
は、Neovimのscalameta/nvim-metalsプラグインで使う。
Neovimの設定
以下の私のNeovimの設定レポジトリを紹介する。ぜひ見てほしい。
https://github.com/verazza/nvim
kittyの設定
w3mでブラウジング中に画像を表示するための設定
sudo pacman -S imagemagick
あとは、w3mの設定ファイルを変更する。
~/.w3m/config
...
inline_image_protocol 4
...
これで、インライン画像方式がkitty(ImageMagick)を使うものになる。
nvmによるnpm/node環境構築
例として、nvmバージョンv0.40.2
で、nodeバージョン22.12.0
をインストールする。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
nvm install 22.12.0
nvm use 22.12.0
dotfilesのインポート
私の環境では、設定ファイルはすべてGithubのレポジトリ: verazza/dotfilesにまとめているので、各ソフトウェアのドットファイルを移植するだけで済む。
GUI環境の構築(任意)
sudo pacman -S acpid xorg sddm plasma konsole
sudo systemctl enable sddm
私は、KDE PlasmaしかArchLinuxでは試したことないが、使いやすいと感じている。同時にダウンロードしておいたほうがいいものを紹介しよう。
sudo pacman -S power-profiles-daemon
これにより、GUI操作で電源モードをパフォーマンス・バランス・省電力に変更できる。
最後に
書いてて思った、面倒だ!!!
参考