質問

私は使用しています ホームブリュー 私のポートのニーズのために(MacPortsよりも「クリーン」のように見えます)。

なしでインストールできます sudoing(これは素晴らしい)が、ステップをリンクする男はそれを必要とするようです(/usr/local/share/man/man3 所有されています root).
a ガイド 私は再帰的に提案することを発見しました chown /usr/local やることによって

sudo chown -R `whoami` /usr/local

これは安全ですか...それとも悪いアイデアですか™ですか?

また、私の権限は正しいですか?

$ pwd
/usr/local/share/man
$ ls -lah
total 32
drwxrwxr-x    8 root  staff   272B  4 Set 11:02 .
drwxrwxr-x    9 root  staff   306B 10 Set 11:27 ..
drwxr-xr-x    3 root  wheel   102B  4 Ago  2009 de
drwxrwxr-x  163 root  staff   5,4K 10 Set 11:27 man1
drwxr-xr-x   11 root  wheel   374B 10 Set 11:27 man3
drwxr-xr-x    7 ago   staff   238B 10 Set 11:39 man5
drwxr-xr-x   11 ago   staff   374B 10 Set 11:39 man7
-rw-r--r--    1 root  staff    13K  4 Set 11:02 whatis
役に立ちましたか?

解決

通常、許可をできるだけ厳格に保つ方が良いです。維持 /usr/local が所有している root ASを実行するプロセスのみを意味します root/sudo (または、Apple Authorizationダイアログボックスを介して管理者ユーザーに依頼する)この領域に書き込むことができます。したがって、プロセスのダウンロードでは、ファイルを破損する前にパスワードを要求する必要があります。

しかし、あなたが言うように、それは新しいプログラムの追加を難しくします。

走っても大丈夫です sudo, 、実行するよりも頻繁にインストールする頻度があるため、ビルドプロセスが必要としないものは何も変更しないと信頼する必要があります。

あなたがsudoを避けたいなら、私はhomebrewにインストールします ~/usr/local そして、あなたの道を変えたり、マンパスなどをして、そこにディレクトリを含めてください。

より良い方法は、別のユーザーを作成することです。 homebrew そのユーザーが所有するディレクトリを作成します。次に、そこにインストールします sudo -U homebrew. 。他のユーザーは、他のファイルを上書きできないという利点があります。 root 他のプログラムはHomebrewに影響を与えることはできません。 (私はそれに注意してください Homebrew FAQ 「マルチユーザー環境」にいる場合は、この新しいユーザーを提案します。 MacOSを含むUNIXマシンはマルチユーザー環境であると思います)

しかし、自家製のwikiが言っているように、レシピはすべてのケースを見つけるわけではありません /usr/local そして、それらを選択したディレクトリに置き換えてください私たちは立ち往生していると思います /usr/local.

他のヒント

私もhomebrewを使用しており、それが完全に安全であることを確認できます。引用 インストール 公式のページ Homebrew FAQ:

自分に好意を持って選んでください /usr/local

  1. 簡単です
    /usr/local/bin すでにあなたの中にいます PATH.

  2. 簡単です
    依存関係がどちらか /usrまたは /usr /localにない場合、大量のビルドスクリプトが破損します。これは、自宅の式でこれを修正します(常にテストするわけではありませんが)が、多くのRubygemsとPythonセットアップスクリプトが私たちのコントロールの外にあるものであることがわかります。

  3. 安全です
    AppleはPOSIXに準拠し、このディレクトリを私たちのために去りました。つまり、ないことを意味します /usr/local デフォルトではディレクトリなので、既存のツールを台無しにすることを心配する必要はありません。

醸造に依存する宝石をインストールする場合は、手間をかけてインストールする /usr/local!

ジェムに、ヘッダーとディリブのために標準以外のディレクトリを見るように言うのは些細なことではありません。選択した場合 /usr/local, 、すべて「ただ機能します!」

それを追加するだけです ルートとして物事を行うことは非常に悪い考えです, 、 それで chowning /usr/local 私には合理的であるように見えるだけでなく(それはOSXのシステムdirではありません)、 正気.

あなたの許可は正しくありません(まだ)。リストしたコマンドを実行するだけで、大丈夫です。

他の問題がある場合は、 brew doctor あなたを助けられる!

HomeBrewを使用している場合は、特定のグループに書き込み許可を与える必要があります(どちらか admin また staff)、そのため、そのグループにいるユーザー間でファイルを共有できます。

例えば:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

次に、アクセスできるユーザーを割り当てます brew そのグループへのコマンド(以下を介してグループを確認してください id -Gn).

その後、一緒に作業するとき brew, 、一緒に実行しないでください sudo.

まだ許可の問題がある場合は、実行してください brew doctor 問題のトラブルシューティング。

それが価値があることのために、 /usr/local OS Xによる「システム」フォルダーとは見なされておらず、新しいSnow Leopardインストールでは、そのフォルダーが空になっています。

そのフォルダー内のルート所有のものはの結果です sudo make install 他のソフトウェアで、またはダブルクリックした後にパスワードを与える .pkg それはものを捨てたいと思っています /usr/local.

所有 /usr/local 1年以上にわたって2台のマシンで「私のために働いた」。

Gotchaの1つは、mysql(Homebrewを使用していない)をインストールしてファイルをchownした場合、おそらくデータベースを表示できなくなる可能性があることです(したがって、MySQLが実行しているユーザーが実行されているものに戻す必要があります。 。)

Homebrew 1.0.0のように:

Homebrewは、 /usr /localの所有権を持つ必要はもうありません。あなたが望むなら、あなたはそのデフォルトの所有権に戻る /usr /localが次のように:sudo chown root:wheel /usr /local

ユーザーが持っていても大丈夫だと思います 権限を書き込みます/usr/local - 結局のところ、それはあなたが使用していないことを意味します sudo すべてのビルドスクリプトで。私は普通のユーザーのアイデアが好きではありません 所有 /usr/local. 。ルート(または類似)を所有したい /usr/local, 、しかし、ユーザー(または少なくともいくつかの特権グループ)がそれに書き込むことができるように、権限を変更します。それは概念的に正しいアプローチのようです。

ライセンス: CC-BY-SA帰属
所属していません apple.stackexchange
scroll top