Homebrew でゾクゾク UNIX ライフ2at MAC
Homebrew でゾクゾク UNIX ライフ2 - 暇つぶし2ch172:名称未設定
12/04/17 05:57:54.82 oyyKwRWL0
sudo 入力避けの為なわけねえだろ

173:名称未設定
12/04/17 06:31:58.35 /7gz38IE0
URLリンク(github.com)

Homebrew側がsudo is badと思っているからやってるんじゃないの?

174:名称未設定
12/04/17 12:13:19.45 8rq/95TH0
いいかい?
HomebrewのFormulaはRubyを使って「有志によって作られる」んだ

もし、どこの馬の骨ともわからない奴が、Formulaに重大なバグや>>170の言うようにトロイの木馬を仕込んだとしよう。
そのFormulaをインストールした多くのHomebrewユーザが、危険にさらされるのは目に見えているよね。

だからユーザ権限の範囲でFormulaをインストールするようにして、システムを守っているってわけさ。

/usr/localがroot権限より脆弱(?)なユーザ権限になると、外部の脅威にさらされるんじゃないか、っていう危惧は分かる。
けど、/usr/localなんてシステムに影響しないんだ。もともとMacに入っていないし。
つまり、セキュリティの重要度で言ったら、
 システム>>>/usr/local
ってわけだよ。

公式に登録されたFormulaは安全だから大丈夫だって?
冗談言うなよ、どこにそんな保証があるんだい?'`,、('∀`) '`,、

175:名称未設定
12/04/17 12:46:00.62 tEEkA3d/0
アメリカンな人がいる

176:名称未設定
12/04/17 14:00:14.74 MifUjlEuP
それなら /opt/homebrew とかでやればいいのに

177:名称未設定
12/04/17 15:19:09.81 4UPbX/YB0
>>174
/usr/localは、ディレクトリ自体はないけど、
/usr/local/binはPATHに最初から入っちゃってるんだよね

178:名称未設定
12/04/17 19:09:32.42 DFI93VHo0
>>177
それの何が問題なの?
不正なプログラムが/usr/local/binにあって、パスが通ってて、誤って実行されたとしても、ユーザ権限に変わっているんだから、システムへの悪さは出来ない、ってことじゃないの??

179:名称未設定
12/04/17 20:21:37.61 bcCaHRH/0
システムに悪さできなくても「rm -rf /Users/username」みたいなことは可能なわけで。

180:名称未設定
12/04/17 20:31:33.23 /7gz38IE0
>>174
homebrew用に書き込み権限付与したログイン不可ユーザ作成して、そのユーザにsudoして使うんじゃ駄目なのかな?
性質上、rootのsudoを使用するのが危険なのはわかったけど、
だからといってstaffに書き込み権限付与するのはそれはそれで危険だと思う
いきなり通常ユーザに権限渡すんじゃなくて、homebrewを使用することを意識した権限管理があった方がいいと思うんだけど

あと、/usr/localはアプリの独自インストールで使用される以上
通常の/usr/localの権限で使用できないのなら、やはりディレクトリは分けたほうがいいのでは?

181:名称未設定
12/04/17 21:52:57.70 4UPbX/YB0
>>178
PATHに.を含めてはならないという掟と同根だと思うが

182:名称未設定
12/04/17 23:17:56.70 DFI93VHo0
結局何がベストなんだ?
homebrewはイケてないってことか?

>>179
個人端末としての用途のほうが多いMacだと、システムに悪さをされるより、ユーザ環境に悪さをされる方が厄介だよね。

>>180
homebrew用のアカウントを作るのは賛成だね。
日常で使うユーザアカウントでhomebrewの権限を書き換えると、そのユーザのディレクトリに悪さができちゃうし、かといってルート権限だと、もっと悪いことができるからね。

セキュリティと利便性のバランスの問題についても、
brew upgradeが
sudo -u hoge brew upgradeになるだけだから、個人的にはOKだと思う。

