VirtualBoxのゲストOSにSSH接続できない

ゲストOSにSSH接続できなくなっていた。
pingすら届かなくなっていた。
これはネットワークがおかしい。

しらべると、Host-Only Ethernet Adapterが複数できていた。
期待していないIPアドレスが振られている。これはおかしい。
一旦、仮想マシンをすべて止めて、Host-Only Ethernet Adapterを一つにした。
IPも設定しなおした。

改めて、仮想マシンを起動する。
普通につながるようになった。
やれやれ。

【Arch Linux】git logが全部出る

Vagrantで再構築したarch linuxでの話。

git log

とすると、ドバーっとぉっが出て、最初のコミットまで出力された。
いったいどうした。

調べると、git logのpagerにlessを指定すれば、よいようだ。
さらに調査すると、そもそもlessが入っていないことが判明。

ならばとlessをインストール

pacman -S less

これで、思った動きになった。

【Arch Linux】Emacs 29.1がキター!

Emacsの最新版がキターっと思っていたら、起動できずエラーメッセージが。。。

emacs: error while loading shared libraries: libtree-sitter.so.0: cannot open shared object file: No such file or directory

なんてこった!だが、なんのこれしき!

libtree-sitter.soを入れればいいんだろ?探したる!

# pacman -Ss libtree-sitter.so extra/tree-sitter 0.20.10-1 Rust bindings to the Tree-sitter parsing library

あったぜ!いれるぜ!(...Rust?)

# pacman -S tree-sitter resolving dependencies... looking for conflicting packages...

Packages (1) tree-sitter-0.20.10-1

Total Download Size: 0.09 MiB Total Installed Size: 0.21 MiB

:: Proceed with installation? [Y/n] y  :

はいった! うりゃ!

# emacs --version GNU Emacs 29.1 Copyright (C) 2023 Free Software Foundation, Inc. GNU Emacs comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of GNU Emacs under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING.

キタッー!これで良し。

【Arch Linux】Trac1.5にバージョンアップ

Trac1.4を使いながら、Trac1.5のリリースを待っていたけど辛抱できず、 開発向けリリースTrac1.5.4を使うことにしました。

python2.7から、python3.11の環境へ移行できたので、解き放たれた気分です。 この環境で、Trac1.6を待ちます。

もう、python2.7に依存するものはないはずなので、 その辺のモジュールは、削除を進めていきたいです。

自分は、ログインしないと、Wikiが見れない設定にしています。 1.4では、ログイン前に、「見れません、ログインはこちらみたいな画面」があったのですが、 1.5では、真っ白いページがでるだけになってしまいました。

しかたなくURLを編集して、ログイン画面に移動したり、 ログイン後は、URLを編集して、トップに移動したりしています。 不便なので、何か工夫が必要そうです。

他にも変わったところがあるのかもしれませんが、 自分はwikiしか使っていないので、気が付いていません。

vagrant上のarchlinuxで、static IPが設定されなくなった

2023年4月頃に、vagrant上の、archlinuxを再構築したところ、ホストオンリーアダプタ経由でSSHログインできなくなった。

vagrant sshでログインして、調べることにした。 ホストオンリーアダプタに、指定したIPアドレスが設定されていない。 対象のデバイス名が、これまでのenp0s8ではなく、eth1になっている。 どうやら、ネットワーク管理方法が、変更になったようだ。

プロセスリストを確認すると、systemd-networkdというものがいる。 systemd-netoworkdについて調べる。 /etc/systemd/network/の下に、2つのファイルがある。

  • 80-dhcp.network
  • eth1.network

まずは、eth1.networkを見る。 eth1にスタティックIPを設定する内容がある。問題ない。

80-dhcp.networkを見る。 eth*に、DHCPでIPを設定する内容にみえる。 eth*には、eth1も含んでいるので、eth1にもDHCPでIPが割り当てられているのではないか。 試しに、以下のように書き換えて、再起動するとつながる。

[Match]
Name=eth0

[Network]
 DHCP=ipv4

毎回修正するのは、つらいので、Varantfileにこの処理を書き構築時に済ませるようにした。

  • Vagrantfile
  • ネットワークの再起動があるので、最後に書いた方が良さげです。
   config.vm.provision "shell", inline: <<-SHELL
     sed -i -e "s/Name=eth\*/Name=eth0/" /etc/systemd/network/80-dhcp.network
     systemctl restart systemd-networkd
   SHELL

【Arch Linux】sudoers.dにファイルを置くときは拡張子つけないこと

/etc/sudoers.pacnewファイルができていた。

sudoresファイルに設定が書き込んでいたため、ファイルの置換がされなかったようだ。 最新の内容を反映したいし、今後もそうなるように、sudoersに書いていた設定をsudoers.d以下のファイルに移した。 これで、大丈夫だろうと思い、再起動してみたが、sudoers.d以下の設定が読み込まれていない様子。 はて?

どうやら、sudoers.d以下のファイル名に拡張子をつけたのが、よくなかったようだ。

ファイル名 設定反映
wheel_appuser.conf されなかった
wheel_appuser された

たまたま、設定を分離してうまくいっていた環境があったので、 比較して、ファイル名っぽいと、気が付けたので、よかった。

想定と違う動きに遭遇すると、びっくりするよ。