先にまとめ
noble-proposed
repository を追加したうえで -t noble-proposed
オプションをつけて apt install すればいい。
前提条件
Ubuntu Server 24.04.1 (LTS) を minimal install した状態。
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble
背景
(2024/10/15 時点の情報)
Ceph の Squid (19.2.0) stable がリリースされたらしいが、Ubuntu 24.04 でインストールするとどうしても dev 版がインストールされて困っていた。
package を見てみると、19.2.0.0-0ubuntu0.24.04.1 は proposed だった。
が、ただ proposed を追加してもだめだったので、だめだったメモを添えつつ備忘録として解決策を記載。
propose を追加するだけではだめ
proposed にあるなら追加すればええんちゃう?と、/etc/apt/sources.list.d/ubuntu.sources
に追記してみたがだめだった。
# diff ubuntu.sources ubuntu.sources.bk
3,4c3
< #Suites: noble noble-updates noble-backports
< Suites: noble noble-updates noble-backports noble-proposed
---
> Suites: noble noble-updates noble-backports
# cat ubuntu.sources
Types: deb
URIs: http://jp.archive.ubuntu.com/ubuntu/
#Suites: noble noble-updates noble-backports
Suites: noble noble-updates noble-backports noble-proposed
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
このまま apt install しても updates に入ってるやつが優先されてしまう。
proposed だけにしても(当然)だめ
なら proposed だけにすればええんちゃう?(よくない)と、proposed だけにしてみたら依存パッケージが入らなくなり、だめだった。
# cat ubuntu.sources
Types: deb
URIs: http://jp.archive.ubuntu.com/ubuntu/
#Suites: noble noble-updates noble-backports
#Suites: noble noble-updates noble-backports noble-proposed
Suites: noble-proposed
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
The following packages have unmet dependencies:
ceph-common : Depends: python3-ceph-argparse (= 19.2.0-0ubuntu0.24.04.1) but 19.2.0-1jammy is to be installed
Depends: python3-ceph-common (= 19.2.0-0ubuntu0.24.04.1) but 19.2.0-1jammy is to be installed
Depends: python3-cephfs (= 19.2.0-0ubuntu0.24.04.1) but it is not going to be installed
Depends: libboost-url1.83.0 (>= 1.83.0) but it is not installable
E: Unable to correct problems, you have held broken packages.
-t
オプションで noble-proposed を指定したらいけた
参考 https://kwatanabe.hatenablog.jp/entry/2020/11/28/095428
proposed を追加した状態に戻して apt update 後、-t noble-proposed
をつけてインストールしたら proposed な package がインストールされた。
# cat ubuntu.sources
Types: deb
URIs: http://jp.archive.ubuntu.com/ubuntu/
#Suites: noble noble-updates noble-backports
Suites: noble noble-updates noble-backports noble-proposed
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
apt install cephadm ceph-common -t noble-proposed
# apt list --installed | grep ceph
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
ceph-common/noble-proposed,now 19.2.0-0ubuntu0.24.04.1 amd64 [installed]
cephadm/noble-proposed,now 19.2.0-0ubuntu0.24.04.1 amd64 [installed]
libcephfs2/noble-proposed,now 19.2.0-0ubuntu0.24.04.1 amd64 [installed,automatic]
python3-ceph-argparse/noble-proposed,now 19.2.0-0ubuntu0.24.04.1 amd64 [installed,automatic]
python3-ceph-common/noble-proposed,now 19.2.0-0ubuntu0.24.04.1 all [installed,automatic]
python3-cephfs/noble-proposed,now 19.2.0-0ubuntu0.24.04.1 amd64 [installed,automatic]
ちゃんと noble-proposed からインストールされている。
# ceph --version
ceph version 19.2.0 (16063ff2022298c9300e49a547a16ffda59baf13) squid (stable)
ceph version も (dev)
ではなく (stable)
になっている。
2024/10/16 追記(ceph 系の検索でたどり着いた人向けの補足)
19.2.0-0ubuntu0.24.04.1
の cephadm にバグがあるんだか ceph の 19.2.0 stable にバグがあるんだか不明だが、bootstrap を実行するとちゃんと stable がインストールされるが、まともに動かない。
# ceph -s
cluster:
id: 544b6b46-8b6d-11ef-be90-bc2411bb8db5
health: HEALTH_WARN
failed to probe daemons or devices
OSD count 0 < osd_pool_default_size 3
[WRN] CEPHADM_REFRESH_FAILED: failed to probe daemons or devices
host HOGE `cephadm gather-facts` failed: cephadm exited with an error code: 1, stderr: Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/var/lib/ceph/544b6b46-8b6d-11ef-be90-bc2411bb8db5/cephadm.a58127a8eed242cae13849ddbebcb9931d7a5410f406f2d264e3b1ed31d9605e/__main__.py", line 5579, in <module>
File "/var/lib/ceph/544b6b46-8b6d-11ef-be90-bc2411bb8db5/cephadm.a58127a8eed242cae13849ddbebcb9931d7a5410f406f2d264e3b1ed31d9605e/__main__.py", line 5567, in main
File "/var/lib/ceph/544b6b46-8b6d-11ef-be90-bc2411bb8db5/cephadm.a58127a8eed242cae13849ddbebcb9931d7a5410f406f2d264e3b1ed31d9605e/__main__.py", line 4639, in command_gather_facts
File "/var/lib/ceph/544b6b46-8b6d-11ef-be90-bc2411bb8db5/cephadm.a58127a8eed242cae13849ddbebcb9931d7a5410f406f2d264e3b1ed31d9605e/cephadmlib/host_facts.py", line 835, in dump
File "/var/lib/ceph/544b6b46-8b6d-11ef-be90-bc2411bb8db5/cephadm.a58127a8eed242cae13849ddbebcb9931d7a5410f406f2d264e3b1ed31d9605e/cephadmlib/host_facts.py", line 743, in kernel_security
File "/var/lib/ceph/544b6b46-8b6d-11ef-be90-bc2411bb8db5/cephadm.a58127a8eed242cae13849ddbebcb9931d7a5410f406f2d264e3b1ed31d9605e/cephadmlib/host_facts.py", line 722, in _fetch_apparmor
ValueError: too many values to unpack (expected 2)
調べたら解決方法があるのかも知れないが、proposed な package で出たエラーをあまり頑張ってなんとかする気にもなれないので今回に関しては dev 版であろうと main package の cephadm を使うことにする。
2024/10/22 さらに追記
2024/10/17 にこのバージョンの ceph が updates にリリースされていたのだが、バグもそのまま残っていた。
調べたところ、AppArmor の profile にスペースが含まれる場合があり、そのせいで cephadm が正常に動かなくなるらしい。
修正は既にマージされてるらしく、この修正を含んだバージョンが proposed になったらこの記事がまた役に立つかも知れない。
感想
意外と情報が出てこない、というか Desktop 版のインストール方法ばかり出てくるのと、そもそも優先度があるということを知らなくて(全部のリポジトリ書いておけば最新がインストールされると信じ切ってた)随分右往左往してしまったが、これで今後 proposed な package をインストールしたくなっても困らなくなったのは良い収穫だった。