>だからといってstaffに書き込み権限付与するのはそれはそれで危険だと思う
staffに権限を付与じゃなくて、ユーザに権限を付与、ってことだよね。

ちなみに、パスワードを要求してインストールするタイプのパッケージインストーラーの話だよね?それなら、インストールで/usr/localを使用するとき、使用するディレクトリを勝手にroot/wheel権限に書き換えちゃうはずだよ。
$ ll /usr/local
drwxr-xr-x 1 sage staff 123 1 11 23:59 bin/
drwxr-xr-x 1 root wheel 136 1 11 00:00 hoge_packages/
みたいな感じで。
だから、homeberwが使っているディレクトリと、何らかのパッケージが使っているディレクトリが同じだと、権限がかち合って、おかしなことになる。これってhomeberwがイケてないってことだよね。

>>181
何を言いたいのか分からない


homebrew使わないほうがいいのかな・・・。

183:名称未設定
12/04/17 23:29:25.69 oyyKwRWL0
マジレスするとお前みたいなやつは使わない方がいいよ。
セキュリティの気の使いかたが偏りすぎてる。

実用性にそくしたバランスを自分で納得しながら環境構築できないなら
App Store のアプリケーションだけ使ってろよ。

184:名称未設定
12/04/19 07:44:37.11 Ab48k3y80
>>182
181の意味が分からないのに半端に知識はありそうなところが何ともいえないな…
Mac以外の*NIX系のOSは触ったことがないのかな?

185:182
12/04/19 23:21:32.06 N1vgCJ+A0
ちょっと脱線しそうだから、
 /usr/local以下の権限は、root/wheelがいいか、USER/adminがいいか、
っていう点に絞って過去レス読んでまとめてみた。

Aパターン:/usr/localはUSER/admin権限にする
→利便性重視、公式(mxcl)やalt(adamv)のFormulaのみをインストールする場合等
→一般ユーザ向け
メリット:普段使うユーザアカウントのみ管理すればいい、システムへの影響が少ない、sudoしなくていい
デメリット:テストすらしていないFormulaをインストールしたときは、ユーザディレクトリを破壊されるかもしれない
(ユーザディレクトリをいじるFormulaなんて無いだろうし、自分で選んでパッケージを入れるんだから不正コマンドなんて入らないと思うけど)

Bパターン:/usr/localはHOMEBREW_USER/admin権限にする
→セキュリティ重視、開発中のFormulaをテストする場合、マルチユーザ環境の場合等
→Homeberw/Formulaのデベロッパー向け、特殊用途向け
メリット:権限が異なるので、ユーザディレクトリへの影響が無い、システムへの影響が少ない
デメリット:Homebrew用のユーザアカウントを管理する必要がある、Formulaインストール時にsudo -uする必要がある

A・Bパターン共通:
pkgインストーラは、pkgutilを使って/usr/local以下にインストールされないかチェックしてからインストールする
→権限汚染の回避、/usr/localの管理のため

Cパターン:/usr/localはroot/wheel権限にする
→利便性重視、pkgインストーラーをよく使う場合等
→/usr/localの管理がめんどくさい人向け
メリット:pkgインストーラーとの権限衝突が起こらない
デメリット:Formulaによってはシステムへの影響があるかもしれない、Formulaインストール時にsudo -uする必要がある

186:182
12/04/19 23:22:09.95 N1vgCJ+A0
個人的には、Cパターンはおすすめしない。
/usr/localを管理していないと、pkgインストーラによってコマンドやライブラリが別バージョンに上書きされてごちゃごちゃになる可能性があるからね。
それがイヤならhomebrewを使わないか、インストール先を/usr/local以外に変えたらいいと思う。(そこまでするならMacPortsを勧める)

オレはやっぱりAパターンでいいや。

異論があればどうぞ。

187:182
12/04/19 23:30:16.74 N1vgCJ+A0
>>184
で、結局何が言いたかったんでしたっけ?

