何故Debianを選ぶのか
私は元々、Ubuntuをメインで使ってきました。Debianは、Ubuntuがベースにしているディストリビューションで、Ubuntuのパッケージの多くはDebianプロジェクトで作られたものとなっています。
ただ、UbuntuはアップデートがアグレッシブなのでLTS版でもポイントリリースでカーネルバージョンが上がったり、一部のパッケージはaptではなくsnapで提供されるようになるなどの新しい試みが頻繁に行われたりと、なかなかカオスな状況になってきています。
私としてはLinuxは開発対象というよりはデスクトップOSという道具として使いたい立場なので、あまり変更がアグレッシブなものはちょっとなと思い始めました。
DebianはDebianで、かつてはフリーソフトウェアの理念に対して頑固すぎて公式インストーラにインストール時に必要になるデバイスファームウェアが含まれていなかったりといった使いにくい点がありましたが、2023年にリリースされた12(bookworm)から方針が変わり、公式インストーラにもデバイスファームウェアが含まれるようになってより使いやすくなりました。
こうした状況なので、しばらくはDebianで生活してみようかと思うようになりました。
両者の違いの所感としては、Ubuntuのほうが見た目のデザインなどは洗練されていて、インストール後すぐに使えるようになっていたり初心者に優しいところが多い気がします。Debianは、安定版の品質は高いように思いますが、インストール後にちょっとやらないといけないことが多かったりと、若干中級者向けくらいに感じるところはあります。
インストール
Debianは元々ソース非公開のファームウェアなどに対して厳しい立場で、これらをインストーラに含めない方針であった。このためUbuntuなどと比べるとデフォルトで一部のハードが動かなかったりユーザーとしては不便な側面があったが、Debian 12から方針変更があり、公式のインストーラにこれらが含まれるようになった。なので、公式サイトからインストーラを取得すれば問題ない。
https://www.debian.org/distrib/
Debianの場合、「小さな」インストーラと「大きな」インストーラが提供される。前者は必要なパッケージをインストール中にネットから随時ダウンロードする方式(netinst)で、後者は必要なパッケージがすべてISO内に含まれている方式となる。Debian Projectはどうも、昔からサーバ負荷の観点からnetinstを使用してほしいようである。
注意点としては、netinstはインストール時点でネットワーク接続が必要になるため、インストーラで認識できる標準的なネットワークデバイスを搭載している必要がある。どのデバイスがインストーラで認識できるかは試してみないとわからないものの、経験上有線デバイスは利用できる可能性が高く、WiFiはダメな場合が多い。
ネットワークデバイスをインストーラ時点で認識できないようなら、フルのDVDイメージをダウンロードするのが良い。
今どきなので、DVDイメージなどと書かれていてもUSBに書き込んでインストールするのが一般的である。Windows環境ならRufus、MacならBalena Etcherを利用するのが簡単である。
Ubuntuと異なり、インストールしたいデスクトップ環境はインストール中に選ぶ形式になっている。個人的には、MATEが好みである。
※ MacBook Air 11(2013)で発生した問題
Debian11と12のインストーラで、内蔵SSDを認識できない問題が発生した。インストーラ起動時のカーネルオプションに以下を追加することで解決した。
intel_iommu=off
初期設定
sudoを使えるようにする
Ubuntuなどと異なり、インストール時に作成したユーザーでsudoがデフォルトで利用できない。このため、これを使えるようにする設定をまず行う。
XXXはインストール時に作成した一般ユーザーを指定すること。
$ su -
# adduser XXX sudo
ホームディレクトリ内のデフォルトディレクトリ名を英語にする
多くのLinux系ディストリビューションではホームディレクトリ内のデフォルトディレクトリ名(ドキュメント、ダウンロード、など)が日本語になっている。これは後にCUIを利用する際に非常に不便になるので、インストール直後に変更しておくことをおすすめする。
$ LANG=C xdg-user-dirs-update --force
この後、日本語のディレクトリの手動削除を行う。必要な中身が入っている場合には英語のディレクトリのほうに移すこと。
リポジトリ設定
ここがDebianのちょっとややこしいところ。インストールの方法(フルのDVDイメージか、netinstかなど)によって、デフォルトで設定される内容が異なり、デフォルトでインターネット経由のapt installができない状態の場合がある。aptで見つかるはずのパッケージが見つからない場合などは、ちゃんとnon-freeまで追加されているか確認が必要である。
参照先のリポジトリの設定は、/etc/apt/sources.listで行う。
一般的な設定例
まず、一般的に記載するべき内容は以下になると思われる。とりあえず以下をブチこんでおけば、一般的な用途であれば十分である。
もともとある行については、コメントアウトか削除して以下の行だけが有効になるようにしておく。backportsについては、コメントアウトした状態で入れてある。
deb http://ftp.jp.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb http://ftp.jp.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb http://ftp.jp.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware
内容の説明
以下は公式サイトの記載を参考に、私なりに理解をまとめたもの。
公式マニュアルには、各行は以下の意味合いであると記載されている。
deb http://site.example.com/debian distribution component1 component2 component3
deb-src http://site.example.com/debian distribution component1 component2 component3
最初のdeb, deb-srcの部分は、debがバイナリパッケージリポジトリ、deb-srcがソースパッケージのリポジトリを表している。ソースパッケージは、自分でパッケージにパッチを当てたいなどの特殊な場合に使うものなので、通常はdebの行だけ追加しておけばオッケーである。
distributionのところには、単にバージョンのコード名が入るわけではなく、バージョンのコード名+以下のソフトウェアソースの種類を記載することになっているようである。
ソフトウェアソースの種類 | distributionの記載(bookwormの場合) | 説明 |
(無印) | bookworm | 現在のリリースを構成するソフト |
updates | bookworm-updates | 次回のポイントリリースを待てないアップデート |
security | bookworm-security | 頻繁なセキュリティアップデート |
backports | bookworm-backports | テスト版(testing)などから安定版(stable)にバックポートされてきたソフトがあるリポジトリ。より新しいバージョンのソフトが利用できるが、多少不安定な可能性がある。 |
リポジトリの種類は、backportsをどうするかだけが悩みどころで、後は追加しておいて良いと思われる。backportsは、安定版リリースよりも新しいパッケージを利用したい場合だけ追加すれば良い。(ただ、優先度は低く設定されているためbackportsのパッケージをインストールしたい場合には、明示的な指定が必要とのこと。)
URLは、security以外は基本的に国内のミラーサイトでよく、securityだけは上流のURLを指定する必要があるようである。
ちなみに、USBやDVDなどからインストールした場合、以下のようにソースとしてインストールメディアが指定された状態になっている。
deb cdrom:[Debian GNU/Linux 12.1.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20230722-10:49]/ bookworm main non-free-firmware
多くの人はインストール後のパッケージ取得はインターネット経由で行いたいと思われるので、こちらは削除orコメントアウトしてOKである。
componentsはソフトウェアの区分のようなもので、以下が存在している。
ソフトウェア区分名 | 説明 |
main | Debian Projectのフリーソフトウェア方針に完全に則ったソフト。 |
contrib | Debian Projectのフリーソフトウェア方針に則ったソフトだが、そうでないソフトに依存するもの |
non-free | Debian Projectのフリーソフトウェア方針に則っていないソフト |
non-free-firmware | Debian Projectのフリーソフトウェア方針に則っていないソフトのうち、インストーラで必要とされる可能性があるもの(Debian 12以降で追加された) |
一般的なデスクトップ用途で特に宗教上の理由がない人には、ソフトウェア区分は全部追加しておいて問題ないと思われる。
各種カスタマイズ
MacBookシリーズでメディアキーと標準ファンクションキーを入れ替える
Macでは、デフォルトでファンクションキーはメディアキー(音楽再生や音量増減など)に割り当てられている。これを標準ファンクションキーとして使えるように設定する。
まずは、設定が可能であるか一時変更で試してみる。
$ su -
# echo 2 > /sys/module/hid_apple/parameters/fnmode
※ 2024/10/13: MBP2017ではパスが以下のとおり異なっていたことを確認。
# echo 2 > /sys/module/applespi/parameters/fnmode
これで機能が入れ替わっていたら、以下の手順で恒久化する。
このカーネルモジュールの都合で設定ファイルでの設定ができないようなので、起動時に上記コマンドを自動実行するように設定する。このために、rc.localを利用する。
rc.localは昔から起動時に自動実行されるファイルとして存在していたが、近年のLinuxではデフォルト無効にされている。Debian 12でも無効になっていて、ファイルは存在すらしていなかった。
以下の通り、ファイルを作成し、編集を行い、実行権限の付与を忘れずに行う。
$ sudo touch /etc/rc.local
$ sudo vi /etc/rc.local
$ sudo chmod +x /etc/rc.local
rc.localを新規作成した場合には、以下を書き込む。何らかの理由ですでにrc.localが存在していた場合には、exit 0の行より前にechoの行だけ書き込む。
#!/bin/bash
echo 2 > /sys/module/hid_apple/parameters/fnmode
exit 0
起動時にrc.localを自動実行するサービスを有効化する。
$ sudo systemctl enable rc-local.service
これで再起動して設定が恒久化されていたら成功である。