質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

3回答

8490閲覧

[brew]OSXのbrewでインストールしたソフトウェアを常に使えるようにしたい

kalon

総合スコア198

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

1グッド

1クリップ

投稿2016/11/10 23:59

皆様お世話になっております。

OSX Elcaptianでsqliteの3.8.10.2を、sqliteの最新版にアップグレードしようとターミナルで次のコマンドでインストールしました。

bash

1brew update 2brew install sqlite3

sqlite3.14.0のインストールは成功したものの、

bash

1$ sqlite3 --version 23.8.10.2 2015-05-20 18:17:19 2ef4f3a5b1d1d0c4338f8243d40a2452cc1f7fe4

利用できるsqliteのバージョンは3.8のままでした。
どうしたらbrewでインストールした最新のsqlite3を利用できるようになるのでしょうか?

sqliteに限らず、brewでインストールしたソフトウェアはどのようにすれば標準で使えるようになるのかも説明いただけると助かります、

アドバイスのほど、よろしくお願いします。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

5

ベストアンサー

まず、sqlite3についてですが、こちらはkeg-onlyのFormulaです。
$ brew link sqlite3 --forceを実行することにより新しいsqlite3が使用できるはずですが、$ brew doctorを実行すると警告が出るようになってしまいます。

参考: Homebrewでインストールしたパッケージがリンクされているか確認する - Qiita

また、Homebrewでインストールしたものを使用したい場合は、PATHに追加する必要があります。
~/.bash_profileexport PATH=/usr/local/bin:"$PATH"を追加すればOKです。

投稿2016/11/11 00:21

ryunix

総合スコア1656

yoshikawa_kei, mhashi, kalon, hana-da, kanchan000926👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1

通常brew install すると実行ファイルは/usr/local/binからsymlinkされます。

通常は PATH で /usr/local/bin の方が前に設定されていると思うので既存のものがあってもbrewで入れた方が使われるのですが brew install sqlite3 した際に出てくるとおり

$ brew install sqlite3 ==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.15.1.el_capitan.bottle.tar.gz Already downloaded: /Users/hana-da/Library/Caches/Homebrew/sqlite-3.15.1.el_capitan.bottle.tar.gz ==> Pouring sqlite-3.15.1.el_capitan.bottle.tar.gz ==> Caveats This formula is keg-only, which means it was not symlinked into /usr/local. macOS provides an older sqlite3. Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables: LDFLAGS: -L/usr/local/opt/sqlite/lib CPPFLAGS: -I/usr/local/opt/sqlite/include PKG_CONFIG_PATH: /usr/local/opt/sqlite/lib/pkgconfig ==> Summary ???? /usr/local/Cellar/sqlite/3.15.1: 11 files, 2.9M

This formula is keg-only, which means it was not symlinked into /usr/local.

という事なので手動でlinkしてあげてください

$ sqlite3 --version 3.8.10.2 2015-05-20 18:17:19 2ef4f3a5b1d1d0c4338f8243d40a2452cc1f7fe4 $ cd /usr/local/bin $ ln -sf ../Cellar/sqlite/3.15.1/bin/sqlite3 ./ $ sqlite3 --version 3.15.1 2016-11-04 12:08:49 1136863c76576110e710dd5d69ab6bf347c65e36

投稿2016/11/11 00:22

hana-da

総合スコア1728

DrqYuto👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hana-da

2016/11/11 00:27

ああそうか brew link sqlite3 --force でもいいですね。
ryunix

2016/11/11 00:37

公式ドキュメントに目を通してください、brew link を使用する方法が公式です。 https://github.com/Homebrew/brew/blob/master/docs/FAQ.md#what-does-keg-only-mean >通常は PATH で /usr/local/bin の方が前に設定されている また、これについても誤りがあります。 そもそも PATH がどのように設定されるのかを調べられたほうがよいかと思います。
hana-da

2016/11/11 01:09

# そんな目くじらたてるほどの事でもないような.... でも、(通常って何だという話もありますが)通常 /usr/local/bin って /usr/bin より前に設定しません????
ryunix

2016/11/11 01:27

うーん、目くじらを立てている訳ではないのですが誤った情報をそのままにしておくのも後から情報を見る人のためになりませんので... (そのように思われたのならごめんなさい) そうですね、通常と言うのは各々の通常がありますので難しい話です。 macOS のデフォルトでは /usr/bin のほうが /usr/local/bin より優先されますので、/usr/local/bin を優先させる設定が必要になりますよね。 hana-da さんは設定されていると思うと回答されていますが、ユーザーが設定しない限り /usr/bin が優先されているはずです。 以下の文章より、そのような設定がなされていない可能性が高いことを汲み取ってあげるのも回答者の努めかなと思いました。 > sqliteに限らず、brewでインストールしたソフトウェアはどのようにすれば標準で使えるようになるのかも説明いただけると助かります
fuzzball

2016/11/11 01:37

macOSというのはSierraという意味でしょうか? 私、El Capitan使ってますが、/usr/local/binの方が前にあります。
hana-da

2016/11/11 01:46

なので「設定されている思う」と書いたんですが。。。 まぁいいか。 少し見慣らって親切・丁寧・正確な回答をこころがけようと思います。
hana-da

2016/11/11 01:49

# あ、コメント書いてるうちに間にはさまっちゃいました。。。
ryunix

2016/11/11 02:37

すみません、なんとコメントすればよいか悩んでおりました... 最終的にはそういうことですね (人のことを言える回答を行っていないので大変アレなのだけど...) -> 親切・丁寧・正確な回答 とくに初心者に対しては通常と言う言葉は厳しいかなと思いました (何が通常かが分からないので)
ryunix

2016/11/11 02:40

to: fuzzball macOS に名称変更されてから OS X のことを macOS と呼んでしまっています。 私は OS X Mavericks から macOS Sierra にアップグレードした身なのですが、/usr/local/bin を優先するようにはデフォルトではなっていないと思います。 おそらく、.bash_profile, .zshenv, .profile あたりで設定されているのではないでしょうか。 もしくは、/etc/paths の順番をいじっている可能性もありますね。
fuzzball

2016/11/11 03:56 編集

>>ryunixさん 私はMavericks -> El Capitanです。 調べてみると、/etc/paths で /usr/local/bin が先頭にありました。 自発的に修正した記憶はありません(存在すら知らなかった)ので、見よう見まねで何かをしているときに書き換わったのかも知れませんね。 茶々入れ失礼しました。 >>hana-daさん 挟まってすみませんでしたw
ryunix

2016/11/11 04:41

指摘があった時はドキッとしましたが、推測があっていたようでホッとしています...
yoshikawa_kei

2018/10/03 03:02

hana-daみたいな無知のくせに知ったかして教えようとするやつがいるから困る。 ああそうか とかいかにも知ってたような口調だけどそもそもpathについて全然わかってないじゃん笑 無自覚のバカほど困るものはない.....笑
guest

0

(deleted)

投稿2016/11/11 03:54

編集2016/11/11 03:56
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。