Docker の fedora 35 コンテナからネットにつながらない
fedora 35 で確認したいことがあったので Docker で fedora 35 のコンテナを起動
dnf でパッケージをインストールしようとしたらエラーでインストールできない

Errors during downloading metadata for repository 'fedora':
- Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-35&arch=x86_64 [getaddrinfo() thread failed to start]
Error: Failed to download metadata for repo 'fedora': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-35&arch=x86_64 [getaddrinfo() thread failed to start]

ネットにつながらない?

単に curl を使うと

# curl https://google.com
curl: (6) getaddrinfo() thread failed to start

見覚えのないエラー
dnf のエラーメッセージ的には名前解決の問題みたいなので IP 直接指定で ping してみる
とりあえずこういうときによく使う 8.8.8.8

ping 8.8.8.8

ping コマンドが入ってないらしい
入れたいけど dnf が使えない
8.8.8.8 はウェブサーバがないので curl で試せない
ホスト側で適当なウェブサイトの IP アドレスを調べてから curl で確認

# curl --head -k https://52.69.186.44
HTTP/2 301
content-length: 0
location: https://github.com/

レスポンスを受け取れてるので名前解決の問題であってそう
でもなんで?
fedora だし多少のバグありは仕方ないと思ってるけど rawhide でもないし このイメージのリリースは 20 日ほど前
前回の cifs-utils みたいな一部の用途ならまだしも 名前解決できないような致命的なバグをここまで放置は考えづらい

探してみるとこんな記事が
https://medium.com/nttlabs/ubuntu-21-10-and-fedora-35-do-not-work-on-docker-20-10-9-1cd439d9921

fedora 35 だけじゃなく Ubuntu 21.10 でも発生する問題みたい
これらは glibc のバージョンが 2.34 になっていてこのバージョンでは clone のシステムコール関係の変更があったみたい
その変更に Docker が対応できてないからエラーになっていて Docker のバージョンを上げればいいんだとか
バージョン 20.10.10 で修正されたようで Ubuntu のパッケージだと 20.10.7 で修正されてるらしい
cifs の nolock が動かなくなってた
Fedora34 で cifs が動かなくなってた問題
久々に更新来てないか確認したらアップデートが来てた
先月くらいに修正されたみたい

これで動くはずと思ったけど動いてない
前に出てたログのエラーはなくなってる

シンプルな mount コマンドでやってみるとマウントできたので オプションに問題がありそう
でも 動いてた頃と同じものなのに

dmesg コマンドで確認すると nolock が不正というエラーログが出てた
新しいバージョンだと nolock をサポートしてないみたい

そもそも nolock をつけてるのは この問題があったから
もう PHP で SQLite は使ってないから別に困らないけど こういうので nolock なくても動くようになったのかな
Fedora34 で cifs マウントできない件 もうすぐ修正されそう
https://bodhi.fedoraproject.org/updates/FEDORA-2021-6679746a3d

testing ステータスになってる

Fedora のパッケージのリリースやアップデート情報はこのサイトで見れるみたい
https://bodhi.fedoraproject.org/

ドメインにある bodhi ってなにかと思って調べてたら Fedora のアップデートを管理するウェブシステムの名前でリポジトリもあった
https://github.com/fedora-infra/bodhi



上のは cifs-utils と同じ原因でエラーになってる別パッケージで cifs-utils がこのパッケージを使ってるわけじゃないので cifs-utils の修正とは関係なかった
cifs-utils の方はフォーラムではメンテナの人の個人的な事情でしばらく修正のリリースができないみたいだし まだ修正は先そう
Fedora 34 で cifs マウントできなくなった
Fedora 34 に更新して以降 Windows の共有フォルダのマウントができていません
ログを見ると エラーが出ています

libcap-ng used by "/usr/sbin/mount.cifs" failed due to not having CAP_SETPCAP in capng_apply

すでに Redhat の Bugzilla にはバグ報告があります

https://bugzilla.redhat.com/show_bug.cgi?id=1924218
https://bugzilla.redhat.com/show_bug.cgi?id=1962920

自分で最新版をビルドして解決したという報告もあるように cifs-utils 本体側では対応済みのようです
https://lists.samba.org/archive/samba-technical/2020-December/136156.html

去年末リリースの 6.12 の修正内容に CAP_SETPCAP 関係がいくつかあります
積極的にパッケージの更新を行う Fedora なら 6.12 をリリースしてくれても良いと思うのですが まだ 6.11 です

自分でビルドするのも面倒なので早く dnf upgrade で更新できるようになってほしいですね
Fedora のデフォルトエディタが nano になってた
https://fedoraproject.org/wiki/Changes/UseNanoByDefault

33 からだったようです
32 が最近 EOL を迎えてたので更新して気づきました

