170

私は同じパッケージの樽をいくつか持ってい/usr/local/Cellar/libfooます/usr/local/Cellar/libfoo/1.0.1/usr/local/Cellar/libfoo/HEADそして/usr/local/Cellar/libfoo/mycopy

特定のバージョンへのリンクを作成するにはどうすればよいですか?

4

8 に答える 8

320

Homebrew 2.6.0(2020年12月)で非推奨。実用的なソリューションについては、最後の更新にスキップしてください

使用情報:

Usage: brew switch <formula> <version>

例:

brew switch mysql 5.5.29

システムにインストールされているバージョンは、で見つけることができますinfo

brew info mysql

また、インストール可能なバージョンを確認するために、不発のバージョン番号を指定できます。これは、brewが利用可能なバージョン番号で役立つように応答するためです。

brew switch mysql 0

更新(2014年10月15日):

このbrew versionsコマンドはbrewから削除されましたが、このコマンドを使用する場合は、最初にを実行してbrew tap homebrew/boneyardください。

古いバージョンをインストールするための推奨される方法は、homebrew/versions次のようにリポジトリからインストールすることです。

$ brew tap homebrew/versions
$ brew install mysql55

アップデート(11.1.2022):

これはおそらく今日の時点で最良の方法です

特定のバージョン、たとえばpostgresql 9.5をインストールするには、次のコマンドを実行するだけです。

$ brew install postgresql@9.5

使用可能なバージョンを一覧表示するには、@で検索を実行します。

$ brew search postgresql@
==> Formulae
postgresql                 postgresql@11              postgresql@13              postgresql@9.5             qt-postgresql
postgresql@10              postgresql@12              postgresql@9.4             postgresql@9.6             postgrest

==> Casks
navicat-for-postgresql

古いバージョンの数式をインストールするすべての方法の詳細については、この回答をお読みください。

于 2013-06-14T07:58:07.383 に答える
23

悲しいことに、 Homebrew 2.6.0(2020年12月)brew switchで非推奨になりました

$ brew switch
Error: Unknown command: switch

packageTLDR、バージョンに切り替えるには10

brew unlink package
brew link package@10

パッケージの別のバージョンを使用するには、次に例を示しnodeます。

  • まず、を使用して特定のバージョンがインストールされていることを確認しbrew listます。ここでの私のパッケージはnode(16)とnode@14です。
➜  ~ brew list
==> Formulae
node
node@14

➜  ~ node -v
v16.1.0
  • 現在のパッケージのリンクを解除しますbrew unlink node
➜  ~ brew unlink node
Unlinking /usr/local/Cellar/node/16.1.0... 7 symlinks removed.
  • 正しいバージョンをリンクする
➜  ~ brew link node@14
Linking /usr/local/Cellar/node@14/14.16.1_1... 3857 symlinks created.

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/node@14/bin:$PATH"' >> ~/.zshrc
➜  ~ node -v
v14.16.1
于 2021-05-12T07:41:37.010 に答える
11

#machomebrewで質問したところ、brewswitchを使用してバージョンを切り替えることができることがわかりました。

$ brew switch libfoo mycopy 

libfooのバージョンmycopyを取得します。

于 2012-11-20T16:36:57.027 に答える
4

たとえば、php 5.4をインストールした場合は、次の方法でphp5.5に切り替えることができます。

$ php --version
PHP 5.4.32 (cli) (built: Aug 26 2014 15:14:01) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

$ brew unlink php54

$ brew switch php55 5.5.16

$ php --version
PHP 5.5.16 (cli) (built: Sep  9 2014 14:27:18) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
于 2014-09-09T11:37:08.757 に答える
4

brew switch libfoo mycopy

brew switch同じパッケージがバージョン管理されたサブディレクトリとしてインストールされている場合は、同じパッケージのバージョンを切り替えるために使用できます。Cellar/<packagename>/

