MacOSX
Fink
HighSierra

fink導入済のMacをHighSierraにアップデートした備忘録

経緯

先日、macOS High Sierraがリリースされていましたが、私のMacはfinkを導入済みであったため、しばらくアップデートを躊躇しておりました。久々にfinkのページを見るとHigh Sierraへのアップデート手順が案内してあったので、アップデートしてみることに。ところが、案内されている手順通りになかなか上手くいかなかったので、試行錯誤した内容を備忘録に残しておこうと思います。

手順の確認

finkのニュースページをみると2017-10-03と2017-10-07の2回に分けてHigh Sierraへのアップデート手順が案内してありました。基本的な流れは、ここに案内されている手順で作業を行いました。

finkのアップデート

手順によると、fink selfupdateを実行してfink-0.42.0をインストールするように案内されています。ところが、実施後にfink --versionでバージョンを確認しても0.41.xのままで、0.42.xにはアップデートされていないようでした。
試しにsudo apt-get update, sudo apt-get upgradeを実行してみると、バージョンが0.42.xにアップデートされました。
私は、この状態で次の手順に進んでしまったのですが、手順が正しくなかったようでHigh Sierraへのアップデート後にfinkが動かなくなってしまいました。

High Sierraへのアップデート

High Sierraへのアップデート自体は、AppStoreから実行するだけなので特に書くことはありません。アップデート後にXCodeのコマンドラインツールも更新する必要があるようです。

sudo xcode-select --install

finkの不具合

High Sierraにアップデート後、fink reinstall finkを実行するように案内されているのですが、ここで不具合発生。次のようなエラーメッセージが表示されてしまいました。

Use 'fink reinstall fink' to switch distributions
from 10.12 to 10.13.
(中略)
Failed: compile phase: can't build fink-0.42.0-111 because no package description is available

ん?fink reinstall finkを実行したいのに、その前にfink reinstall finkを実行して10.12から10.13へ切り替えろと言っているように見える???詰みですか???

そこで手順をよく読むと、ついうっかり先にHigh Sierraへアップデートしてしまった人はfink selfupdateを実行するように書いてあります。ところが、やはりエラー発生。

Use 'fink reinstall fink' to switch distributions
from 10.12 to 10.13.
'selfupdate' operation not permitted.

この後、sudo apt-get update, sudo apt-get upgradeを実行してみるなど、いろいろ試したのですが上手くいかず、最終的にdebパッケージを再インストールすることにしました。

debパッケージを使ってfinkを再インストール

2017010-03のニュースを見るとdebパッケージからインストールする手順が案内されています。ところが、ダウンロード用のURLがリンク切れになっているようでした。代わりに、ディレクトリのURLにアクセスするとファイル名が変更されているようでした。私が確認した時点では fink_0.42.0-121_darwin-x86_64.deb というファイル名でダウンロードできました。

sudo dpkg -i fink_0.42.0-121_darwin-x86_64.deb
fink selfupdate

これでfinkのエラーが発生しなくなりました。最初から、この方法で再インストールした方が早かったかも。。。

インストール済のパッケージをアップデートする

最後にインストール済のパッケージをアップデートしました。

sudo apt-get update
sudo apt-get upgrade

すると、またもやエラー発生。

Err file: local/injected Packages
  File not found
Ign file: local/injected Release           
Get:1 http://bindist.finkmirrors.net stable/main Packages [1271kB]
Get:2 http://bindist.finkmirrors.net stable/main Release [85B]
Fetched 1271kB in 2s (447kB/s)
Failed to fetch file:/sw/fink/dists/local/injected/binary-darwin-x86_64/Packages  File not found

Reading Package Lists... Done
Building Dependency Tree... Done
W: Couldn't stat source package list file: local/injected Packages (/sw/var/lib/apt/lists/_sw_fink_dists_local_injected_binary-darwin-x86%5f64_Packages) - stat (2 No such file or directory)
W: Couldn't stat source package list file: local/injected Packages (/sw/var/lib/apt/lists/_sw_fink_dists_local_injected_binary-darwin-x86%5f64_Packages) - stat (2 No such file or directory)
W: You may want to run apt-get update to correct these problems
E: Some index files failed to download, they have been ignored, or old ones used instead.

対処として正しいかは良くわかりませんが、とりあえず空のファイルを作ってみました。

sudo mkdir /sw/fink/dists/local/injected/binary-darwin-x86_64
sudo touch /sw/fink/dists/local/injected/binary-darwin-x86_64/Packages

これで、一応エラーは発生しなくなりました。なんか見慣れないログが出続けていますが、気にしない。???

Ign file: local/injected Release

ひとまず、ここまで。