理由は git commit などのコマンドからエディタが起動したときに vi だと混乱する人が多いからのようです
これはすごくわかります
最近でこそ 保存と終了くらいはできるようになりましたが 私も慣れないころは vi が起動されると終了すらできなくて困りました
Ctrl-C は効かないし ググっても最初は意味不明だったのでタブごと閉じてたり……
CUI 環境だと強制再起動?

それに比べて nano は下に使い方が書いてるくらいのユーザフレンドリーさです
機能は多くないものの最低限の編集には十分です

デフォルトとするなら nano のほうが向いてると言えます
vi 使いたいような少数派の人たちは デフォルトエディタを変更するくらい苦もなくできるでしょうし

nano 使いからしては CentOS がインストール方法によってはデフォルトで nano が入ってないということに不満なのですが この変更が取り込まれる頃にはデフォルトインストールされることになりそうですね

やっぱり nano は最高なの
dotnet コマンドで SDK が無いと言われる
.NET 5 でも使ってみようかと sdk5.0 をインストールしてから dotnet コマンドを実行すると

Could not execute because the application was not found or a compatible .NET SDK is not installed.

というエラーが出ました

dotnet --info

で情報を見ると runtime はあるのに SDK は無いと言われます
インストールは成功していたはずですし インストール済みのパッケージリストを見るとこれまで使っていたバージョンもあり 2.2/3.1/5.0 がインストールされています

原因は fedora32 では dotnet が fedora の公式リポジトリに取り込まれたことでした
(30 や 31 のときに dotnet コマンドを使ったか覚えてないので もしかすると 32 より前から発生していたかもです)
以前の fedora では dotnet を使うためには独自にリポジトリの追加が必要で 「/etc/yum.repos.d/microsoft-prod.repo」 を追加していました

このリポジトリを追加した状態でアップデートしたので SDK のパッケージはどっちのリポジトリにも存在し dotnet コマンドは fedora のもの SDK は microsoft-prod.repo のものという状態になっていました
dotnet コマンドは fedora リポジトリの SDK パッケージが入ってることを期待するので あるはずの場所になくてみつからないと言っていたようです

対処方法は microsoft-prod.repo を無効にして再インストールです
ファイルを編集して enabled を 0 にするのでも良いですが fedora のリポジトリからインストールできるので もう消してしまっても良さそうです
再インストールすると fedora リポジトリ版の SDK パッケージがインストールされるので dotnet コマンドが使えるようになりました
systemctl status が less で開かれる
久々に systemctl status でデーモンの状態を見たら less で開かれるようになってました
これまでは普通に status のテキストが出力されていましたが less で status のテキスト部分だけが開かれた挙動になってました

less なので検索できたり 画面右端ではみ出た部分も右にスクロールさせて読めます
これまでは詳細みるなら -l (?) みたいなオプションを追加してとか言われて面倒だったのが不要になったようです
ただ一々画面が切り替わったり 上の方にスクロールしてログとしてあとから確認できないなどのデメリットもあります

変わったのは fedora を 31 にアップデートしてからの気がします
less で見たいならパイプすればよくて 基本はこれまでのように単純に出力でいいかなと思って戻す方法がないか調べたらこんなページがありました

https://unix.stackexchange.com/questions/343168/can-i-prevent-service-foo-status-from-paging-its-output-through-less

--no-pager オプションを使えばいいようです
fedora の PHP 実行環境は FPM/FastCGI
root@localhost ~# cat /etc/fedora-release 
Fedora release 27 (Twenty Seven)
root@localhost ~# dnf install -y php httpd
root@localhost ~# systemctl restart httpd
root@localhost ~# echo "<?php phpinfo();" > /var/www/html/phpinfo.php
root@localhost ~# curl http://localhost/phpinfo.php 2>/dev/null | grep FPM
<tr><td class="e">Server API </td><td class="v">FPM/FastCGI </td></tr>
micro が dnf でもインストールできた
Github の README だと homebrew とか chocolatey とか snap とかいろいろ載っているのに yum/dnf はないから fedora だと自分でバイナリダウンロード必要だと思ってたけど fedora28 環境でなんとなく

sudo dnf install micro

ってやったらインストールできた
dnf でインストールできると いろいろな環境で楽に使えるから嬉しいね
CentOS だと EPEL リポジトリでも今のところ含まれてないみたい
VM の HDD サイズを拡張する
環境ごとの方法で VM の仮想 HDD サイズを適当に広げる

parted で LVM パーテーションを広げる
parted

parted の中で
resizepart 2 100%
「2」 のところは parted 中に 「p」 で表示されるパーテーション ID

pvresize で Physical volume を広げる
pvresize /dev/sda2

lvresize で Logical volume を広げる
lvresize -l +100%FREE /dev/fedora/root

xfs_growfs でファイルシステムを広げる
xfs_growfs /
/dev/mapper/fedora-root や /dev/fedora/root だと 「is not a mounted XFS filesystem」 と言われるのでマウントしてる場所を指定