Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

This command can only list contents of installed packages,

dpkg -L PACKAGENAME

but how to list contents of a non-installed package, to preview/examine the package?

share|improve this question
add comment

5 Answers

up vote 94 down vote accepted

dpkg -c lists the contents of a .deb package file (It is a front-end to dpkg-deb.)

dpkg -c package_file.deb

To work directly with package names rather than package files, you can use apt-file. (You may need to install the apt-file package first.)

sudo apt-file update        # not needed in Ubuntu
apt-file list package_name

As stated in the first comment, apt-file lists contents for packages in your already-configured Apt repositories. It is irrelevant whether any particular package is or is not installed.

share|improve this answer
9  
apt-file also needs to be updated (sudo apt-file update), and only lists contents for packages in your already-configured Apt repositories. –  quack quixote Jan 28 '10 at 22:54
1  
@quackquixote: In Ubuntu 12.04 it's automatic –  confiq May 13 '12 at 10:43
1  
dpkg -c nice! –  d-_-b Oct 15 '12 at 9:57
1  
The Apt-file answer assumes that your package is coming from a configured repository instead of a .deb file you have downloaded separately. The original question is ambiguous though. –  Zoredache Jan 15 '13 at 23:27
    
@confiq, not by my testing. I'm running 12.04.4 and it still says "E: The cache is empty. You need to run 'apt-file update' first." –  Matthew Flaschen Jun 28 at 20:48
add comment

Use --contents instead of -L:

dpkg --contents PACKAGENAME

When used in this manner, dpkg acts as a front-end to dpkg-deb, so use man dpkg-deb to see all the options.

You can also use an archive browser to view the package contents.

share|improve this answer
    
This doesn't work unless I installed it first and then uninstall it. –  Xiè Jìléi Dec 15 '09 at 14:07
    
it should work fine if you give it a .deb file as an argument (instead of PACKAGENAME, give it PACKAGE-DEB-FILE). –  quack quixote Dec 15 '09 at 22:11
2  
This answer is wrong. You have to have the package installed first. If you don't have it installed, then you don't have a .deb file. –  Neil May 1 '12 at 2:14
    
This command works for me. For example, I downloaded google-chrome-stable_current_amd64.deb from Google. Then issued the command: dpkg --contents google-chrome-stable_current_amd64.deb and it listed out all the files it will install (mostly to /opt/google/chrome), none of which are currently installed on my system as I type this. (I'm running Xubuntu 11.10 if that matters.) –  quux00 Aug 4 '12 at 21:11
8  
@Neil, the answer is not wrong. Just because you have a deb file, doesn't mean it's installed. apt-file needs the entire build-essential package. O.O –  d-_-b Oct 15 '12 at 10:00
show 1 more comment

dpkg --contents will let you look at the uninstalled package. If the .deb is not on your system yet, do

apt-get --download-only install pkgname

The package will get downloaded to /var/cache/apt/archives but not installed.

share|improve this answer
1  
Can I just list the contents without download it? If I'm on a very slow connection, and if the package is too large to download. If the .deb file has a file header where contents list goes, I guess download the whole package maybe not necessary. Is this possible? –  Xiè Jìléi Dec 15 '09 at 14:06
add comment

The best way would be to browse directly the package repository:

http://packages.debian.org/[distro name]/all/[package name]/filelist

Example:

http://packages.debian.org/wheezy/all/transmission-common/filelist

share|improve this answer
add comment

Try:

apt-get download packages-name
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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