|
Find which package contains a file in Debian Linux
If you know you need to find a particular file to finish a compilation And you don't know which package it is contained in.You have the following option in debian.
apt-file
APT package searching utility -- command-line interface
apt-file is a command line tool for searching packages for the APT packaging system.
Unlike apt-cache, you can search in which package a file is included or list the contents of a package without installing or fetching it.
Install apt-file in debian
#apt-get install apt-file
this will install the apt-file package now.
Once installed you'll need to download the actual data which it uses to search. This can be accomplished with the following command otherwise apt-file search command won't return any results.
#apt-file update
Once you've downloaded data you can now proceed to searching for packages.
#apt-file [options] action [pattern]
Configuration options:
--sources-list -s <file> sources.list location
--cache -c <dir> Cache directory
--architecture -a <arch> Use specific architecture
--cdrom-mount -d <cdrom> Use specific cdrom mountpoint
--package-only -l Only display packages name
--fixed-string -F Do not expand pattern
--ignore-case -i Ignore case distinctions
--regexp -x pattern is a regular expression
--verbose -v run in verbose mode
--dummy -y run in dummy mode (no action)
--help -h Show this help.
--version -V Show version number
Action:
update Fetch Contents files from apt-sources.
search <pattern> Search files in packages
list <pattern> List files in packages
purge Remove cache files
Example
#apt-file search perl.pm
libapache-mod-perl: usr/lib/perl5/mod_perl.pm
libapache2-mod-perl2: usr/lib/perl5/Apache2/mod_perl.pm
libembperl-perl: usr/lib/perl5/Embperl.pm
libembperl-perl: usr/lib/perl5/Embperl/Recipe/Embperl.pm
libembperl-perl: usr/lib/perl5/Embperl/Syntax/Embperl.pm
libhtml-embperl-perl: usr/lib/perl5/HTML/Embperl.pm
liblog-log4perl-perl: usr/share/perl5/Log/Log4perl.pm
libsdl-perl: usr/lib/perl5/SDL_perl.pm
perl-modules: usr/share/perl/5.8.4/ExtUtils/Miniperl.pm
You can also use one of the following commands to Finding which package contains a file.
#dpkg -L <package name>
dlocate
fast alternative to dpkg -L and dpkg -S
uses GNU locate to greatly speed up finding out which package a file belongs to (i.e. a very fast dpkg -S). many other uses, including options to view all files in a package, calculate disk space used, view and check md5sums, list man pages, etc.
Install dlocate in debian
#apt-get install dlocate
Usage: dlocate [option] [string...]
Options:
(no option) string list all records that match
-S string list records where files match
-L package list all files in package
-l package almost-emulation of 'dpkg -l'
-s package print package's status
-ls package 'ls -ldF' of all files in package
-du package 'du -sck' of all files in package
-conf package list conffiles in package
-lsconf package 'ls -ldF' of conffiles in package
-md5sum package list package's md5sums (if any)
-md5check package check package's md5sums (if any)
-man package list package's man pages (if any)
The -L, -s, and -S commands are roughly analagous to the equivalent dpkg commands.
Example
#dlocate -S /etc/bash_completion
bash: /etc/bash_completion.d
bash: /etc/bash_completion
ppp: /etc/bash_completion.d
ppp: /etc/bash_completion.d/pon
dpatch: /etc/bash_completion.d
dpatch: /etc/bash_completion.d/dpatch_edit_patch
module-assistant: /etc/bash_completion.d
module-assistant: /etc/bash_completion.d/m-a
wajig
simplified Debian package management front end
Wajig is a single commandline wrapper around apt, apt-cache, dpkg, /etc/init.d scripts and more, intended to be easy to use and providing extensive documentation for all of its functions.
With a suitable sudo(1) configuration, most (if not all) package installation as well as creation tasks can be done from a user shell. Wajig is also suitable for general system administration.
A Gnome GUI command 'gjig' is also included in the package.
Install wajig in Debian
#apt-get install wajig
Using wajig
#wajig
JIG> help
Common JIG commands:
update Update the list of down-loadable packages
new List packages that became available since last update
newupgrades List packages newly available for upgrading
install Install (or upgrade) one or more packages or .deb files
remove Remove one or more packages (see also purge)
toupgrade List packages with newer versions available for upgrading
upgrade Upgrade all of the installed packages or just those listed
listfiles List the files that are supplied by the named package
listnames List all known packages or those containing supplied string
whatis For each package named obtain a one line description
whichpkg Find the package that supplies the given command or file
Run LIST-COMMANDS for a complete list of commands.
Example
JIG> whichpkg alsamixer
File Path Package
===========================================================-===== ============
/usr/bin/alsamixer alsa-utils
/usr/share/doc/alsa-utils/README.alsamixer alsa-utils
/usr/share/man/man1/alsamixer.1.gz alsa-utils
JIG>
auto-apt
package search by file and on-demand package installation tool
auto-apt checks the file access of programs running within its environments, and if a program tries to access a file known to belong in an uninstalled package, auto-apt will install that package using apt-get. This feature requires apt and sudo to work.
It also provides simple database to search which package contains a requesting file.
Install auto-apt in Debian
#apt-get install auto-apt
After installing you need to update the package list using the following command
#auto-apt update
If you want to use auto-apt follow this syntax
#auto-apt
$Id: auto-apt.sh,v 1.58 2004/03/19 17:53:25 ukai Exp $
Usage: auto-apt [options] command [arg ...]
auto-apt is a simple command line interface for setting up auto-apt ennvironment and/or search packages by filename.
Commands:
run - Enter auto-apt environment run [command [cmdarg]]
update - Retrieve new lists of Contents (available file list) update
updatedb - Regenerate lists of Contents (available file list, no download) updatedb
update-local - Generate installed file lists update-local
merge - Merge lists of Contents merge
del - Delete package list del package
check - Check which package will provide the filename check [-v] [-f] filename list - List filelist in dbfile list [-v] [-f]
search - Search package by filename (grep) search [-v] [-f] pattern
debuild - debuild with auto-apt useful to get build-depends:
status - Report current environments (auto-apt or not)
For some commands, command name with -local suffix, it will use pkgfiles.db, which is created by update-local command, instead of pkgcontents.db
Options:
[-s] [-y] [-q] [-i] [-x] [-X]
[-a dists] [-p hooks]
[-D pkgcontents.bin] [-F pkgfiles.bin] [-L detect.list]
Example
#auto-apt search alsamixer
usr/lib/menu/gnome-alsamixer gnome/gnome-alsamixer
usr/lib/menu/alsamixergui sound/alsamixergui
usr/bin/gnome-alsamixer gnome/gnome-alsamixer
usr/bin/alsamixergui sound/alsamixergui
usr/bin/alsamixer sound/alsa-utils
usr/share/pixmaps/gnome-alsamixer/ gnome/gnome-alsamixer
usr/share/doc/alsamixergui/ sound/alsamixergui
usr/share/doc/gnome-alsamixer/ gnome/gnome-alsamixer
|
|