0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

私的ArchLinux開発環境構築

Last updated at Posted at 2025-04-28

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

coursiermetalsは、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操作で電源モードをパフォーマンス・バランス・省電力に変更できる。

最後に

書いてて思った、面倒だ!!!

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?