Often we need to add new repository on Deb based OS like Debian or Ubuntu from SSH. An example situation can be while installing OpenPanel on Debian or Ubuntu. Here is the guide to show you how to append new source of software to sources.list without opening the File in nano or vi command line editor in simple steps.
Append New Source to sources.list Without Opening the File : First Things First
sources.list
file is located at /etc/apt/
. Firstly, if you are a new user, take a backup of the file :
1 | sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak |
However, we would really recommend you create a new .list
file and then use the method to avoid direct appending new source to sources.list
, store it in /etc/apt/sources.list.d/
. In other words, in this guide, we will avoid :
---
1 2 3 4 5 | vi cp /etc/apt/sources.list # do editing # write out and exit ^ + O ^ + X |
Actually this manual method to edit the sources.list
file is slower and its difficult to avoid errors.
Append New Source to sources.list Without Opening the File
Like we said in How to Write Shell Script, we can actually echo anything :
1 2 3 | # do not run this command without understanding # this is example for bashsrc file not sources.list echo -e "nalias cdear='cd | clear'" >> .bashrc |
Usual format of the list file is :
1 2 3 4 5 6 7 8 9 10 11 12 | deb http://http.debian.net/debian wheezy main deb-src http://http.debian.net/debian wheezy main deb http://http.debian.net/debian wheezy-updates main deb-src http://http.debian.net/debian wheezy-updates main deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main # commented out #deb http://mirror.rackspace.com/ wheezy/updates main #deb-src http://mirror.rackspace.com/ wheezy/updates main |
Basic principal to echo lines is :
1 | echo "new line of text" | sudo tee -a /etc/apt/sources.list |
In the same way, we can echo sources.list
file to add in this way :
1 | sudo sh -c "echo 'deb http://ppa.launchpad.net/person/ppa/ubuntu karmic main' >> /etc/apt/sources.list" |
However, instead of editing /etc/apt/sources.list
, it is simpler to add a new *.list
file to /etc/apt/sources.list.d
:
1 2 3 | echo 'deb http://ppa.launchpad.net/person/ppa/ubuntu karmic main' >/tmp/myppa.list sudo cp /tmp/myppa.list /etc/apt/sources.list.d/ rm /tmp/myppa.list |
In order to add a third-party repository, you first need the public keys for this repository which in this case you can grab from the Ubuntu key server:
1 2 3 | sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 886DDD89 # Now you can add the repository in /etc/apt/sources.list.d/ with add-apt-repository: sudo add-apt-repository "deb http://deb.torproject.org/torproject.org $(lsb_release -s -c) main" |
After adding any repository it is always needed to execute :
1 | sudo apt-get update |
We do not recommend to use /etc/apt/sources.list
for third-party repos, use /etc/apt/sources.list.d/
instead.