2019年11月23日土曜日

Arch Linuxでaurmanが使えなくなった時の対処法

Arch Linuxでaurmanが使えなくなった時の対処法
パッケージアップデートをしてた後に、aurmanが使えなくなっていた。調べてみたら、aurmanを再インストールすれば解決することが分かった。

この記事では、パッケージアップデート後のaurmanのエラーの症状と、その解決方法についてまとめておく。


aurmanのエラーの症状
pythonが3.8にアップデートされた後にaurmanを使ってみたら、エラーが出てaurmanが使えなくなっていた。aurmanが出したのは、以下のようなエラー。
$ aurman -Syu

Traceback (most recent call last):
  File "/usr/bin/aurman", line 6, in 
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3251, in 
    def _initialize_master_working_set():
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3263, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 900, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'aurman==2.19.1' distribution was not found and is required by the application

どうやら、「The 'aurman==2.19.1' distribution was not found and is required by the application」と書いてあるため、pythonから'aurman==2.19.1'が見えなくなっている感じ。

調べてみると、aurmanの作者のgitのページに、同じ問題について書かれたページ「python 3.7 breaks aurman · Issue #239 · polygamma/aurman · GitHub」があった。
(相変わらずaurmanの作者は、初心者に対して厳しい… 「Repository owner deleted a comment from Babu87811」してから、「@Babu87811 has been banned」は、おそらくスパムとかではないはず…自分はこのような冷たいことはしないので、心配せずコメントして下さい(笑))

このページによれば、

  • 今回生じた問題は、aurmanを再インストールすれば治る。(It actually does not, just rebuild and reinstall aurman.)
  • エラーが出た原因は、aurmanのアップデートとpythonのアップデートを同時で行わなかったから。(I pushed a new version to the AUR, if users update aurman and python during the same execution of aurman, the problem does not arise.)

ということらしいです。自分はpacman -Syuをして公式リポジトリのパッケージアップデートをして、その後aurman -SyuをしてAURリポジトリのパッケージアップデートということをしているので、このようなエラーが出たみたい。

polygammaさんからすれば、「aurmanを使っているからには、パッケージアップデートはaurman -Syuのみでやれ」ってことですね。

aurmanの再インストール方法
さて、aurmanが使えなくなってしまったので、aurmanを再インストールすることに。
(aurmanを初めてインストールする方法については、「AURヘルパーaurmanのインストール方法と使い方 | 普段使いのArch Linux」のページで解説しています。)

まずは、既存のaurmanをアンインストール。
# sudo pacman -Rn aurman 

checking dependencies...

Packages (1) aurman-2.19.1-1

Total Removed Size:  0.54 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/1) removing aurman                                          [##################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

ここからが、再インストール手順。まず、gitからPKGBUILDファイルをコピー。
$ git clone https://aur.archlinux.org/aurman.git

Cloning into 'aurman'...
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (248/248), done.
remote: Compressing objects: 100% (166/166), done.
remote: Total 248 (delta 82), reused 248 (delta 82)
Receiving objects: 100% (248/248), 31.75 KiB | 6.35 MiB/s, done.
Resolving deltas: 100% (82/82), done.

生成したaurmanディレクトリにcd。
$ cd ./aurman/

lessでPKGBUILDファイルの中身を確認。
$ less PKGBUILD 

# Maintainer: Jonni Westphalen
pkgname=aurman
pkgver=2.19.1
pkgrel=1
pkgdesc="AUR helper with almost pacman syntax"
arch=('any')
url="https://github.com/polygamma/aurman"
license=('MIT')
depends=('python' 'expac' 'python-requests' 'git' 'python-regex' 'python-dateutil' 'pyalpm' 'python-feedparser')
source=("aurman_sources::git+https://github.com/polygamma/aurman.git?signed#tag=${pkgver}")
md5sums=('SKIP')
validpgpkeys=('4C3CE98F9579981C21CA1EC3465022E743D71E39') # Jonni Westphalen

package() {
    cd "$srcdir/aurman_sources"
    /usr/bin/python3 setup.py install --root="$pkgdir/" --optimize=1
    install -Dm644 ./bash.completion "$pkgdir/usr/share/bash-completion/completions/aurman"
    install -Dm644 ./aurman.fish "$pkgdir/usr/share/fish/vendor_completions.d/aurman.fish"
}


PKGBUILD中の鍵は、初期にaurmanをインストールしたときから変わっていなかったので、今回は鍵のインストールはしない。makepkgを実行してインストール。
$ makepkg -si

==> Making package: aurman 2.19.1-1 (2019年11月23日 10時33分40秒)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning aurman_sources git repo...
Cloning into bare repository '/home/zero/aurman/aurman_sources'...
...
Packages (1) aurman-2.19.1-1

Total Installed Size:  0.53 MiB

:: Proceed with installation? [Y/n] 
...

aurmanの再インストールは終了。aurmanが使えるか確認。特にエラーを出すこと無く、無事使えるようになった。
$ aurman -Syu

:: Clarification regarding recent email activity on the arch-announce list [Fri, 25 Oct 2019 20:27:46 +0000]
Today, one email was sent to the arch-announce mailing list that was able to circumvent the whitelisting checks that are done by the mailman software. This was not due to unauthorized access and no Arch Linux servers were compromised.
...


参考:

[1]python 3.7 breaks aurman · Issue #239 · polygamma/aurman · GitHub
[2]AURヘルパーaurmanのインストール方法と使い方 | 普段使いのArch Linux

スポンサーリンク

スポンサーリンク


関連コンテンツ


この記事をシェアする

0 件のコメント:

コメントを投稿