Chap-13. Debian を試用 及び Ubuntu の利用範囲拡大

 このチャプタの初稿は2018-11 ですが、2019-09 に Debian が10.1 に上がってとても使いやすくなったので、書き直しました。
Debian については Chap-14. Chap-17. Cha-18. と同じように、以下の3つの視点で使いやすいかどうかを、詳しく試してみました。
また、2018-11 に Ubuntu の利用範囲拡大を図り撤退したときの感想とか印象を最後に書いておきます。

ただし、このウェブサイトは PC-UNIX Room と言っているとおり、主にa. と b. の視点重視です。

Sec-1.インストール(Debian)
Sec-2.日本語入力の設定(Debian)
Sec-3.インストール後、最初に試すこと(Debian)
Sec-4.IPアドレスとリゾルバーの設定(Debian)
Sec-5./etc/rc.local は簡単に使えるか(Debian)
Sec-6.カーネルのアップデートは簡単か?(パケットフィルタは普通に使えるか?)(Debian)
Sec-7.デーモンのコントロール(Debian)
Sec-8.GUI を落としてコンソールで簡単に利用できるか?(Debian)
Sec-9.Dat ドライブは普通に使えるか?(Debian)
Sec-10.シリアル回線使ってルータ管理できるか?(Debian)
Sec-11.Apache、postfix、guile、lua は簡単にコンパイル・インストールできるか?(Debian)
Sec-12.Windows 代替としての利用(ATW)(Debian)
Sec-13.全体を通しての印象(Debian)
Sec-14.Ubuntu では撤退


Sec-1.インストール (Debian)

 使うのは、メモリ8GB、SSD 120GBです。
インストール自体の詳しいことはあちこちのウェブサイトにあるので、書きません。ポイントだけ。
Debian のインストーラはパーティション分割の自由度が高いです。容量も自由に設定できます。(Devuan も同じツールです)
グラフィックインストーラでも、たくさんパーティションが切れますが、最近は/、swap、/home の3つというのをよくやっています。今回も、そうしました。やろうと思えば、他に /tmp、/var も切れます。それぞれの容量は適当に決めました。
 今回は試していませんが、Devuan も同じインストーラで、CUIシステムとしてのインストールもできました。こっちも、同様にできると思います。やろうと思えば、24H運転のサーバ向けインストールも出来そうです。
先に進みます。

 インストールした後、私は最初に apt の設定を変えます。
デフォルトでは contrib、non-free を排除しています。これも有効化しておいたほうが便利です。特に、spetcre-meltdown への対応版 intel-microcode を入れるなら、必須の変更です。
/etc/apt/soureces.list をエディタで開いて、各行末に contrib non-free を加えるだけです。



Sec-2.日本語入力の設定 (Debian)

 このディストリは最初から日本語入力が完備していて、ちょっとした設定だけで日本語入力できます。
(うちの場合)右下に日本語入力の小さなツールが表示されるので、mozc を選び、入力をひらがなにしたら、日本語入力できました。
なお、Devuanでやったように設定すれば、atok風に ctrl + space で日本語入力オンオフできます。
スペースバーのすぐ左にある「無変換」キーが、最初は日本語入力オンオフに割当てしてあります。これだと誤操作(スペースバー押すつもりで、一緒に「無変換」キーを押しちゃう)で、しばしば日本語入力になってしまいます。これを atok 風に調整すれば「無変換」キーを無効化できるので誤操作がなくなります。




Sec-3.インストール後、最初に試すこと (Debian)

 普通は、ユーザ登録とか、各種パッケージソフトのインストールとか、使いやすくすると思います。
でも、ここでは本チャプタ最初に書いた a. や b. の使い方が普通にできるか?普通の UNIX システムらしく管理・設定ができるかを中心に試します。
1番目から7番目までと10番目は私が24H運転のサーバに求める必須事項です。(上記のa. 利用)
8、9、11番目はLAN 内で UNIX システムを使うときの、私の必須事項です。(上記のb. 利用)

以下、順に試していきます。




Sec-4.IPアドレスとリゾルバーの設定 (Debian)

 インストール直後はルータの設定上、Debian が DHCP クライアントになってしまいます。普段は静的アドレスを使います。
なのでやることは、/etc/network/intefaces の編集です。このファイルに、IPアドレス関係のことと default-gatewy を書きます。
我が家の debian では、enp2s0 が認識されたインターフェイスです。なので、例えば以下の具合に書きます。

## sample of /etc/network/interfaces (関係箇所のみ)
##
auto enp2s0
iface enp2s0 inet static
      address       192.168.0.1
      netmask       255.255.255.0
      gateway       192.168.0.254
##
## 192.168.0.254 はヤマハルータでゲートウェイ、かつ、これにネームサーバやらせてます。

普通は、これで ifup と ifdown を使えば、所望のアドレスに変わるはずですが、systemd が入ったOSなので、多分、それはうまくいかないだろうと思って、reboot しました。
無事にIP address が変わります。 $ ip a コマンドで確認出来ます。


 次に、/etc/resolv.conf ですが、自分でIP address を変えてもリゾルバーに影響していません。前のように、突然サーチリストが消えちゃったりしていません。
更に、自分でエディタを使って /etc/resolv.conf を編集しリブートすると、ちゃんと普通に設定に反映されます。
いかにも UNIX システムらしい管理が出来ます。ありがたいです。

 以前のバージョン(9.X)では、自分でアドレスを上記のようになおして reboot すると、リゾルバーが変になってしまいました。
なので「ああ、自分でアドレスを変えてはダメなんだ」「GUI を使って設定しないとダメなんだ」と理解していました。
10.1 では、上記のように IP address を設定しても、リゾルバーの設定(/etc/resolv.conf)に影響しなくなりました。もちろん、自分でリゾルバーの設定も編集できます。ずいぶんと改善されています。
ただし、systemd がちょっとだけ不満を表明しています。エディタで /etc/network/interfaces を編集してリブートすると、右上のネットを示すマークが?になっています。更に、これをクリックすると「有線管理対象外」なんて表示が出ます。
ようするに systemd が「勝手にやってろ、俺は知らん」って言ってるんですね(笑)

netstatus

net-systemd

これぐらいの不満表明だけで、他に何もsystemd が悪さをしないなら許容範囲のことです(^^)




Sec-5./etc/rc.local は簡単に使えるか (Debian)

 簡単に使えるか、という質問に対しては微妙な答えです。ちょっとややこしいやり方。
でも、一応できます。以下のサイトを見て、そのとおりにやったら /etc/rc.local が無事に動きました。


"Linux : How to add rc.local in Debian 9"
https://www.itechlounge.net/2017/10/linux-how-to-add-rc-local-in-debian-9/

この中で、以下のファイルを作れと書いてあります。


/etc/systemd/system/rc-local.service (file)
----------------
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
-----------------

要するに上のファイルは、systemd 流儀の管理ファイルです(Unit)。更に、rc.local を以下のように仮りおきします。


/etc/rc.local
----------------
#!/bin/sh -e
#
#
#
exit 0
#

これでモードを755にしておいて、以下のように自動スタートを有効化します。


# systemctl enable rc-local.service

その後、スタートさせます。これはOSリブートせずに、現状でスタート。


# systemctl start rc-local.service

で、実際にうまくいっているか、status を調べます。


(check status)
# systemctl status rc-local.service

きっと、有効だという表示がでます。これで reboot すれば、無事に /etc/rc.local が動くはずなので、後は自分が動かしたいもの(きっと、外部からソースを持ってきて野良コンパイル・インストールしたデーモン、笑)を /etc/rc.local の中に書き込むだけです。


 以前(2018-10頃)、私は debian や Ubuntu で /etc/rc.local を走らせようとしたのですが、systemd 関連の設定ファイルをうまく編集できず、systemd 流儀で動かすことができませんでした。
多分、管理ファイルの名前を rc-local.service ではなく rc.local.service にしていて、それが原因かなあ・・・と思っています。今となっては、分かりませんけどね。
それにしても、/etc/rc.local を走らせるだけで、こんなにもややこしいことをやるのは、歓迎出来ないです。
どうせ UNIX Geek がいじりだしたら、/etc/rc.local が必要になるに決まってます。なので、ディストリ側で最初からこれを設定して、rc.local を動かしておいて欲しいです。




Sec-6.カーネルのアップデートは簡単か? (パケットフィルタは普通に使えるか?)(Debian)

 上記の a. の使い方をやるなら、カーネルはなるべく(極力) kernel.org からソースを持ってきて自分でコンパイル・インストールするのがベストです。
それが、一番はやくバグフィックスやセキュリティフィックスに対応できます。ディストリから提供されるのを待っていると、大抵一ヶ月以上遅れます。ひどいと半年とか・・・・
一方、b. や c. で使うなら、あえてカーネルアップしなくても、そのまま使い続けて問題は無い様な気がします。
(ただし、ここ一年半くらい話題の spectre、meltdown については LAN 内部で使う PC でも対応しておいたほうが良いです)

 今回カーネルアップを試すのに、ディストリから提供されるアップもやってみたかったのですが、たまたま? 今(2019-09 上旬)は、その対象カーネルがなさそうでした。なので、自前でコンパイル・インストールだけ、試しました。
結論を書けば、1回目のコンパイルは少し苦労しましたが、やり方がわかれば大変ではありません。2回目以降は簡単です。
10.1 バージョン用のカーネルは、2019-09 上旬時点で 4.19.75 が最新ですので、それを使います。Debian 10.1 は基本的に 4.19 系列のカーネルです。
以下、コンパイル手順です。

まず、カーネルをコンパイルするのに必要なパッケージを入れます。何度か make を試みてエラーが出るたびにパッケージを入れました。なので、最終的にこれだけ入れたはずですが、ひょっとすると記載してる中に、一部無駄なパッケージが混ざっているかもしれません。細かいことは、気にしないでください(汗)。もちろん、make、gcc、g++ などは入っていると仮定しています。

# apt install libncurses-dev bison flex autoconf autoconf2.64 libssl-dev libelf-dev

で、.config ですが、make menuconfig やって出来た .config (標準的なやつ)を使うか、あるいはディストリについている config ファイルを使います。
やってみて確認するしかないですが、もしもどちらかでコンパイル失敗したら、きっともう一方でうまく行くと思います。
ディストリのものを使う場合は /boot/config-4.19.0-6-amd64 を /usr/src/linux/.config にします。(コピーします)
どちらを使うにせよ、第一回目のコンパイルでは以下の2行の修正が必要です。修正しないとコンパイル出来ません。

CONFIG_SYSTEM_TRUSTED_KEYS=""    (8254行目付近、""の中を空にする)
# CONFIG_MODULE_SIG         (854行目付近、コメントアウトする)

コンパイルは、この後は基本的に make やって make modules_install やって make install です。
なお、kernel-4.19.75 から kernel-4.19.76 に上げるときは、普通に make menuconfig やって出来た .config を使うことになると思います。その場合、2行の修正は必要ありません。
こんな感じなので、とりあえずオケです。


パケットフィルタも問題なく、オケでした。







Sec-7.デーモンのコントロール (Debian)

 Debian は systemd なので、systemctl コマンドを使うようです。あまり気乗りしないけど、やってみると割合とシンプルでした。
まず、nmap を入れておいて、nmap localhost やって動いているデーモンを見ます。(開いている無駄なポートを閉じる)
また、sytemctl -t service で動いているサービスを見ます。
例えば cups が動いてそれを止めるなら、更に ps -ax で名前を見ておきます。サービス名が確認できたら、その後

# systemctl disable cups.service
# systemctl disable cups-browsed.service

とすれば、無効化できるようです。もう一度有効化するなら

# systemctl enable cups.service
# systemctl enable cups-browsed.service

