pkg・ports アップデート関連 - rust・cargo - cargo-c-0.9.20 → 0.9.21_1

クラウディア 
1. 概要
2. 仕方ない
3. 後始末
4. しまった
5. 消極的な解決(NG)

1. 概要

 これを書いているのは、2023年7月18日ですが、数日前から困っている。

$ pkg version -vl "<"
cargo-c-0.9.20                     <   needs updating (index has 0.9.21_1)
 という状況になっているのですが。  「cargo-c」は「rust」なんかと同じで、「make」するのにやたら時間がかかるし、メモリを消費するのです。  (「Cargo」は、「Rust」のビルドシステムでらしい)  200を超えるモジュールをコンパイルしていて、220あたりでいつも止まる。  「top」で見ると、4プロセスほどが、「uwait」のまま、ちっとも動かなくなる。  サーバアプリケーションのリソースも逼迫してくるのです。

2. 仕方ない

 仕方ない、2023年7月18日の時点で、「cargo-c」は、「pkg」が「ports」に追い付いているようなので、「pkg」でアップグレードします。

$ pkg install cargo-c

Updating FreeBSD repository catalogue...
Fetching packagesite.pkg: 100%    7 MiB   3.5MB/s    00:02
Processing entries: 100%
FreeBSD repository update completed. 33793 packages processed.
All repositories are up to date.
Updating database digests format: 100%
The following 4 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
        mono: 5.10.1.57_4

New packages to be INSTALLED:
        perl5.34: 5.34.1_2

Installed packages to be UPGRADED:
        cargo-c: 0.9.20 -> 0.9.21

Installed packages to be DOWNGRADED:
        perl5: 5.34.1_3 -> 5.32.1_3

Number of packages to be removed: 1
Number of packages to be installed: 1
Number of packages to be upgraded: 1
Number of packages to be downgraded: 1

The operation will free 179 MiB.
44 MiB to be downloaded.

Proceed with this action? [y/N]:
 ええい、「mono」はアンインストールされちゃうし、「perl」はダウングレードされちゃうのだ。  けど、まぁ、仕方ない。  ええい、y Enter

3. 後始末

 アンインストールされたものや、ダウングレードされたものを元に戻します。  「pkg」まで、ダウングレードされてやんの。

portupgrade -f perl5.34

portupgrade -Rr pkg

cd /usr/ports/lang/mono
make
make install

4. しまった

 で、ふと気づくと。

$ pkg version -vl "<"
cargo-c-0.9.21                     <   needs updating (index has 0.9.21_1)
 しまった。  「pkg」は、「cargo-c-0.9.21」だったのだ。  「cargo-c-0.9.20」よりは、新しくなったものの、最新ではないのだ。  やれやれ、どうしようと、途方に暮れる(2023年7月18日)。

5. 消極的な解決(NG)

 その後、あれこれ考えたあげく。  「cargo-c」って何に使っているんだっけ?  とまぁ、考えまして、なんか「rust」の学習のために、「rust」をインストールするときに同時にいれたのかもしれない・・・。  「rust」と「cargo-c」を削除しちゃおうかしら・・・。  とまぁ消極的な解決策に乗り出します。  依存関係をちびっと見てみます。

pkg remove cargo-c
pkg remove rust
 で試してみたら、「cargo-c」は、単語句のようだし、「rust」の方は

Installed packages to be REMOVED:
        py39-setuptools-rust: 1.7.0
        rust: 1.71.0
        rust-cbindgen: 0.24.3_11
 と、他には影響がなさそうであります。  そこで。

cd /usr/ports/devel/cargo-c
make deinstall clean

cd /usr/ports/lang/rust
make deinstall clean

cd /usr/ports/devel/rust-cbindgen
make deinstall clean

cd /usr/ports/devel/py-setuptools-rust
make deinstall clean
 と、全部削除しちゃいました。  他に依存してないよね?  しばらく、様子を見るのだ。  で、まぁ、これは、なんの解決にもならなかったのだ。  現在(2023年9月15日)は、「cargo-c」に依存する「ports」が、結構あるのだ。  依存するので、「portupgrade」の際に「-rR」オプションをつけると、「cargo-c」をアップグレードしようということになって、元の木阿弥なのだ。  それで、次のページへ続くのですよ。
ハイスピードプラン