AUR での aws-cli-v2 インストール

先日リリースされたaws-cliのv2をArchlinux(のDockerコンテナ)にインストールしました。ユーザリポジトリ(AUR)にパッケージが存在しています。

$ yay -Syu --noconfirm aws-cli-v2

パッケージ (1) aws-cli-v2-2.0.0-3

合計インストール容量:  67.94 MiB

(1/1) インストール aws-cli-v2   [##################################################] 100%

ただこのパッケージには少し問題があり、インストール後のモジュールディレクトリが少々扱いづらいことと、同梱されるシンボリックリンクが機能していないことがあります。

$ pwd
/usr/share/aws-cli/v2
# 出来れば /usr/local/bin とか /usr/sbin がいいな…

$ ls -la /usr/share/aws-cli/v2/
合計 12
drwxr-xr-x 3 root root 4096  4月 12 14:08 .
drwxr-xr-x 3 root root 4096  4月 12 14:08 ..
drwxr-xr-x 4 root root 4096  4月 12 14:08 2.0.7
lrwxrwxrwx 1 root root   27  4月 12 14:07 current -> /usr/share/aws-cli/v2/2.0.0
# 2.0.0 ディレクトリは無いので current シンボリックリンクも使えない

実は AUR のパッケージの詳細ページで既にこの件についてレポートされており、メンテナとは異なる方が修正したPKGBUILDファイルをGistに提示されていました。そのため、このPKGBUILDファイルをもとに必要なパッケージをインストールした上でビルド(makepkg)することでインストールパッケージが出来上がります。あとはpacman -Uあたりでインストールすることで問題は解決され目的は達成されます。

PKGBUILDの私的更新

というわけでパッケージを使用したいという目的は達成はされるのですが、

という私のやんごとなき事情により上述のGistをforkさせていただき現在の最新版(2.0.7)がインストール出来るようにしました。

paraselene92/PKGBUILD

としました。2点目までの修正を加えた上でビルドしたところ、コマンド実行時に以下のエラーが発生したので3点目を追加しています。

$ aws
Traceback (most recent call last):
  File "/usr/sbin/aws", line 27, in <module>
    sys.exit(main())
  File "/usr/sbin/aws", line 23, in main
    return awscli.clidriver.main()
  File "/usr/lib/python3.8/site-packages/awscli/clidriver.py", line 90, in main
    driver = create_clidriver()
  File "/usr/lib/python3.8/site-packages/awscli/clidriver.py", line 99, in create_clidriver
    load_plugins(session.full_config.get('plugins', {}),
  File "/usr/lib/python3.8/site-packages/awscli/plugin.py", line 48, in load_plugins
    _load_plugins(BUILTIN_PLUGINS, event_hooks)
  File "/usr/lib/python3.8/site-packages/awscli/plugin.py", line 62, in _load_plugins
    modules = _import_plugins(plugin_mapping)
  File "/usr/lib/python3.8/site-packages/awscli/plugin.py", line 76, in _import_plugins
    module = __import__(path, fromlist=[module])
  File "/usr/lib/python3.8/site-packages/awscli/handlers.py", line 28, in <module>
    from awscli.customizations.cloudfront import register as register_cloudfront
  File "/usr/lib/python3.8/site-packages/awscli/customizations/cloudfront.py", line 17, in <module>
    from cryptography.hazmat.backends import default_backend
ModuleNotFoundError: No module named 'cryptography'

これで目的は達成されました。

感じたこと

とまあ、書いてきた内容は私の土曜日の行動の一部始終となるのですが、改めてこのような巨大なリポジトリを最新の状態に保つことは非常に困難であり、それであるからこそ達成するために修正を提案する方たちの行動は尊いものだなあ、と感じることができました。

せっかくPKGBUILDを作った(更新した)ので、リポジトリにコメントの一つでも登録しようかと思いましたが、

と改めて考えると良く分からないことが多かったので怯えて一旦止めています。後押しされることも無いので中々踏ん切りが付かないですね。結構メジャーなパッケージだとも思うので、サッとリポジトリが更新されることを期待しつつ、動きが無かったらコメントを投げようかと思います。

© てっくらのーと/mkr-note 2024