2010年3月4日 星期四

sudo echo / cat 發生 permission denied

下面是失敗的例子:
$ echo "deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu $(lsb_release -sc) main" >> /etc/apt/sources.list
bash: /etc/apt/sources.list: Permission denied

這篇所言, 問題出在 ">>" 仍是原本 bash 執行的, 不具 root 權限。解法是改對 tee 下 sudo, 別透過 ">>":

echo "deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu $(lsb_release -sc) main" | sudo tee -a  /etc/apt/sources.list

2 則留言:

  1. Shorter version:
    sudo sh -c "echo deb XXX $(lsb_release -sc) main > /etc/apt/sources.list"

    回覆刪除
  2. 我也有看到這種寫法, 問題在於若 echo 後要把顯示字串括起來的話, 要嘛改用單引號, 或是用反斜線加雙引號。所以我覺得用 tee 比較單純, 算個人喜好吧

    回覆刪除

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...