42

I'm trying to install java jre; I usually do it like this

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

but when I do

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

I see

permission denied: /etc/apt/sources.list

When I do

ls -l /etc/apt/sources.list

I see

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

When I do

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

I see

#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

Zanna
  • 70,465
Lynob
  • 6,675
  • my question was asked 11 years ago and was closed as a duplicate of a question that was asked 10 years ago. Brilliant. – Lynob Sep 28 '23 at 12:13

4 Answers4

73

This is a known issue; when you use sudo in this fashion, it won't work as you expect. That is because while the echo command is run as root1, the >> for append is done by the shell, which is being run as a normal user, so when it tries to open the file target the permission issue comes up.

You can get around this in various ways, for example by using

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

or

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

However, it's safer to create a separate file for this source rather than editing the main /etc/apt/sources.list file. To do that, you could use the same technique with echo | sudo tee like this:

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

This way, we leave the main sources.list alone, but the sources will be added via an included file that specifically handles this repository. (This is how PPAs get added, by the way!)

Zanna
  • 70,465
Thomas Ward
  • 74,764
27

What happens with the command is that echo is run as root, but not >>. Try the following instead:

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

alternatively, you could do it in two steps:

sudo -i

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

exit
mikewhatever
  • 32,638
5

What this command does is appending deb http://www.duinsoft.nl/pkg debs all to /etc/apt/sources.list. Let's do it in an other method! Just open that file and append it manually!

sudo nano /etc/apt/sources.list

Then add deb http://www.duinsoft.nl/pkg debs all to end of it and press Ctrl+O and then Enter to save the changes and finally Ctrl+X to quit nano.

You can jump to the next command now...

zx485
  • 2,426
Milad Rahimi
  • 187
  • 2
  • 9
-1

Create a script myscript.sh containing

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

execute it with (you have to give execute permission to it first e.g. chmod u+x myscript.sh)

sudo ./myscript.sh
Zanna
  • 70,465