权限被拒绝:/etc/apt/sources.list

权限被拒绝:/etc/apt/sources.list

我正在尝试安装 java jre;我通常这样做

sudo echo 'deb http://www.duinsoft.nl/pkg debs all' >> /etc/apt/sources.list
sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 5CB26B26
sudo apt-get update
sudo apt-get install update-sun-jre
exit

但当我这样做

sudo echo 'deb http://www.duinsoft.nl/pkg debs all' >> /etc/apt/sources.list

我懂了

permission denied: /etc/apt/sources.list

当我做

ls -l /etc/apt/sources.list

我懂了

-rw-r--r-- 1 root root 3360 Aug 26 01:45 /etc/apt/sources.list

当我做

sudo mv /etc/apt/sources.list /etc/apt/sources.list.old
sudo cat /etc/apt/sources.list.old | sudo tee /etc/apt/sources.list

我懂了

#deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ dists/precise/main/binary-i386/

#deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ dists/precise/restricted/binary-i386/
#deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ precise main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://lb.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://lb.archive.ubuntu.com/ubuntu/ precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://lb.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://lb.archive.ubuntu.com/ubuntu/ precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://lb.archive.ubuntu.com/ubuntu/ precise universe
deb-src http://lb.archive.ubuntu.com/ubuntu/ precise universe
deb http://lb.archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://lb.archive.ubuntu.com/ubuntu/ precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://lb.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://lb.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://lb.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://lb.archive.ubuntu.com/ubuntu/ precise-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://lb.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://lb.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu precise-security main restricted
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted
deb http://security.ubuntu.com/ubuntu precise-security universe
deb-src http://security.ubuntu.com/ubuntu precise-security universe
deb http://security.ubuntu.com/ubuntu precise-security multiverse
deb-src http://security.ubuntu.com/ubuntu precise-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu precise partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main

答案1

这是一个已知问题;当您sudo以这种方式使用时,它不会按预期工作。这是因为当命令echo以 root1 身份运行时,>>for append 由 shell 完成,而 shell 以普通用户身份运行,因此当它尝试打开文件目标时,就会出现权限问题。

您可以通过多种方式解决这个问题,例如使用

sudo su -c "echo 'deb http://www.duinsoft.nl/pkg debs all' >> /etc/apt/sources.list"

或者

echo 'deb http://www.duinsoft.nl/pkg debs all' | sudo tee -a /etc/apt/sources.list

然而,/etc/apt/sources.list为此源创建单独的文件比编辑主文件更安全。为此,您可以使用相同的技术,如下echo | sudo tee所示:

sudo touch /etc/apt/sources.list.d/duinsoft.list
echo 'deb http://www.duinsoft.nl/pkg debs all' | sudo tee -a /etc/apt/sources.list.d/duinsoft.list

这样,我们不用管主程序sources.list,但源程序将通过专门处理此存储库的包含文件添加。(顺便说一下,这就是 PPA 的添加方式!)

答案2

命令发生的情况是echo以 root 身份运行,但 不是>>。请尝试以下命令:

echo 'deb http://www.duinsoft.nl/pkg debs all' | sudo tee -a /etc/apt/sources.list

或者,您可以分两步进行:

sudo -i

echo 'deb http://www.duinsoft.nl/pkg debs all' >> /etc/apt/sources.list

exit

答案3

此命令的作用是附加deb http://www.duinsoft.nl/pkg debs all/etc/apt/sources.list。让我们用另一种方法做!只需打开该文件并手动附加它!

sudo nano /etc/apt/sources.list

然后添加deb http://www.duinsoft.nl/pkg debs all到其末尾并按Ctrl+O然后Enter保存更改,最后按Ctrl+X退出nano

您现在可以跳转到下一个命令...

答案4

myscript.sh创建包含以下内容的脚本

#!/bin/bash
echo 'deb http://www.duinsoft.nl/pkg debs all' >> /etc/apt/sources.list

执行它(你必须先授予它执行权限,例如chmod u+x myscript.sh

sudo ./myscript.sh

相关内容