🗂
Azure CLI が RHEL 8.2 でインストールできない
TL;DR
-
sudo dnf --showduplicate deplist <package-name>
で依存関係を調べる - 少し古くても我慢できるのであれば依存関係を追っかけて行って古いのを入れる
Azure CLI が RHEL 8.2 でインストールできない
という話を受けて久々に RHEL を触ってみてはーなるほど思ったので備忘録までに。
最近は Ubuntu Server ばっかり触ってたんですよね。
公式の手順に沿って
こちらに手順があります。
今回はたまたま RHEL 8.2 で試しています。
$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
$ sudo dnf install -y https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
んで、次でこけます。
$ sudo dnf install azure-cli
Last metadata expiration check: 2:31:26 ago on Fri 23 Dec 2022 09:10:25 AM UTC.
Package azure-cli-2.37.0-1.el8.x86_64 is already installed.
Error:
Problem: cannot install the best candidate for the job
- nothing provides python39 needed by azure-cli-2.43.0-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
python39
がないっぽい雰囲気ですね。
で、ぱっと調べた感じ Python 3.9 は compile しないと入らないっぽいんですねぇ。
なので、しゃーないのでちょっと古くでもいいので Azure CLI を入れたいとします。
sudo dnf --showduplicate deplist azure-cli
をたたいてみて、package の依存関係を表示させてみます。
`sudo dnf --showduplicate deplist azure-cli`
$ sudo dnf --showduplicate deplist azure-cli
Last metadata expiration check: 2:34:06 ago on Fri 23 Dec 2022 09:10:25 AM UTC.
package: azure-cli-2.35.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python3
provider: python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.36.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python3
provider: python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.37.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python3
provider: python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.38.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python39
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.39.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python39
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.40.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python39
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.41.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python39
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.42.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python39
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
package: azure-cli-2.43.0-1.el8.x86_64
dependency: ld-linux-x86-64.so.2()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libc.so.6(GLIBC_2.14)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0()(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
provider: glibc-2.28-101.el8.x86_64
dependency: python39
dependency: rtld(GNU_HASH)
provider: glibc-2.28-101.el8.i686
provider: glibc-2.28-101.el8.x86_64
どうも azure-cli-2.38.0-1.el8.x86_64
から python39
に依存するように変わったみたいですね。
なので、今回は仕方がないので azure-cli-2.37.0-1.el8.x86_64
で我慢することにします。
$ sudo dnf install azure-cli-2.37.0-1.el8.x86_64
うまくいったでしょうか、この記事を書いている時点ではこれで成功しました。
$ az version
{
"azure-cli": "2.37.0",
"azure-cli-core": "2.37.0",
"azure-cli-telemetry": "1.0.6",
"extensions": {}
}
ちなみにこっから az upgrade
するとやっぱりこけます。
$ az upgrade
This command is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Your current Azure CLI version is 2.37.0. Latest version available is 2.43.0.
Please check the release notes first: https://docs.microsoft.com/cli/azure/release-notes-azure-cli
Do you want to continue? (Y/n): y
Last metadata expiration check: 0:09:51 ago on Fri 23 Dec 2022 11:39:40 AM UTC.
Error:
Problem: cannot install the best update candidate for package azure-cli-2.37.0-1.el8.x86_64
- nothing provides python39 needed by azure-cli-2.43.0-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
CLI upgrade failed.
見た感じ結局裏では .rpm をインストールしようとしてるっぽいので同じ結果ですね。
Discussion