2015-04-02 44 views
68

注意:我並不擅長使用shell。已安裝,只是未鏈接

我試圖在優勝美地上使用brew來安裝Valgrind

brew install --HEAD valgrind

接近年底,我有與鏈接所以當我試圖重新安裝做了一個錯誤,我得到:

Warning: valgrind-HEAD already installed, it's just not linked

因此很明顯,我已經安裝了它。然後基於其他SO問題和答案,我想:

brew link valgrind

這似乎解決別人的問題與鏈接已安裝的軟件,但是這給了我一個錯誤:

Linking /usr/local/Cellar/valgrind/HEAD... 
Error: Could not symlink lib/pkgconfig/valgrind.pc 
/usr/local/lib/pkgconfig is not writable. 

我也試圖更新brew,但它沒有解決問題。如果它不可寫,也許sudo會給我許可,但我不想使用sudo而不知道我在做什麼。

發生了什麼以及如何解決?

回答

85

看起來像一個權限問題。我會嘗試這樣做

chmod 755 /usr/local/lib/pkgconfig 

這應該作出這樣的可用,然後重

brew link valgrind 

如果不工作,我會嘗試它

brew doctor 
+3

我使用'brew doctor',並按照說明操作,然後使用'chown'兩次來解決問題。 – yanzi1225627 2016-06-28 00:27:51

23

首先運行做了檢查

brew link <package> 

如果它給出一個錯誤,請嘗試一個自動診斷

brew doctor 

brew doctor給出了那些可能導致錯誤發生在安裝過程中的問題的列表。

要修復在衝突文件情況下的問題, 運行拿到這將被改寫,而無需實際執行他們進行所有操作的列表。

要列出將被刪除所有文件:

brew link --overwrite --dry-run <package> 

其次是本次運行將執行覆蓋,假設你覺得通過重寫執行的操作將採取你的系統更穩定的狀態

要強制鏈接,並覆蓋所有衝突的文件:

brew link --overwrite <package> 
12

如果上述解決方案的工作,試試這個。

sudo chown -R $USER:admin /usr/local 
brew link <package-name> 
+1

它的工作......但如何? – Pete 2017-01-08 18:06:48

0

這裏是我試圖和它的工作:

$ brew link --overwrite sdl 
Linking /usr/local/Cellar/sdl/1.2.15... 
Error: Could not symlink lib/pkgconfig/sdl.pc 
/usr/local/lib/pkgconfig is not writable. 

找了pkgconfig:(chmod 750後)

drwxr-xr-x 4 root   wheel 136B Mar 30 2013 pkgconfig 

下面我試圖chown

$ sudo chown -R avkashchauhan:admin /usr/local/lib/pkgconfig 

它應該看起來像如下:

drwxr-xr-x 4 avkashchauhan admin 136B Mar 30 2013 pkgconfig 

我試了一下後:

$ brew link sdl                                                      
Linking /usr/local/Cellar/sdl/1.2.15... 182 symlinks created 
0

在我的情況下,釀造醫生是正確的。在某些時候,/ usr/local/lib/pkgconfig被設置爲而不是我的帳戶。該規定的補救工作 -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig 
0

類型

link valgrind

它會顯示一個錯誤,它不能鏈接,因爲這樣,和這樣的目錄不可寫。很酷,我們現在寫它可寫。鍵入

sudo chmod a+w the/directory/shown/as/error

如果該目錄不可寫,您將無法改變其許可,並使其可寫兩種。 Sudo將使此操作成爲可能。 chmod將改變模式並且將使所有(a)用戶能夠寫(w)它。

接下來,系統會提示您輸入系統密碼。在此之後,再次鍵入

link valgrind

,它會工作這段時間。

0

我有一個類似的問題,

$釀造安裝sqlite的 更新家釀... ==>自動更新家釀! 更新了1個水龍頭(自制/核心)。 公式不變。

警告:sqlite-3.17.0已經安裝,它只是沒有鏈接。

我試着將它連結,

$釀造環節源碼 警告:SQLite是小桶只,必須與--force 注意,這樣做可以與建築軟件干擾鏈接。

然後做它用武力,--force源碼 鏈接/usr/local/Cellar/sqlite/3.17.0

$釀造鏈接...8個符號鏈接創建

1

我有同樣的問題,我與未來的解決方案解決: 運行釀造醫生從終端到檢查所有的錯誤

然後運行下一個命令:運行後

sudo chown -R $USER:admin /usr/local/bin /usr/local/etc /usr/local/sbin /usr/local/share 

brew link <package_name>