Fink

Fink パッケージをローカルで最新にする

More than 3 years have passed since last update.

Fink パッケージを使っていると、使いたいバージョンより古いバージョンしかないパッケージがあります。自分で更新してしまいましょう。

例として、Ruby モジュールの sqlite3-rb22 を使用します。 


ローカル環境を準備

まず、公式ディストリビューションではなく、自分のパッケージ記述ファイルを保存する場所を準備します。

書類フォルダーのなかに、 finkinfo というフォルダへのシンボリックリンクを作ります。

$ sudo chmod o+w /sw/fink/dists/local/main/finkinfo

$ ln -s /sw/fink/dists/local/main/finkinfo ~/Documents/


現在のパッケージ記述ファイルをローカル環境にコピー

つぎに、現在のパッケージ記述ファイルを探し、自分の場所にコピーします。

$ fink dumpinfo -finfofile sqlite3-rb22

Information about 9119 packages read in 2 seconds.

infofile: /sw/fink/dists/stable/main/finkinfo/libs/rubymods/sqlite3-rb.info

$ cp /sw/fink/dists/stable/main/finkinfo/libs/rubymods/sqlite3-rb.info ~/Documents/finkinfo


パッケージ記述ファイルを更新

この sqlite3-rb.info を、テキストエディタで開きます。

変更するのは、2〜3点です。

Version: 1.3.10

Source-MD5: 68db47dc14ebb00f27f77fab346a6ce2
Source-Checksum: SHA1(6bbe47c3e690568b9aaf2c7d9aca59a069608b1e)

まず、 Version を最新のもの (1.3.11) にします。

この状態で、いちど fink でダウンロードしてみましょう。

$ fink fetch sqlite3-rb22

Downloading the file "sqlite3-1.3.11.gem" failed.

(1) Give up
(2) Retry the same mirror
(3) Retry another mirror from your country
(4) Retry another mirror
(5) Retry using original source URL

ここで、(5) を選択します。

Expected: 68db47dc14ebb00f27f77fab346a6ce2

Actual: MD5(1cb7c23bbb8890bffc9d4467c3b58eac)
SHA1(c6e8cc2ddf94824321a86923e8aae71e1f7ee1a6)

これは、旧バージョンの MD5 なので、異なるのは当然です。

この MD5 と SHA1 の値を、先ほどのファイルにコピペします。

もちろん、これではチェックしたことにならないので、本来はホームページ等に書かれている MD5 や SHA1 をコピペします。


最新バージョンをインストール

これでバージョンが更新されたので、

$ fink install sqlite3-rb22

とします。


本家へアップロード

作成した最新パージョンは、Fink/Package Submissionsにアップロードしましょう。

SourceForge のアカウントが必要です。

Fink は、github に移行途中です。


参考

Fink は、ドキュメントがしっかりしており、日本語版もほぼ最新です。マニュアルを読みましょう。

パッケージの作成方法