Macports:過去の日付のバージョンのみを使用してポートをインストールするにはどうすればよいですか?
2年前、私はMacportsを使用して、OS X 10.9 "Mavericks"を実行しているコンピューターにDockerMachineのコピーをインストールしました。私がしなければならなかったのはタイプすることだけでしたsudo port install Docker-machine
、そしてMacportsは私が必要とするすべてを自動的にプルダウンしてコンパイルしました。
2020年8月の時点で、GoやMacportsのレガシーサポートフレームワークの最新バージョンにバグがあるため、これはMavericksでは機能しません。マーベリックスは非常に古いので、この破損は理解できます†。ただし、Docker Machineは2年前の時点で機能していたので、古いバージョンを使用してもかまいません。
クリーンなMacportsプレフィックスを使用して、過去の特定の日付の時点で存在していたソフトウェアのみを使用してポートをインストールするにはどうすればよいですか?私はないではない、単にドッカーマシンの古いバージョンをインストールしたい‡。私はドッカーマシンの古いバージョンをインストールしたい、ドッカーマシンが依存するとすべてのポートをなどGo
とLegacy Support
。
Debianでは、これは非常に簡単です。スナップショットを指すようにsources.listを編集するだけです。Macportsで同様のことを行うにはどうすればよいですか?Macportsプロジェクトの完全な履歴はGitで追跡されているので、それが可能であると確信しています。
†MacportsがMavericksをサポートしていることをうれしく思います。Homebrewがあれば、私は完全にSOLになります。
‡試してみましたが、うまくいきません。ポートとその依存関係がどのように相互接続されているかを考えると、これは特に驚くべきことではありません。参考までに、単一パッケージの古いバージョンをインストールする手順は、ここに記載されています。
回答
MacportsメーリングリストのLotharHaegerに、必要な重要なヒントを教えてくれてありがとう。私がしなければならなかったことは:
GithubからMacportsPortTreeのローカルコピーをチェックアウトします。
cd ~; git clone https://github.com/macports/macports-ports
ローカルポートツリーを以前の時点にリセットします。
cd macports-ports; git reset --hard
commit-hash-from-2018ローカルポートツリーのポートインデックスを生成します。
portindex
Macportsに、公式のオンラインポートツリーの代わりにローカルポートツリーを使用するように指示します。これを行うため
/opt/local/etc/macports/
に、テキストエディタでmacportsのsources.conf(通常は)を開き、ファイルの下部にあるデフォルトのURLをコメントアウトし、その後にmy-user-nameを追加しました。file:///Users/
/macports-ports [default]