13

I want to have a list of all packages that are installed on my server, but the command

dpkg --get-selections > ~/Package.list

doesn't do anything! When I execute it there is no file called "package.list" in the root folder.

2
  • 1
    Unix, and Linux, has case-sensitive file systems. Package.list is not the same file as package.list. Jul 17, 2016 at 17:27
  • Also the file is not in the root folder but in your home folder.
    – mook765
    Jul 26, 2019 at 21:20

6 Answers 6

20

You have to run the same command (there's no need to run it as root)

dpkg --get-selections > ~/InstalledPackages.list

Then you can

cat ~/InstalledPackages.list

to see the content.

Now, if you are not sure how's ~ been processed, you can

cd ~
pwd

And that's it.

6
  • Well if i execute cat InstalledPackages.list i can see the file but with filezilla i am unable to find i want to export it to my pc
    – user180429
    Aug 1, 2013 at 11:09
  • I mean no disrespect, but maybe you're looking in the wrong directory. Try cd ~ and then pwd, just to make sure you're working in the right directory. If you're pointing FileZilla to the right directory and the file isn't there, then you must check permissions for your file and the parent directory. Easy way, move it to /tmp/
    – 0R10N
    Aug 1, 2013 at 11:18
  • Glad to help :)
    – 0R10N
    Aug 1, 2013 at 11:27
  • Is it safe to edit this Package.list? The reason is that I need to restore all packages on my fresh Ubuntu, but I am suspicious that some among these packages broke my system in the first place. Can I somehow edit them out?
    – Heisenberg
    Nov 18, 2013 at 4:54
  • 1
    How can I use this list to install exactly the same packages on a different machine (but same model)?
    – ubuplex
    Jun 4, 2015 at 6:44
11

Use dpkg-query, this command is precisely intended to what you need: request on packages data‑base. A quick man dpkg-query will tell you more, however, you may try dpkg-query --list or dpkg-query -- show.

4

What's with these answers lol all this question is asking is a simple dpkg output list,

 dpkg --list | less

 dpkg -l | more 

 dpkg-query -l | tail

 dpkg-query --list | head

 diff <(ps aux| grep x) <(pgrep x)

 apt-file list "package"
3

You said you've looked in the root folder, but with the "~" you are clearly pointing to the home folder. The root would be /Package.list, or -/Package.list. Check in the home folder.

EDIT: As I can see now, even though my answer was correct, it might have been unclear to a fresh user. I'm sorry for introducing additional confusion. @0R10N thanks for good example :)

2

If you would like to get the versions of some installed packages, you can pipe commands like this:

dpkg --get-selections | awk '/php/{print $1}' | xargs dpkg-query --show $1

your output would look like the following:

libapache2-mod-php5     5.3.2-1ubuntu4.29
php5-cli        5.3.2-1ubuntu4.29
php5-common     5.3.2-1ubuntu4.29
php5-gd 5.3.2-1ubuntu4.29
php5-mcrypt     5.3.2-0ubuntu1
php5-mysql      5.3.2-1ubuntu4.29
php5-xsl        5.3.2-1ubuntu4.29
phpmyadmin      4:3.3.2-1ubuntu1
0

try this, may work, it work for me.

dpkg -l

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