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

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

# 手順の確認
[finkのニュースページ](http://www.finkproject.org/news/index.php?phpLang=en)をみると2017-10-03と2017-10-07の２回に分けて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](http://bindist.finkproject.org/10.13/dists/stable/main/binary-darwin-x86_64/base/fink_0.41.999.git-20171001.2306_darwin-x86_64.deb)がリンク切れになっているようでした。代わりに、[ディレクトリのURL](http://bindist.finkproject.org/10.13/dists/stable/main/binary-darwin-x86_64/base/)にアクセスするとファイル名が変更されているようでした。私が確認した時点では fink_0.42.0-121_darwin-x86_64.deb というファイル名でダウンロードできました。

```sh
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
```

ひとまず、ここまで。