I have no root access on this machine.

I would like to know if there is a way I can download Ubuntu packages and install them as non-root?

Probably in my ~/bin or ~/usr/share or something like that? Would that work?

  • 2
    Hopefully, they will support it soon.
    – Domi
    Apr 3, 2014 at 9:50
  • 6
    You could use portable apps for linux: no installing , no root necessary. Find it at appimage.org. Even Linus Torvalds likes it. That's odd, cause Linus never likes anything.
    – ipse lute
    May 27, 2016 at 22:26
  • I suggest trying fakechroot. Mar 16, 2017 at 15:34
  • A combination of dpk -x and mv worked for me. Or, if even dpk is not available, ar and piping/combining with tar worked for me on very restricted systems, see here
    – iolsmit
    Jul 24, 2018 at 12:25
  • Related on Unix & Linux: Non-Root Package Managers Sep 25, 2019 at 9:57

3 Answers 3


Apt doesn't support it directly, but there are ways to do it.

One is to use schroot to create a non-root chroot. This is a somewhat involved process, but one you should be able find community help for as many developers set up chroot environments for compiling code.

The second way I know of is to install from a .deb package. You may be able to download this from a web site or if it's in the Ubuntu repositories you can download with.

apt-get download package

Replace package with the name of the package

Once you have your deb file call dpkg directly from the command line. The following example will install package.deb into your home directory.

dpkg -i package.deb --force-not-root --root=$HOME 

The disadvantage to using dpkg like this is that error messages are likely to be cryptic; dpkg doesn't automatically resolve dependencies or create the directory structure it expects.

Finally, you could use the apt-get source command to fetch the source of the package and configure it to install locally. Usually this looks something like:

apt-get source package
cd package
./configure --prefix=$HOME
make install

The disadvantage to this approach is that you need the development environment available for this approach to work at all, and you might find yourself compiling dozens of packages in order to resolve all the dependencies.


As dpkg -i doesn't work (see comments), I suggest this alternative:

dpkg -x package.deb dir

This will extract the .deb package to dir. Then you can export the PATH where the binary is. As long as all dependencies of the binary are installed, it should run as normal.

  • 2
    If you have root access but just don't want to install a particular package globally, you could use sudo apt-get build-dep package to install everything required to build a package (after getting its source with apt-get source). Jan 14, 2013 at 22:25
  • 24
    This answer was written back in 2010. Have there been any changes to how this is done since then?
    – becko
    Sep 16, 2014 at 18:30
  • 43
    Even with --force-not-root, I get "dpkg: error: requested operation requires superuser privilege"
    – Clément
    Apr 19, 2016 at 13:37
  • 16
    Folks, --force-not-root --root=$HOME, or variations thereof will not work. Debian binary packages are not designed to be installed in the home directory, period. Or, to put this another way,. "The following example will install package.deb into your home directory.". No, it won't. Jun 13, 2017 at 17:54
  • 4
    Sadly this won't work. I tried --force-not-root --root=/your/custom/path
    – Viet
    Jun 22, 2017 at 10:12

I assume you want to install jedit. First you have to find the package and download it. I just take the deb file from some mirror and open a console/terminal:

  1. mkdir /tmp/jedit && cd /tmp/jedit -- Makes a new diretory in tmp and changes into it.
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb -- Download package
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.deb or, easy to type, ar x *.deb -- this extracts the file contents
  4. tar xvzf data.tar.gz -- the file data.tar.gz has all the stuff which you need for executing the software
  5. usr/bin/jedit opens the editor
  6. done :-)

You can move the files to some point in your home directory and execute them from there.

  • 13
    Note that pre- and post-install scripts don't get run; also you'll need to resolve any dependencies or paths yourself. But on a default install this is sufficient for a lot of desktop applications.
    – jbowtie
    Jul 29, 2010 at 12:01
  • 1
    you can also download the package without searching for it, just do apt-get download (see other answer)
    – lib
    Jul 23, 2015 at 14:59
  • i believe your link is broke.
    – Winnemucca
    Apr 13, 2017 at 22:33

I wrote a program called JuNest which basically allows to have a really tiny Linux distribution (containing just the package manager) inside your $HOME/.junest directory.

It allows you to have your custom system inside the home directory accessible via proot and, therefore, you can install any packages without root privileges. It will run properly under all the major Linux distributions, the only limitation is that JuNest can run on Linux kernel with minimum recommended version 2.6.32.

For instance, after installing JuNest, to install jedit:

$>junest -f
(junest)$> pacman -S jedit
(junest)> jedit
  • This will run just fine on Ubuntu right?
    – Seth
    Nov 2, 2014 at 21:27
  • Yes, if the linux kernel version of ubuntu is greater or equal to 2.6.32 it will work.
    – user967489
    Nov 4, 2014 at 0:47
  • 3
    At first I thought you were talking about this. The second capitalized j makes the difference.
    – kon psych
    May 6, 2015 at 21:42
  • 1
    The question was if we could install Ubuntu package. With junest, we will only be able install ArchLinux package and NOT an Ubuntu package. For e.g. if the same package is not available for ArchLinux, then this won't help. That said, thanks for Junest. Feb 20, 2016 at 10:24
  • juju is junest now, and it works because of proot
    – Rainb
    Jun 26, 2020 at 10:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.