のようです。後ろの方にある .service は省略可能みたいですが、ウェブサイトによっては「付けるべきだ」と書いてあったりします。
.service が付いているのが正式の Unit 名らしいです。
Unit の設定ファイルは /etc/systemd/system/ の中に入っているので、見に行ってチェックしてみると良いと思います。ここでもサービス名が確認できます。




Sec-8.GUI を落としてコンソールで簡単に利用できるか? (Debian)

2019-11-05 訂正です
 簡単です。
以下のコマンドを使えば、すぐに「GUI 立ち上げー CUI 立ち上げ」の切り替えが出来ます。

CUIに切り替え
# systemctl set-default multi-user.target

GUIに戻すなら、

# systemctl set-default graphical.target

です。2019-10 に書いた時は、このコマンドの使い方を知らずに、強制的にファイルを mv することを書きました。
でも、調べればあるもんです。間違えていました。失礼しました。

上記のコマンドはリンクを直してるみたいですので、強制 mv するのと似たようなことですけど・・・



Sec-9.Dat ドライブは普通に使えるか? (Debian)

 問題なく使えます。今、私はUSB-DAT72 ドライブを使っています。(たまに)
ドライブを USB に接続して電源を入れると、/dev/st0 が自動的に出来ます。後は

$ tar tvf /dev/st0

などとやると、DAT72 テープに収めたファイルが読めます。当然、書き込みも出来ます。オケです。

興味の無い人はホントに興味無いと思いますが、テープメディアは割合と手堅いバックアップ方法です。個人的に(趣味的に)やってます。
どうせ趣味の宅 UNIX だし。




Sec-10.シリアル回線使ってルータ管理できるか? (Debian)

 出来ます。問題ないです。

 Debian 9.x ではシリアル回線がちょいとおかしくて、一旦  chown root.root /dev/ttyS0 などとしないと使えませんでした。バグがありました。また、使えるようになった後でも、USBに繋いだシリアル回線を経由するときは速度指定(-s 9600)をする必要がありました。

 Debian 10.1 では chown はやる必要がありません。バグは修正されて、無くなっています。
また、USBに繋いだシリアル回線は速度指定しなくても使えます。(多分、自動的に速度調節している)
大変良好です。





Sec-11.Apache、postfix、guile、lua は簡単にコンパイル・インストールできるか? (Debian)

 全部まとめて、書いておきます。
Apache、Postfix を自分でコンパイル・インストールしたいのは上記 a. の利用です。セキュリティやバグフィックス版を早くサーバに入れたいということです。
guile、lua は上記 b. の利用です。単に、最新のものを使いたいというだけの理由です。
結論はオケです。Debian、Ubuntu、Devuan、MXLinux、antiX 全部同じです。Chap-7. に書いたとおりでいけます。





Sec-12.Windows 代替(ATW)としての利用 (Debian)

 Windows 代替(ATW)として使いやすいかどうか、私の印象を少しだけ書いておきます。つまり、冒頭に書いた c. の使い方。

プリンター、スキャナ
 最初から、私の機器(Epson PX-048A)が wifi 経由で認識されます。GUI で簡単に設定できます。その後は wifi 経由でプリンタがきれいに出力できました。その後スキャナを試すと、こちらも wifi 経由で問題なく使えます。
すごく良好です。

ブラウザ
 デフォルトで Firefox が入ってます。
こちらの方はあまり詳しくありませんが、user agent switcher ってのを入れると動画再生がうまくいくとネットで見て、試してみました。
そうしたところ、この Firefox で問題なくアマゾンプライムの映画が視聴出来ました。調子良いです。ただし youtube で音楽を聞く(見る)時は元に戻さないとダメですね。

メーラ
 sylpheed がソフトウェア(GUI のパッケージインストーラ)で入ります。うまく動きます。快調です。

オフィス
 Libre-Office がデフォルトで入っていて、全然問題なしです。

画像ソフト
 Gimp がソフトウェアでインストール出来ます。問題なく動きます。十分良好です。

パッケージのアップデート
 ソフトウェア(パッケージインストーラ)というアップデータが、アップデートの監視をしてくれます。あるいは apt を使ってコンソールでもいけます。# apt update と # apt upgrade で、問題なくアップデート出来ます。十分良好です。