カレントディレクトリをPATHに指定すると、ヘンなところにそれっぽい名前の不正コマンドが仕込まれて意図しない処理が実行される可能性があるから?
それとも、LD_LIBRARY_PATH(Macは違うけど)の話で、ライブラリの話を混ぜてる?Macは基本的にライブラリに絶対パスが含まれるよ。他の*NIXと違って。

/usr/localの権限の話とどう関係するのか本当に分からない。オレが知らないLinuxの常識がそこにある気がする
もやもやして眠れないんだぜ

188:名称未設定
12/05/04 17:00:39.32 SonmSl5n0
homeprew で pdftkがインストールできません。
環境はcorei7、lion

$ brew install URLリンク(raw.github.com)
とすると、
Error: No available formula for gcc (dependency of pdftk)

/usr/bin/gcc
はあるんだけどな?

$ gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


アドバイスください。

189:名称未設定
12/05/04 23:07:58.64 RnjFl4Z/0
lion から gcc が llvm-gcc-4.2 になってるから、
前の xcode から gcc4.2ひっぱってそっちよみこんでみれば

190:名称未設定
12/05/05 02:56:57.89 3lS1r9IR0
>>188
brew tap adamv/alt
brew tap homebrew/dups
みたいな感じでリポジトリを追加するか、
Hombrew/dups のリポジトリにある gcc Formula を --enable-java オプション付きでインストールしておけば良いと思う。
Xcode とかのバージョンによっては --use-llvm オプションもいるかも。

tap と untap コマンドが Homebrew 0.9 で追加されてて、リポジトリが追加できるようになった。


191:188
12/05/07 08:16:15.56 IG+NiWcx0
>>189, >>190
ありがとうございます。結論から言うと、未だにpdftkをインストールできていません。
まずgccはうまくいきました。tap後に
brew install --use-llvm gccです。

問題点の一つ。pdftkのMakefile (.OSX-10.6)がどうやらFink用です。
そこでMakefile.Homebrewを作りました。
$ diff -c Makefile.OSX-10.6 Makefile.Homebrew
*** Makefile.OSX-10.6 2010-10-01 05:41:52.000000000 +0900
--- Makefile.Homebrew 2012-05-07 01:31:31.000000000 +0900
***************
*** 28,40 ****
! TOOLPATH=/sw/lib/gcc4.5/bin/
! export LIBGCJ= /sw/lib/gcc4.5/share/java/libgcj-4.5.0.jar
--- 28,40 ----
! TOOLPATH=/usr/local/bin/
! export LIBGCJ= /usr/local/Cellar/gcc/4.7.0/share/java/libgcj-4.7.0.jar
***************
*** 76,81 ****
! export LDLIBS= /sw/lib/gcc4.5/lib/libgcj.dylib /sw/lib/gcc4.5/lib/libstdc++.dylib /sw/lib/gcc4.5/lib/libgcc_s.1.dylib -liconv -lz
--- 76,81 ----
! export LDLIBS= /usr/local/Cellar/gcc/4.7.0/gcc/lib/libgcj.dylib /usr/local/Cellar/gcc/4.7.0/gcc/lib/libstdc++.dylib /usr/local/Cellar/gcc/4.7.0/gcc/lib/libgcc_s.1.dylib -liconv -lz


192:188
12/05/07 08:36:59.13 IG+NiWcx0
Makefile.HomebrewにあわせてFormulaを変更
(zip pdftk-1.44.zip pdftk-1.44-dist/pdftk/Makefile.Homebrewで追加しておく)
def install
cd "pdftk" do
system "make -f Makefile.Homebrew VERSUFF=-4.7 "
system "make -f Makefile.Homebrew install VERSUFF=-4.7 "
end
end
ちなみに、シェルからmakeすると問題なくビルドできます。
(が、管理のしやすさから、なんとかHomebrew管理下にしたい。)

そこで、つまづいている問題点の二つ目。
brew install pdftkとすると、
make: *** No rule to make target `../java/java_lib.o', needed by `pdftk.o'. Stop.
となって、java_lib.oを探せないでいます。
というか、java_lib.oをmakeできていない。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch