GitHub の Ubuntu のランナーで「Unable to locate package linux-modules-extra-7.0.0-1017-azure」
modprobe の前に linux-modules-extra-$(uname -r) をインストールするステップが、apt で止まります。イメージ 20261018 から、ubuntu-24.04 のイメージは 6.17.0-1022-azure ではなくカーネル 7.0.0-1017-azure で起動し、ubuntu-latest の移り先の ubuntu-26.04 も 7.0 のカーネルです。Ubuntu は別のパッケージとしての linux-modules-extra をやめようとしていて(Ubuntu のお知らせ・2025年7月)、7.0 の azure のカーネル向けには、24.04 でも 26.04 でも出していません。そこに入っていたモジュールは、カーネルと一緒に入る linux-modules-7.0.0-1017-azure に移りました。
どう見えるか
E: Unable to locate package linux-modules-extra-7.0.0-1017-azure E: Couldn't find any package by glob 'linux-modules-extra-7.0.0-1017-azure' E: Couldn't find any package by regex 'linux-modules-extra-7.0.0-1017-azure' ##[error]Process completed with exit code 100.
メッセージの版はジョブが起動したカーネルのものなので、新しいイメージでは 7.0.0-1019-azure のような別の 7.0 の版になることがあります。もう再実行では直りません。runner-images のメンテナーは11月3日に、いちばん新しい 24.04 のイメージ 20261101.360 も同じカーネルだと答えています。
報告のあったもの
- OpenZFS:
qemu-x86のジョブが、イメージ 20261018.339.1 で、何もビルドしないうちに「Setup QEMU」で落ちました(openzfs #19492)。 - テストのために
vcanを読み込む CAN バスのライブラリ(gocan #108)と、ubuntu-24.04-armでhci_vhciを読み込む ZeroC Ice の Bluetooth のジョブ(ice #6876)。 - runner-images への報告は、想定どおりの動きとして閉じられました。モジュールは「now ship in
linux-modules, which is already installed with the kernel」とのことです(runner-images #15026・#15111)。
直し方:古いカーネルのときだけ extras を入れ、モジュールを読み込む
- name: Load the vcan module
run: |
kernel="$(uname -r)"
if (( ${kernel%%.*} < 7 )); then
sudo apt-get update
sudo apt-get install --yes "linux-modules-extra-${kernel}"
fi
sudo modprobe vcan
runner-images のメンテナーが勧める確かめ方に、もとからある modprobe を続けたものです。7.0 のカーネルでは apt を飛ばし、modprobe が linux-modules からモジュールを見つけます。まだ 6.17 のイメージでは、これまでどおり extras を入れます。先に modprobe を実行して、失敗したときだけ extras を入れる方法もあります。
リポジトリのセットアップのスクリプトのように、パッケージの名前を直接書いているスクリプトにも、同じ確かめ方を入れます。ubuntu-24.04 に固定しても直りません。新しいカーネルのイメージの1つだからです。
見分け方
uname -rを表示します。7.x のカーネルでこのメッセージなら、この変更です。6.17 の azure のカーネルには今も extras のパッケージがあるので、6.x のカーネルではインストールの前にsudo apt-get updateを実行します。- モジュールはディスクにあります:
modinfo vcan(または使うモジュール)で、/lib/modules/$(uname -r)/の下のファイルが表示されます。 - そのあと
modprobeが「Module ... not found」と言うなら、そのモジュールはこの azure のカーネル向けに作られていません。パッケージの中身は Ubuntu のファイルの一覧で分かります(linux-modules-7.0.0-1017-azure)。
ほかの 26.04 の失敗
- Ubuntu 26.04 の「conda: command not found」:イメージに Miniconda が無く
CONDAが空なので、GitHub の雛形のワークフローや Azure Pipelines の Microsoft の手順のように$CONDA/binを PATH に足すステップでは conda が見つかりません。setup-miniconda か Miniforge で入れます。 - ansible-test 2.22 と devel の「mount -o remount,rw /sys/fs/cgroup/ && pkill sleep」returned exit status 1:24.04 と 26.04 のイメージの 7.0 の azure のカーネルでは、既定のテスト用コンテナーが起動できないことが多く、再実行でもめったに直りません。そのジョブは
ubuntu-22.04で。 - 「MongoDB cannot start: Linux kernel versions 6.19 and newer」:mongo:8.0 と mongo:8.3 は 24.04 と 26.04 のイメージの 7.0 の azure のカーネルを 7.0.0 と読んで、起動した直後に終わります。mongo:9.0 を使うか、8.0.37 と 8.3.16 までは
ubuntu-22.04で。 - GitHub の Ubuntu のランナーの syscalls:sys_enter_* の BPF:24.04 と 26.04 のイメージのカーネル 7.0.0-1017-azure では、これらのプログラムが1つの CPU でしか動かないので、eBPF のテストがエラーなしにイベントを失います。
ubuntu-22.04は当たりません。 - Ubuntu 26.04 の PyCQA/bandit-action:アクションが Python 3.8(v1.0.1 は 3.9)を変える入力なしにセットアップし、setup-python の 26.04 向けのビルドは 3.10 からです。Bandit を自分のステップで動かします。
- Ubuntu 26.04 の Docker-in-Docker:古い iptables のモジュールが読み込まれていないので、
iptables-legacyを使うコンテナの中の dockerd(dev container の docker-in-docker 機能の:2や:3など)が「can't initialize iptables table `nat'」で落ちます。機能を:4に上げるか、ランナーでモジュールを読み込みます。 - Ubuntu 26.04 の apt:名前が変わった・無くなったパッケージ。
- 「coreutils: unknown program」:基本のコマンドのほとんどが uutils です。
失敗したジョブを IntelliJ IDEA から見るなら
Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。
GitHub と GitHub Actions は GitHub, Inc. の商標、Ubuntu は Canonical Ltd. の商標、Linux は Linus Torvalds の登録商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・Canonical・Linux Foundation・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:「The ubuntu-latest label will migrate to Ubuntu 26」 · Ubuntu 26.04 の apt · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English