これにより、インストールされているバージョンが一覧表示されます(たとえばCellar/sdl2/2.0.3、私が持っていた、コンパイルしたCellar/sdl2/2.0.4

brew info sdl2

次に、それらを切り替えます

brew switch sdl2 2.0.4
brew info 

情報*が2.0.4の横に表示されるようになりました

ソースからインストールするにCellar/<packagename>/<version>は、たとえば次のように実行できます

cd ~/somewhere/src/foo-2.0.4
./configure --prefix $(brew --Cellar)/foo/2.0.4
make

でインストールされる場所を確認してください

make install -n

すべてが正しいように見える場合

make install

次に、cd $(brew --Cellar)バージョンを切り替えます。

使っていますbrew version 0.9.5

于 2014-11-29T06:55:00.817 に答える
4

HomebrewはHomebrew2.6.0brew switchでサブコマンドを削除しました。ここから取り戻します。

brew tap laggardkernel/tap
brew switch --help

name@version式

古いバージョンのアプリに切り替えるには、主に2つの方法があります。

それがより大きなバージョン変更である場合。Homebrewは、リポジトリにバージョン管理されたパッケージを作成した可能性があります。、のようgogo@1.10、それらは2つの異なる数式であり、2つの異なる場所にインストールされます。

# install the old one
brew install go@1.10

# link the executable into /usr/local/bin, or /opt/homebrew/bin
brew link --overwrite --force go@1.10

醸造スイッチ

ただし、すべてのパッケージにバージョン管理されたバリアントがあるわけではありません。新しいバージョンにアップグレードしたばかりで、古いバージョンがまだシステムに残っている場合は、手順1、2をスキップしてください。

  1. この状況では、homebrew-coreリポジトリを検索し、特定の式をダウンロードします。例:mysql 8.0.23
  2. ファイルをダウンロードし、そこからインストールしますbrew install /path/to/downloaded/mysql.rb
  3. これで、最新と古い8.0.23(同じ式mysql)の両方が存在します。古いバージョンを次のように切り替えます(リンクアウトします)。brew switch mysql 8.0.23

brew info mysqlまだ存在するすべての古いバージョンが一覧表示されます。

ステップ1、2は、に置き換えることができますbrew extractが、ユーザーが独自のタップを維持する必要があります。ここでは取り上げません。興味があれば検索してください。

于 2021-05-23T05:31:42.260 に答える
2

エラーが発生した場合brew switch(この例では、ノードバージョン14に切り替えようとしています):

> brew switch node 14
Error: Calling `brew switch` is disabled! Use `brew link` @-versioned formulae instead.

バージョンを切り替える正しい方法は次のとおりです。

> brew link --overwrite node@14
于 2021-04-30T18:47:04.287 に答える
-2

一部のMacで@simonの回答が機能しない場合は、以下のプロセスに従ってください。

次のコマンドを使用してswiftgenをすでにインストールしている場合:

$ brew update $brew install swiftgen

次に、古いバージョンでswiftgenを実行するには、以下の手順に従います。

ステップ1:brew uninstall swiftgen ステップ2:https ://github.com/SwiftGen/SwiftGen/releasesに移動し、バージョンがswiftgen-4.2.0.zipのswiftgenをダウンロードします。

いずれかのディレクトリでパッケージを解凍します。

ステップ3:ターミナルで以下を実行します。

$ mkdir -p ~/dependencies/swiftgen
$ cp -R ~/<your_directory_name>/swiftgen-4.2.0/ ~/dependencies/swiftgen
$ cd /usr/local/bin
$ ln -s ~/dependencies/swiftgen/bin/swiftgen swiftgen
$ mkdir ~/Library/Application\ Support/SwiftGen
$ ln -s ~/dependencies/swiftgen/templates/ ~/Library/Application\ Support/SwiftGen/

$ swiftgen --version

SwiftGen v0.0(Stencil v0.8.0、StencilSwiftKit v1.0.0、SwiftGenKit v1.0.1)を取得する必要があります

ここに画像の説明を入力してください

于 2017-07-09T10:57:43.263 に答える