自作に特定のバージョンの式をインストールするにはどうすればよいですか?たとえば、最新の9.0ではなくpostgresql-8.4.4です。
TLDR:brew install [email protected]
詳細については、 下記の回答 を参照してください。
*(homebrewで古いソフトウェアバージョンをインストール/使用するためのより完全なワークフローを提供するために回答を再編集しました。古いバージョンの方がよかったらメモを追加してください。)
最も単純なケースから始めましょう。
Homebrewが新しい数式をインストールすると、/usr/local/Cellar/postgresql/9.3.1
のようなバージョン管理されたディレクトリに保存されます。このフォルダへのシンボリックリンクのみがグローバルにインストールされます。これにより、原則として、インストールされている2つのバージョンを簡単に切り替えることができます。 (*)
長い間homebrewを使用していて、古いバージョンを削除したことがない場合(たとえば、brew cleanup
を使用)、プログラムの古いバージョンがまだ残っている可能性があります。以前のバージョンを単純にアクティブにしたい場合、brew switch
がこれを行う最も簡単な方法です。
古いバージョンがインストールされているかどうかをbrew info postgresql
(またはbrew switch postgresql <TAB>
)で確認します。
$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M)
Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more
古いバージョンがすでにインストールされていることがわかります。 brew switch
を使用して有効化できます:
$ brew switch postgresql 9.1.5
Cleaning /usr/local/Cellar/postgresql/9.1.5
Cleaning /usr/local/Cellar/postgresql/9.3.2
384 links created for /usr/local/Cellar/postgresql/9.1.5
アクティブ化されているものを再確認しましょう:
$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M) *
Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M)
Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more
スター*
が新しくアクティブ化されたバージョンに移動したことに注意してください
(*)brew switch
は、古いバージョンのすべての依存関係が残っている場合にのみ機能することに注意してください。場合によっては、古いバージョンの再構築が必要になることがあります。したがって、brew switch
を使用することは、2つのバージョンをあまり離れていない状態に切り替えたい場合に役立ちます。
特に大規模なソフトウェアプロジェクトの場合、特定のソフトウェアのいくつかの(API互換性がない可能性がある)メジャーバージョンに対する十分な需要がある可能性が非常に高いです。 2012年3月現在、 Homebrew 0.9 はこのためのメカニズムを提供します:brew tap
および homebrewバージョン リポジトリ。
そのバージョンリポジトリには、いくつかの式の古いバージョンのバックポートが含まれる場合があります。 (ほとんどが大規模で有名なものだけですが、もちろんpostgresqlのいくつかの式もあります。)
brew search postgresql
はどこを見るべきかを示します:
$ brew search postgresql
postgresql
homebrew/versions/postgresql8 homebrew/versions/postgresql91
homebrew/versions/postgresql9 homebrew/versions/postgresql92
入力するだけでインストールできます
$ brew install homebrew/versions/postgresql8
Cloning into '/usr/local/Library/Taps/homebrew-versions'...
remote: Counting objects: 1563, done.
remote: Compressing objects: 100% (943/943), done.
remote: Total 1563 (delta 864), reused 1272 (delta 620)
Receiving objects: 100% (1563/1563), 422.83 KiB | 339.00 KiB/s, done.
Resolving deltas: 100% (864/864), done.
Checking connectivity... done.
Tapped 125 formula
==> Downloading http://ftp.postgresql.org/pub/source/v8.4.19/postgresql-8.4.19.tar.bz2
# …
これは自動的にtapped the homebrew/versions
tapになっていることに注意してください。 (brew tap
で確認し、brew untap homebrew/versions
で削除します。)以下は同等でした:
$ brew tap homebrew/versions
$ brew install postgresql8
バックポートされたバージョンの式が最新である限り、このアプローチはおそらく古いソフトウェアに対処する最良の方法です。
以下のアプローチは、主に完全性のためにリストされています。両方とも、醸造リポジトリからいくつかのアンデッド式を復活させようとします。依存関係の変更、APIの式の仕様の変更、または単にダウンロードURLの変更により、動作する場合としない場合があります。
式ディレクトリ全体がgitリポジトリであるため、プレーンなgitコマンドを使用して特定のバージョンをインストールできます。ただし、古いバージョンが使用可能であったコミットを取得する方法を見つける必要があります。
a)歴史的時代
2011年8月から2014年10月の間、homebrewにはbrew versions
コマンドがあり、それぞれのSHAで利用可能なすべてのバージョンを吐き出しました_ハッシュ。 2014年10月の時点で、brew tap homebrew/boneyard
を使用してから使用する必要があります。タップの名前が示すように、おそらく最後の手段としてこれを行う必要があります。
例えば。
$ brew versions postgresql
Warning: brew-versions is unsupported and may be removed soon.
Please use the homebrew-versions tap instead:
https://github.com/Homebrew/homebrew-versions
9.3.2 git checkout 3c86d2b Library/Formula/postgresql.rb
9.3.1 git checkout a267a3e Library/Formula/postgresql.rb
9.3.0 git checkout ae59e09 Library/Formula/postgresql.rb
9.2.4 git checkout e3ac215 Library/Formula/postgresql.rb
9.2.3 git checkout c80b37c Library/Formula/postgresql.rb
9.2.2 git checkout 9076baa Library/Formula/postgresql.rb
9.2.1 git checkout 5825f62 Library/Formula/postgresql.rb
9.2.0 git checkout 2f6cbc6 Library/Formula/postgresql.rb
9.1.5 git checkout 6b8d25f Library/Formula/postgresql.rb
9.1.4 git checkout c40c7bf Library/Formula/postgresql.rb
9.1.3 git checkout 05c7954 Library/Formula/postgresql.rb
9.1.2 git checkout dfcc838 Library/Formula/postgresql.rb
9.1.1 git checkout 4ef8fb0 Library/Formula/postgresql.rb
9.0.4 git checkout 2accac4 Library/Formula/postgresql.rb
9.0.3 git checkout b782d9d Library/Formula/postgresql.rb
ご覧のとおり、使用しないことをお勧めします。 Homebrewは、発見可能なすべてのバージョンを内部ヒューリスティックで吐き出し、古い式を取得する方法を示します。試してみよう。
# First, go to the homebrew base directory
$ cd $( brew --prefix )
# Checkout some old formula
$ git checkout 6b8d25f Library/Formula/postgresql.rb
$ brew install postgresql
# … installing
古いpostgresqlバージョンがインストールされたので、リポジトリをクリーンに保つために最新の式を再インストールできます。
$ git checkout -- Library/Formula/postgresql.rb
brew switch
は、古いものと新しいものを切り替えるための友達です。
b)先史時代
特別なニーズについては、自家製のレポを掘り下げることもできます。
$ cd Library/Taps/homebrew/homebrew-core && git log -S'8.4.4' -- Formula/postgresql.rb
git log -S
は、ファイル'8.4.4'
で文字列Library/Taps/homebrew/homebrew-core/Formula/postgresql.rb
が追加または削除されたすべてのコミットを探します。結果として2つのコミットを取得します。
commit 7dc7ccef9e1ab7d2fc351d7935c96a0e0b031552
Author: Aku Kotkavuo
Date: Sun Sep 19 18:03:41 2010 +0300
Update PostgreSQL to 9.0.0.
Signed-off-by: Adam Vandenberg
commit fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
Author: David Höppner
Date: Sun May 16 12:35:18 2010 +0200
postgresql: update version to 8.4.4
明らかに、fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
は私たちが興味を持っているコミットです。このコミットはかなり古いので、homebrewインストール全体をダウングレードしようとします(そのようにして、式APIの有効性は多少保証されます)。
$ git checkout -b postgresql-8.4.4 fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
$ brew install postgresql
$ git checkout master
$ git branch -d postgresql-8.4.4
最後のコマンドをスキップして、gitリポジトリに参照を保持できます。
注:古いコミットをチェックアウトするとき、homebrewインストールを一時的にダウングレードします。したがって、homebrewの一部のコマンドは最新バージョンと異なる場合があるため、注意が必要です。
それほど難しくありません そして、それを自分のリポジトリにアップロードできます。以前は Homebrew-Versions でしたが、現在は廃止されています。
たとえば、postgresqlなどの特定のバージョンを保持し、自然なbrew update; brew upgrade
プロシージャを実行するときに更新されないようにする場合は、pin式を使用できます。
$ brew pin postgresql
ピン留めされた数式は/usr/local/Library/PinnedKegs/
にリストされており、最新の変更と更新を取り入れたい場合は、npin it:
$ brew unpin postgresql
Homebrew/versionsが非推奨になったので、Homebrew/coreは新しい命名フォーマットで複数のバージョンの式をサポートします。
特定のバージョンをインストールするにはpostgresql 9.5を実行するだけです。
$ brew install [email protected]
利用可能なバージョンを一覧表示するには、@で検索を実行します。
$ brew search postgresql@
==> Searching local taps...
[email protected] ✔ [email protected] [email protected] [email protected]
以前インストールした式の古いバージョンをインストールするためのはるかに簡単な方法があります。単に使う
brew switch [formula] [version]
たとえば、Node.js 0.4.12と0.6.5を定期的に入れ替えます。
brew switch node 0.4.12
brew switch node 0.6.5
brew switch
はシンボリックリンクを変更するだけなので、非常に高速です。 Homebrew Wikiの External Commands の下にある他のドキュメントを参照してください。
更新日:2015年1月15日
brew install <url>
(brew unlink
を最初にする必要があるかもしれません、例えばbrew unlink docker
)brew switch docker 1.3.3
brew switch docker 1.4.1
こちらから 要旨
brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb # reset formula
## Example: Using Subversion 1.6.17
#
# $ brew versions Subversion
# 1.7.3 git checkout f8bf2f3 /usr/local/Library/Formula/Subversion.rb
# 1.7.2 git checkout d89bf83 /usr/local/Library/Formula/Subversion.rb
# 1.6.17 git checkout 6e2d550 /usr/local/Library/Formula/Subversion.rb
# 1.6.16 git checkout 83ed494 /usr/local/Library/Formula/Subversion.rb
# 1.6.15 git checkout 809a18a /usr/local/Library/Formula/Subversion.rb
# 1.6.13 git checkout 7871a99 /usr/local/Library/Formula/Subversion.rb
# 1.6.12 git checkout c99b3ac /usr/local/Library/Formula/Subversion.rb
# 1.6.6 git checkout 8774131 /usr/local/Library/Formula/Subversion.rb
# 1.6.5 git checkout a82e823 /usr/local/Library/Formula/Subversion.rb
# 1.6.3 git checkout 6b6d369 /usr/local/Library/Formula/Subversion.rb
# $ cd `brew --prefix`
# $ git checkout 6e2d550 /usr/local/Library/Formula/Subversion.rb
# $ brew install Subversion
# $ brew switch Subversion 1.6.17
# $ git checkout -- Library/Formula/Subversion.rb
私は他の複雑な解決策よりも優れた代替解決策を発見しました。
brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb
これはPostgreSQL 8.4.8をダウンロードしてインストールします。
私は、リポジトリ内のリポジトリと コメント を検索する手順に従うことで、この解決策を見つけました。
ちょっとした調査の結果、誰かが醸造するための珍しい処方集を持っていることがわかりました。
MySQL 5.1.xをお探しなら、ぜひ試してください。
brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
@ halfcubeの提案に沿って、これは本当にうまくいきます:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
式を識別する戦略と、インストールするパッケージのバージョンに一致する式の履歴内の特定のコミットを使用できます。
キーボードのt
を押して、ファイルファインダーをアクティブにします。
最も関連性が高いと思われる式を特定します。おそらく、Formula/mysql.rb
で、forumlaファイルの場所に移動します。 https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql。 rb 。
https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb にあるHistory
ボタンをクリックして、改訂履歴を確認します。 。 MySQL 5.7.10に興味がある場合は、5.7.11より前の最新のリビジョンをクリックすると、GitHubコミットに移動できます。
注:コミット履歴がブラウザにロードされない場合、GitHubの提案に従って、コンソールでコミット履歴を表示する必要がある場合があります。 GitHubでそのコミットを見たい場合は、URLの上記のコミットSHAを置き換えます。または、以下の手順7にスキップします。
コミットが適用された後、「表示」ボタンをクリックしてmysql.rbファイルのソースを表示します。
次に、「Raw」ボタンをクリックして、未加工のソースを表示します。
URLをコピーします。または、mysql.rb
ファイル名を使用して自分でURLを作成し、式とその式の特定のバージョン(以下のURLのコミットSHAで識別)を識別します。
$ brew install [URL from step 7]
でインストールします
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
注:この回答は、braumeister.org Webサイトの削除を説明するために更新されました。同じ原則が当てはまり、ブラウメスターは、数式バージョンをナビゲートするための初心者向けの方法を単に提供していました。
単純なbrew install maven
がMaven 3.0.3をインストールしたので、私はHomebrewを使ってMaven 2.2.1に戻りました。
最初にあなたはそこにMaven dirをそこに残さなければなりません
$ unlink mavenを作成しました
Brew tapコマンドを使う
$ brew tap homebrew/versions '/usr/local/Library/Taps/homebrew-versions'へのクローン作成.... remote:オブジェクトの数を数える:590、完了しました。リモート:圧縮オブジェクト:100%(265/265)、終了 リモート:合計590(デルタ362)、再利用549(デルタ325) 受信オブジェクト:100%( 590/590)、117.49 KiB | 79 KiB/s、完了 デルタの分解:100%(362/362)、完了 50式をタップ
今、あなたはmaven2公式をインストールすることができます:
$ brew install maven2 ==> http://www.Apache.org/dist/maven/maven-2/2.2.1/binaries/Apache-maven-2.2.1-のダウンロードbin.tar.gz ######################################## ################################ 100.0% /usr/local/Cellar/maven2/2.2 6秒で構築された1:10ファイル、3.1M
$ mvn --version Apache Maven 2.2.1(r801777; 2009-08-06 12:16:01-0700) Javaバージョン:1.6.0_37 Javaホーム:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home デフォルトロケール:en_US、プラットフォームエンコード:MacRoman OS名: "mac os x"バージョン: "10.7.4"アーチ: "x86_64"ファミリ: "mac"
編集: 別のバージョンに切り替えるためにbrew switch maven 2.2.1
を実行することもできます。
編集: Apache Mavenプロジェクトはリポジトリを再編成しました。この変更を説明するためにこの回答を更新しました。
@tschundeee および @ Debilskiのupdate 1 で説明されているワークフローに基づいて、手順を自動化し、 このスクリプト にクリーンアップを追加しました。
ダウンロードしてください 、パスに入れてbrewv <formula_name> <wanted_version>
。特定のOPの場合は、次のようになります。
cd path/to/downloaded/script/
./brewv postgresql 8.4.4
:)
他の答えのほとんどは今では時代遅れです。残念ながら、Homebrewには古いバージョンをインストールする組み込みの方法がありません。ただし、そのバージョンが別の数式として存在しない限り(例:python@2
、[email protected]
…)。
幸いなことに、他のフォーミュラには、以前は必要だった複雑な混乱よりもはるかに簡単な方法があります。完全な手順は次のとおりです。
ログで正しいバージョンを検索します。
brew log formula
# Scroll down/up with j/k or the arrow keys
# or use eg. /4\.4\.23 to search a specific version
# This syntax only works on pre-2.0 Homebrew versions
brew log --format=format:%H\ %s -F --grep=‹version› ‹formula›
これにより、コミットハッシュのリストが表示されます。適切なものを取ります(ほとんどの場合、それはかなり明白である必要があり、通常は最新(つまりトップ)のものです)。
アップストリームリポジトリで式が存在するURLを見つけます。
brew info ‹formula› | grep ^From:
URLを修正します。
github.com
をraw.githubusercontent.com
に置き換えますblob/master
を最初のステップで見つけたコミットハッシュに置き換えます。以前に見つかったURLのmaster
をコミットハッシュに置き換えて、目的のバージョンをインストールします。例:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/‹hash›/Formula/‹formula›.rb
(最後の手順では、前にbrew unlink ‹formula›
を実行する必要があります。)
使用するコミットハッシュをコピーした場合は、この例のようなものを使用してそのバージョンをインストールし、値とbash
をコミットハッシュと目的の式に置き換えます。
BREW_VERSION_SHA=32353d2286f850fd965e0a48bcf692b83a6e9a41
BREW_FORMULA_NAME=bash
brew info $BREW_FORMULA_NAME \
| sed -n \
-e '/^From: /s///' \
-e 's/github.com/raw.githubusercontent.com/' \
-e 's%blob/%%' \
-e "s/master/$BREW_VERSION_SHA/p" \
| xargs brew install
この例では、bash 5の代わりにbash 4.4.23をインストールしていますが、後でbrew upgrade
を実行すると、最初にbrew pin bash
を実行しない限り、bash 5が上書きインストールされます。固定せずにこのスムーズにするために、最初にbrew install bash
で最新のものをインストールし、次にbrew unlink bash
をインストールしてから、上記のスクリプトに従って必要な古いバージョンをインストールし、brew switch bash 4.4.23
を使用して設定する必要があります古いバージョンへのシンボリックリンクを作成します。これで、brew upgrade
はBashのバージョンに影響しないはずです。 brew switch bash
を使用して、切り替え可能なバージョンのリストを取得できます。
同じ目標を達成する別の方法は次のように見えます:
brew tap-new username/repo-name
# extract with a version seems to run a grep under the hood
brew extract --version='4.4.23' bash username/repo-name
brew install [email protected]
# Note this "fails" when trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.
これにより、上記の例でインストールできるカスタムタップにformula@version
が作成されます。欠点は、おそらく特定のバージョンのBashまたは他の数式を使用するために、brew unlink bash
を実行してからbrew link [email protected]
を実行する必要があることです。
それ以降の更新された回答は、@ lance-pollardがすでに実用的な回答として投稿したものに追加されます。
式の特定のバージョンをインストールする方法(この例で使用されている式はterraform
):
git log master -- Formula/terraform.rb
を使用して、githubの履歴からコミットバージョンを取得します。brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
でインストールしてください。自作の最新版(この記事を執筆している時点で0.9.5)では、インストールしたい自作樽のバージョンに合ったレシピがあります。例:
$ brew search mongodb
mongodb mongodb24 mongodb26
それから通常どおりにbrew install mongodb26
を実行してください。
最新版をすでにインストールしている場合は、必ず最新版のリンクを解除し、目的のバージョンのbrew unlink mongodb && brew link mongodb26
をリンクしてください。
homebrew/versions
の問題は、あなたがそれを使用することができるようにするために誰かがその特定のバージョンのソフトウェアをリポジトリに記載しなければならないということです。また、brew versions
はサポートされなくなったため、別の解決策が必要です。 brew switch
を使用することを示す解決策のために、バージョンがあなたのコンピュータに存在する必要があるのであなたがbrew cleanup
をしなかったならば、これは働くだけです。
docker-machine
にリストされていなかった特定の古いバージョンのhomebrew/versions
をインストールしたいという問題がありました。私は以下を使ってこれを解決しました。以下の例では、バージョン0.5.0から0.4.1にダウングレードするパッケージとしてdocker-machine
を使用します。
あなたの自作Formula
ディレクトリに行きます。 brew info [any package name]
を実行してこれを判断できます。 例えば、brew info docker-machine
は私にパスを示す行を与えます - /usr/local/Cellar/docker-machine/0.5.0
。これは私のマシンでは、自作は/usr/local
にインストールされ、私のFormula
ディレクトリはデフォルトで/usr/local/Library/Formula
にあることを私に伝えています
パッケージの特定の式ファイル(.rb)を見つけます。 docker-machine
をダウングレードしたいので、docker-machine.rb
ファイルを見ることができます。
この式ファイルのバージョン履歴を取得する 。 git log docker-machine.rb
を入力してください。これにより、このファイルの完全なコミット履歴が一覧表示されます。あなたはこのような出力を見るでしょう:
... more commit 20c7abc13d2edd67c8c1d30c407bd5e31229cacc 作成者:BrewTestBot 作成日:2015年11月5日16時14分18秒+ 00:00 ] docker-machine:0.5.0ボトルを更新します。 commit 8f615708184884e501bf5c16482c95eff6aea637 作成者:Vincent Lesierse 作成日:Tue Oct 27 22: 25:30 2015 + 0100 docker-machine 0.5.0 docker-machineを0.5.0に更新しました #45403を閉じます。 [.____。サインオフ:Dominyk Tiller commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 作成者:Mon Sep 21 14:04:04 2015 +0100 docker-machine:0.4.1ボトルを更新します。 commit 18fcbd36d22fa0c19406d699308fafb44e4c8dcd 著者:BrewTestBot 日付:日Aug 16 09:05:56 2015 + 0100 docker-machine:更新0.4.1のボトル ...もっと
難しい部分は、あなたが望む特定のバージョンに対する最新のコミットを見つけることです。上記で、私は最新の0.4.1バージョンがこのコミットタグでコミットされたことを伝えることができます:commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423
。これより上のコミットではバージョン0.5.0が使用されています(gitのログエントリは最新のものから順に記載されています)。
前のバージョンの式ファイルを入手します。 ステップ#3のコミットタグ(最初の6文字を使用できます)を使用すると、次のようにして古いバージョンの式ファイルを入手できます。
git checkout 5970e1 docker-machine.rb
現在のパッケージバージョンをアンインストールします。 通常のbrewコマンドを実行して、現在のバージョンのパッケージをアンインストールするだけです。
例brew uninstall docker-machine
古いパッケージバージョンをインストールする これで、通常のbrew installコマンドを実行するだけで、チェックアウトした式がインストールされます。 brew install docker-machine
必要に応じてbrew link docker-machine
を使用して再リンクする必要があるかもしれません。
特定のパッケージの最新バージョンに戻す場合は、いつでもFormulaディレクトリに移動して、式ファイル(.rb)で次のコマンドを発行してください。
git reset HEAD docker-machine.rb
git checkout -- docker-machine.rb
その後、brew uninstall docker-machine
とbrew install docker-machine
を使って最新バージョンを入手し、それを今後も継続することができます。
それは醸造の最後のバージョンのために非常に簡単にすることができました。
brew tap homebrew/versions
brew install Subversion17 # for svn 1.7 branch instead of last available
brew install postgresql8 # for postgresql 8 (which you ask)
これらのどれも私の場合(Python)に実際にはうまくいきませんでした、それで私は私の2セントを加えます
cd `brew --prefix`
git log Library/Formula/python.rb
出力は次のようになります。
commit 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de Author: Dominyk Tiller <[email protected]> Date: Thu Jun 30 17:42:18 2016 +0100 python: clarify pour_bottle reason commit cb3b29b824a264895434214e191d0d7ef4d51c85 Author: BrewTestBot <[email protected]> Date: Wed Jun 29 14:18:40 2016 +0100 python: update 2.7.12 bottle. commit 45bb1e220341894bbb7de6fd3f6df20987dc14f0 Author: Rakesh <[email protected]> Date: Wed Jun 29 10:02:26 2016 +0530 python 2.7.12 Closes #2452. Signed-off-by: Tim D. Smith <[email protected]> commit cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 Author: BrewTestBot <[email protected]> Date: Fri Jun 17 20:14:36 2016 +0100 python: update 2.7.11 bottle. ...
私はバージョン2.7.11
が欲しいので私のハッシュはcf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
(または略してcf5da05
)です。次に、そのバージョンをチェックアウトして、python
という式をインストールします。
git checkout cf5da05
brew install python
最後に、クリーンアップします。
git checkout master
あなたがbrew search <formula>
であなたのバージョンを見つけることができないなら、あなたはあなたが望むバージョンを見つけるためにあなたの式のためにコミットログを調べてみることもできます:
これは、brew経由で古いバージョンのnginxをインストールするための例です。
nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049
を参照してください。
そこから、shaと生のgitのURLで1.6.3
をインストールできます。
brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
OR
git clone [email protected]:Homebrew/homebrew-core.git
git log master -- Formula/flyway.rb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Library/Formula/flyway.rb
私はここで解決策のほとんどを試してみました、そしてそれらは時代遅れです。私はここからいくつかのアイデアを自分の作品と組み合わせる必要がありました。その結果、私はあなたが見つけることができる重いものをやるのを助けるためにスクリプトを作成しました ここ
使用法: brewv.sh formula_name desired_version
現在、特定の数式バージョンをインストールする古い方法は推奨されていません。だから私たちはbrew edit [formula]
を使わなければならないようです。例えば。 62.1
のicu4c
バージョンをインストールしたいとします(例えばpostgresql 10.5
に必要です)。それならあなたはしなければならないでしょう
> brew edit icu4c
# drops you to editor
ここでは、url
、version
、およびsha256
(おそらくmirror
も)を対応する62.1
ストリングに変更する必要があります。
url "https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz"
mirror "https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz"
version "62.1"
sha256 "3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3"
それからbrew reinstall icu4c
を実行して最後に62.1
バージョンをダウンロードします。
私はちょうど古いリリースのelasticsearchを/usr/local/Cellar/elasticsearch
ディレクトリにコピーしました。
$ mkdir /usr/local/Cellar/elasticsearch/5.4.3/bin
$ cp elasticsearch /usr/local/Cellar/elasticsearch/5.4.3/bin
$ brew switch elasticsearch 5.4.3
それはそれです。多分それは誰にとっても役に立つでしょう。
残念ながら、Homebrewはまだ 明白な 古いバージョンをインストールする方法を持っていません。
幸いなことに、ほとんどの数式では、以前は必要だった複雑な混乱よりもはるかに簡単な方法があります。例としてbash
を使った完全な説明は以下のとおりです。
brew tap-new $USER/local-tap
# extract with a version seems to run a `git log --grep` under the hood
brew extract --version=4.4.23 bash $USER/local-tap
# Install your new version from the tap
brew install [email protected]
# Note this "fails" trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.
これはあなたのカスタムタップにformula@version
を作成し、あなたは上記の例に従ってインストールすることができます。重要な注意点は、デフォルトの/最新バージョンの式をインストールしたことがある場合はbrew unlink bash
、次にBashの特定のバージョン(または最新バージョンと古いバージョンがインストールされている場合はその他の式)を使用する場合はbrew link [email protected]
を必要とすることです。 。
この方法の潜在的なマイナス面は、brew
によれば「異なる式」であるため、バージョンを簡単に切り替えることができないことです。
brew switch $FORMULA $VERSION
を使いたいのなら、次のメソッドを使うべきです。
この例は古いbash 4.4.23のインストールを示しています。これはbash
の公式が現在bash 5をインストールしているので便利な例です。
brew install bash
を使って式の最新版をインストールしてくださいbrew unlink bash
brew switch bash 4.4.23
を使ってあなたのバージョンにシンボリックリンクを設定します。最初に最新版をインストールせずに古いバージョンをインストールした後にbrew upgrade
を実行した場合、最初にbrew pin bash
を実行しない限り、最新版が古いバージョンを上書きしてインストールされます。
ここでの手順は、忘れがちであり、将来的に安全でなくなるバージョンに固定する可能性があるため、固定を避けてください(Shellshock/etcを参照)。この設定でbrew upgrade
はあなたのBashのバージョンに影響を与えるべきではなく、いつでもbrew switch bash
を実行して切り替えることができるバージョンのリストを得ることができます。
以下のコードスニペットのexport
行をコピーして貼り付けて編集し、目的のバージョンと式の名前で更新してから、残りをそのままコピーして貼り付けると、これらの変数を使用して魔法を実行します。
# This search syntax works with newer Homebrew
export BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash
# This will print any/all commits that match the version and formula name
git -C $(brew --repo homebrew/core) log \
--format=format:%H\ %s -F --all-match \
--grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME
バージョンが式に存在することが確実な場合は、以下を使用できます。
# Gets only the latest Git commit SHA for the script further down
export BREW_FORMULA_VERSION_SHA=$(git -C $(brew --repo homebrew/core) log \
--format=format:%H\ %s -F --all-match \
--grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME | \
head -1 | awk '{print $1}')
使用したいコミットハッシュをエクスポートしたら、これを使用してそのバージョンのパッケージをインストールできます。
brew info $BREW_FORMULA_NAME \
| sed -n \
-e '/^From: /s///' \
-e 's/github.com/raw.githubusercontent.com/' \
-e 's%blob/%%' \
-e "s/master/$BREW_FORMULA_VERSION_SHA/p" \
| xargs brew install
式の出力の指示に従ってPATHに配置するか、デフォルトのシェルとして設定してください。
Library/Formula/postgresql.rbの8行目を次のように更新します。
http://ftp2.uk.postgresql.org/sites/ftp.postgresql.org/source/v8.4.6/postgresql-8.4.6.tar.bz2
そして9行目のMD5
fcc3daaf2292fa6bf1185ec45e512db6
保存して終了。
brew install postgres
initdb /usr/local/var/postgres
今この段階でpostgresql could not create shared memory segment
エラーに直面するかもしれません、そのように/etc/sysctl.conf
を更新することを回避するためには:
kern.sysv.shmall=65536
kern.sysv.shmmax=16777216
もう一度initdb /usr/local/var/postgres
を試してください、そしてそれはスムーズに走るはずです。
起動時にpostgresqlを実行する
launchctl load -w /usr/local/Cellar/postgresql/8.4.6/org.postgresql.postgres.plist
それが役立つことを願っています:)
現在デフォルトのBREW式にないバージョンでは、 https://github.com/buildtools-version-taps/homebrew-versions-tap-tool からツールを使用して独自のタップを簡単に作成できます
私の判断に反して、homebrew/versions
にはなかったMaven 3.1.1の式を作成することにしました。これをする:
homebrew/versions
をフォークしました。$(brew --prefix)/Library/Taps
から自分のフォークのローカル作業コピーにシンボリックリンクを張った。これをmy-homebrew/versions
と呼びます。my-homebrew/versions/<formula>
として指定してテストしました。homebrew/versions
にpull requestを送りました。わーい。