以上です。


これだけのソフトウェアが動けば、私なら満点ですが、こだわる人は色々なソフトを使うでしょう。なので、c. の利用に関する私の評価は、ちょっとユルめだと思ってください。





Sec-13.全体を通しての印象

 このセクションは私の独断的、個人的な印象のみです。

 2018年11月に試した時(Debian 9.X)は、「使いづらいOSだなあ」という印象でした。勿論、その原因は systemd で、UNIX っぽさが薄れて Windows クローンみたいな感じでした。
それが、今回 10.1 になって良くなったと思います。前よりも UNIX っぽいものに戻りました。
「できればもう一歩、後ちょっとだけ元の UNIX っぽいOSに戻ってほしい」と思っています。
でも今の状態でも「これなら常用OSにして使ってみようか」という気になります。

以下、個別に書きます。
a. の利用について・・・・・・・とても良好になりました。更に望むことは、最初から /etc/rc.local を走らせておくこととです。その点ができれば満点です。
b. の利用について・・・・・・・全然問題なく、良好です。
c. の利用について・・・・・・・こっちもかなりイケてると思いますが、正直言うとあまり詳しくありません。パッケージが随分沢山あるんだから、上等ですよね(笑)


systemd を一言でイメージすると「ブートローダ兼OS管理のラッパー」と思っています。私の個人的印象です。
少なくとも、systemd はOS本体ではなさそうです。管理を一元化するための wrapper は、OS本体の外側を包んでいるだけ。
OS本体は依然として kernel.org が提供するカーネル、GNUが提供する libc ライブラリやコマンド群、X.orgが提供するX11 Window system 、そして各種デスクトップ環境です。
ラッパーがどんなに頑張っても、本体の機能強化にはならないし、本体の機能拡張にもならないと思います。所詮ラッパーはラッパーでしかない。
そのラッパーがあまり出しゃばると、碌な事は無いです。機能は変わらないのに単にややこしくなるだけ。
今回の Debian 10.1 のように、IPアドレスやリゾルバーはユーザの自由な管理にまかせて、systemd は一切口も手も出さない方が良いです。
それならば systemd が表に出てくるのは、単にデフォルトで組み込まれているデーモンのオン・オフのときだけ。つまり、insserv コマンドの代わりに systemctl コマンドが出てくるだけです。
systemd を採用している各ディストリが、そういう systemd の使い方をしてくれると良いなあ、と思います。



Sec-14.Ubuntu では撤退

2018-11 の印象です
 一番最初の項目の、IP address とリゾルバーの設定で躓きました。うまくいきません。
/etc/network/interfaces を編集してリブートすると、リゾルバーの挙動がおかしくなります。名前がうまく引けません。
強引に /etc/resolv.conf を(元は、別のファイルのシンボリックリンク)消して、もう一度スクラッチで書いてみます。で、リブートしても、やっぱりリゾルバーがおかしい。
そもそも、そんなことを繰り返すと、OSがリブートできなくなってしまいます(汗)。悪夢の systemd です。
どうやら、Ubuntu のリゾルバーはどこか別のファイルを使って systemd 流に設定されているようです。なので、/etc/reosolv.conf をいじっても無駄です。
この段階であきらめて、もうこれ以上a. b. の利用に深入りしませんでした。CUI 立ち上げは試さなかったです。
なお、DATドライブ、シリアル回線、各種ソフトウェアのコンパイル・インストール(apache、postfix、guile、lua)は Debian と基本的に同じでした。
こんな感じだったので、c. に限定して使っていた Ubuntu を a. や b. に利用することは諦めました。撤退です。

一方で、Chap-11. に書いたとおり、Windows 代替としての使い勝手はほぼ最高です。c. の利用に限定すれば、多分 No.1 のディストリだと思います。


 私の systemd に対する印象は、最初にふれた systemd 採用ディストリが Ubuntu だったせいもあって、割合と拒否反応に近いものでした。
なんせ、Ubuntu は systemd の締め付けのきついディストリですから。