初回起動とソフトウェアのインストール

はじめに

続きです
前の記事: Web開発環境をManjaro Linuxで構築してみる 1/3 (Linuxのダウンロード~インストール)

Manjaro Linuxが無事起動しました、とてもGoodな見た目に最初から組み上がっていて良いです。
が日本語は打てませんし、zshは個人的にあんまり好きじゃなかったり、swap領域を作っていなかったり、そもそもプリインストールのソフト以外入ってないという状況はWindows、macならスタート地点である、ということを比較対象がArchLinuxだったことから忘れていたりします。
ですので、ここからが長いです

Linux自体の設定関連

シェルをbashにする

terminal

manjaroインストール時のシェルはzshです。
個人的に特殊文字があると見づらいと感じてしまうので、bashに変更しています。

chsh -s /bin/bash

swapファイルを作る

rootで作業します。
swapファイルを作成し、権限を600に設定します。(swapファイルが誰でも読めるのはダメです)

dd if=/dev/zero of=/swap bs=1M count=16777216 status=progress
chmod 600 /swap

swapの初期化、有効化、fstabに書き込み永続化します。

mkswap -U clear /swap
swapon /swap
sudo echo /swap none swap defaults 0 0 >> /etc/fstab

ソフトウェア関連のインストールとセットアップ

store

ManjaroLinuxではpacmanというパッケージマネージャと、AURからのインストールではyayというAURヘルパーを使ってソフトをインストールできます。

また、「ソフトウェアの追加と削除」を使うとアプリストアのような感覚でGUIでpacmanとyayの操作ができます。
内部的にはpacmanと同じですが、検索とインストール済みのソフトの一覧が見やすいのでたまに使っています。

pacmanミラーを最適化する

sudo pacman-mirrors --fasttrack

インストール直後だとパッケージマネージャが一番近いサーバーを見てくれません。
最適化して、近いリージョンのミラーサーバーを優先的に使うようにします。

pacman -Syuする

sudo pacman -Syu

更新可能なパッケージを全てアップグレードするコマンドです。
新しいソフトウェアを入れる前と定期的に叩く、魔法のコマンドくらいの認識でも実用性上問題はないと思います。

オプションの意味を調べたところ、しっかり1文字ごとに意味がありました。

  • S
    • リモートとパッケージを同期する
  • y
    • リモートとパッケージデータベースを同期
    • 依存関係のデータベースを同期するので pacman -Sy としないでくださいと言われているのは、データベースと実際にインストールされているものが食い違ってしまうためです。
  • u
    • ローカルのパッケージをアップデートする

pacmanから必須なソフトを入れる

個人的なセットアップ手順と言っても良さそうなソフト群です。

sudo pacman -Syu # 先程行ったがインストール前に-Syuする習慣を忘れないために何もないことがわかっても叩く
sudo pacman -S
    yay
    vim
    fcitx5-im
    fcitx5-mozc
    pyenv
    nvm
    bash-completion
    xdg-user-dirs-gtk
    imwheel
    Tilix
  • yay
    • AURからソフトウェアのインストールをする際に必要なもの
  • vim
    • 流石に使うので...
  • fcitx5-im, fcitx5-mozc
    • 日本語入力のために必要です
  • pyenv, nvm
    • pythonとnodeは最初からpyenvとnvmで管理したいと思っています
  • bash-completion
    • zshよりbash派なので、bashのcompletionを入れる
  • xdg-user-dirs-gtk
    • 日本語でインストールすると、ダウンロード等のディレクトリ名が日本語なのでそれを修正する
  • Tilix
    • 分割等の機能があるターミナルエミュレーター
  • imwheel
    • gnomeのデフォルトだとマウスのスクロール量が足りないので調整するためのソフト

AURから必要なソフトウェアを入れる

AURについて

AURはバイナリで配布されているソフトウェアとそのビルド方法が書かれたファイルをパッケージ化したものを、ユーザーが投稿して管理されているリポジトリです。

ライセンス的に問題があれば消されるようですが、そうでないものは何でもかんでもあったりします。
使いたての頃、MinecraftのMODサーバーのビルドツールを見つけて、正直これは使っていいのか?という気分になりました。

AURではなくpacmanで

  • VSCODEのOSS版のCODE-OSS
  • ChromeではなくChromium

もインストール可能ですが、

  • VSCODEはMicrosoftのプラグインを使いたい
  • Chromeは、Googleアカウントの同期機能を使いたい、
    という理由でAUR版のVSCODEとChromeを選択しています。

アップデートで配布バイナリが変更された場合でも、AURパッケージがメンテナンスがされている限り

yay -Syu

でpacmanと同じ感覚で再ビルドとアップデートを行えるので、自分でビルドするより管理が楽になっていると思います。
反面利用者が少ないソフトウェアでメンテナンスがされておらず、アップデートされなかったり、同じソフトウェアのパッケージが複数あり1つ以外放置されていたりということもあります。
欲しいなら、自分がメンテナーになってくださいということだと思います。

ビルドに必要なものをインストールする

ubuntuのbuild-essential的なものがあるかもしれないので、また今度調べようと思っています。
今回はmakeとpatchを直接指定して入れました。

pacman -S
    make
    patch

インストールするソフト

  • VSCODE
  • GoogleChrome
  • slack-desktop

    コマンド
yay -S google-chrome
yay -S visual-studio-code-bin
yay -S slack-desktop

pipとpipから必要なソフトウェアをインストールする

python-1

manjaroのインストール直後だと、pythonはインストール済みですが、pipが入っていない状態だと思いますので get-pip.py でpipをインストールします。

curl https://bootstrap.pypa.io/get-pip.py | python
  • awscli
    • awsのコマンドラインツール

2022/10/24追記
pip3でインストールするとmanjaro linuxのパッケージ管理とpython関連のライブラリが衝突することが発生するので、極力pacmanかyayでインストールする方が望ましいです

aurからインストール

yay -S awscli

pip3でインストールする場合(あまり望ましくないです)

pip install awscli

nodeをインストールする

node

一旦デフォルトは lts/* で使います。
最近はnodeを使うプロジェクトでのバージョンは docker で管理して、nvmは不要説も耳にするような気もしますが、途中からnvmにするほうが3倍面倒なので、最初からnvmで管理するようにしました。

nvm install --lts
nvm use lts/*

不要なプリインストールソフトを削除する

削除コマンドは

pacman -R [パッケージ名]

でできますが、せっかくmanjaroにはソフトウェアの追加と削除というソフトが入っているので、それを使って「インストール済み」から不要なものを消します。
ソリティアとかマインスイーパーとかも入っていたので消しました。(ごめんね)

いらないソフトウェアを消したことによって孤立したパッケージ(依存関係がなくなり、どこからも使われなくなったソフトウェア)が出てくると思うので、それも削除するときれいになります。

孤立パッケージを削除するシェル

pacman -Rns $(pacman -Qtdq)

感想

調べながら手動でやったので時間かかってしまっていますが、次回以降はセットアップスクリプトを作っても良いのではないかなと思いました。
本当にプリインストールのソフト群がユーザー向けになっていて、onlyoffice、マインスイーパー、音楽プレーヤーがあって驚きでした。
ちょっとプリインストールのソフトが多すぎかな?とも思いましたが、そう思う人はミニマルインストールをするか、ArchLinuxを使いましょうってことです、きっと。

次回

2022/10/21に公開予定です
次回ソフトウェア各種の設定、Gnomeの見た目日本語入力について書くことになると思います。
次の記事: Web開発環境をManjaro Linuxで構築してみる 3/3 (各種ソフトウェアのセットアップ)