101 2.4 use debian package management
Upcoming SlideShare
Loading in...5
×
 

101 2.4 use debian package management

on

  • 203 views

 

Statistics

Views

Total Views
203
Slideshare-icon Views on SlideShare
203
Embed Views
0

Actions

Likes
1
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    101 2.4 use debian package management 101 2.4 use debian package management Presentation Transcript

    • Junior Level Linux Certification
    • Exam Objectives Key Knowledge Areas Install, upgrade and uninstall Debian binary packages. Find packages containing specific files or libraries which may or may not be installed. Obtain package information like version, content, dependencies, package integrity and installation status (whether or not the package is installed). Objective 2: Linux Installation and Package Management Use Debian package management Weight: 3 Terms and Utilities /etc/apt/sources.list dpkg dpkg-reconfigure apt-get apt-cache aptitude 2
    • Debian package management The Debian distribution uses a different packaging system than Red Hat uses. The Debian system is often considered to be more powerful and robust. The 4 pieces of the system used most often are: dpkg dselect apt-get alien Overview 3 Debian packages, or debs, contain binary files to be installed with info known as metadata. Metadata holds info on: package, scripts executed, dependencies, conflicts, or suggestions. Debian package naming scheme: package_version-build_architecture.deb •package: name of the application being installed. •version: version number of the application. •build: build number of the package. Each time the package is redone this number is incremented. •architecture: platform the package was compiled for. There’s a special type of package known as a task package. These packages are empty packages without software, but with dependencies. Used to install a large “task” on the system. http://www.debian.org/distrib/packages
    • Debian package management Using dpkg 4 Installing packages: dpkg --install package_file.deb or dpkg -i package_file.deb debian:~# dpkg --install ethereal_0.8.13-2_i386.deb Selecting previously deselected package ethereal. (Reading database ... 54478 files and directories currently installed.) Unpacking ethereal (from ethereal_0.8.13-2_i386.deb) ... dpkg: dependency problems prevent configuration of ethereal: ethereal depends on libpcap0 (>= 0.4-1); however: Package libpcap0 is not installed. dpkg: error processing ethereal (--install): dependency problems - leaving unconfigured Errors were encountered while processing: Ethereal Ex: dpkg checks the package for needed dependencies and displays an error if they are not installed. ethereal_0.8.13-2_i386.deb requires the libpcap0 package to be installed. debian:~# dpkg --install ethereal_0.8.13-2_i386.deb libpcap0_0.4a6-3_i386.deb (Reading database ... 54499 files and directories currently installed.) Preparing to replace ethereal 0.8.13-2 (using ethereal_0.8.13-2_i386.deb) ... Unpacking replacement ethereal ... Selecting previously deselected package libpcap0. Unpacking libpcap0 (from libpcap0_0.4a6-3_i386.deb) ... Setting up libpcap0 (0.4a6-3) ... Setting up ethereal (0.8.13-2) ...
    • Debian package management Using dpkg 5 Force options: To override an error when installing or removing a package. Option Purpose configure-any Configure any other package that may help to install this package. hold Process another package, even if it is on hold. bad-path Force even when missing files. not-root Try to add or remove packages, even if not root. overwrite Overwrite a file from a new package, even if it belongs to another package. depends-version Normally an error is given if the correct version of a dependency is not installed. This option makes that a warning instead. depends Turn all dependency errors into warnings. confnew Always use the newly installed configuration file. confold Always use the old configuration file. conflicts Allow packages that conflict to be installed. overwrite-dir Overwrite another package’s directory with a new one. remove-essential Remove essential system packages, dangerous. debian:~# dpkg -install new_package.deb --force-conflictsEx:
    • Debian package management Using dpkg 6 Removing packages: dpkg --remove package_name.deb or dpkg -r package_name.deb debian:~# dpkg --remove libpcap0 dpkg: dependency problems prevent removal of libpcap0: ethereal depends on libpcap0 (>= 0.4-1). dpkg: error processing libpcap0 (--remove): dependency problems - not removing Errors were encountered while processing: libpcap0 These cmds remove all package files, except for configuration files needed for a later reinstall. To remove all files, including the configuration files, use purge option: dpkg --purge package_name or dpkg -P package_name Ex:
    • Debian package management Using dpkg 7 Info on packages: dpkg --print-avail package_name or dpkg -p package_name debian:~# dpkg --print-avail ethereal Package: ethereal Priority: optional Section: net Installed-Size: 2996 Maintainer: Frederic Peters <fpeters@debian.org> Architecture: i386 Version: 0.8.13-2 Depends: libc6 (>= 2.1.94), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.8-1), libpc ap0 (>= 0.4-1), libsnmp4.1, xlibs (>= 4.0.1-1), zlib1g (>= 1:1.1.3) Filename: dists/potato/main/binaryi386/ net/ethereal_0.8.0-1.deb Size: 1201932 MD5sum: 78928ca734086acd72b441967bf24bc0 Description: Network traffic analyzer Ethereal is a network traffic analyzer, or “sniffer”, for Unix and Unix-like operating systems. It uses GTK+, a graphical user interface library, and libpcap, a packet capture and filtering library. Ex:
    • Debian package management Using dpkg 8 listing packages: dpkg --list <pattern> or dpkg -l <pattern> <pattern> is an optional search pattern. Without pattern dpkg will display every package available. debian:/usr/doc/dpkg# dpkg --list apache* Desired=Unknown/Install/Remove/Purge/Hold ## (Letter1) | Status=Not/Installed/Config-files/Unpacked/Failedconfig/Half-installed ## (Letter2) |/ Err?=(none)/Hold/Reinst-required/X=both-problems(Status,Err: uppercase=bad) ## (Letter3) ||/ Name Version Description +++-===============-===============-============================================ pn apache <none> (no description available) pn apache-common <none> (no description available) pn apache-dev <none> (no description available) pn apache-doc <none> (no description available) un apache-modules <none> (no description available) pn apache-perl <none> (no description available) pn apache-ssl <none> (no description available) Ex: Apache packages are listed, but none are installed. - However, several were installed but where purged and now are not installed. 3 columns on left: p - file has been purged; u - file is unpacked, n - file is not installed. Left columns are documented by lines above file list. Letters correspond to the first letter of the information. Ex: i = installed, and h = half-installed.
    • Debian package management Using dpkg 9 Status packages with full details: dpkg --status package_name or dpkg -s package_name debian:~# dpkg -s ethereal Package: ethereal Status: install ok installed Priority: optional Section: net Installed-Size: 2996 Maintainer: Frederic Peters <fpeters@debian.org> Version: 0.8.13-2 Depends: libc6 (>= 2.1.94), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.8-1), libpc ap0 (>= 0.4-1), libsnmp4.1, xlibs (>= 4.0.1-1), zlib1g (>= 1:1.1.3) Description: Network traffic analyzer Ethereal is a network traffic analyzer, or “sniffer”, for Unix and Unix-like operating systems. It uses GTK+, a graphical user interface library, and libpcap, a packet capture and filtering library. Ex:
    • Debian package management Using dpkg 10 List all files installed by package: dpkg --listfiles package_name or dpkg -L package_name debian:~# dpkg --listfiles wget /. /usr /usr/bin /usr/bin/wget ... /usr/share/doc/wget/copyright /usr/share/doc/wget/changelog.gz /usr/share/doc/wget/NEWS.gz /usr/share/doc/wget/changelog.Debian.gz /usr/share/doc-base /usr/share/doc-base/wget /etc /etc/wgetrc Ex:
    • Debian package management Using dpkg 11 Displaying file ownership : dpkg --search package_name or dpkg -S package_name To find out which package installed a certain file debian:/etc# dpkg --search /etc/issue.net base-files: /etc/issue.net Ex: /etc/issue.net file was installed by the base-files package. debian:/etc# which java /usr/bin/java debian:/etc# ls -l $(which java) lrwxrwxrwx 1 root root 22 2010-05-03 17:51 /usr/bin/java -> /etc/alternatives/java debian:/etc# update-alternatives --display java java - auto mode link currently points to /usr/lib/jvm/java-6-openjdk/jre/bin/java /usr/lib/jvm/java-6-openjdk/jre/bin/java - priority 1061 slave java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz Current `best' version is /usr/lib/jvm/java-6-openjdk/jre/bin/java debian:/etc# dpkg -S /usr/lib/jvm/java-6-openjdk/jre/bin/java openjdk-6-jre-headless: /usr/lib/jvm/java-6-openjdk/jre/bin/java Ex:
    • Debian package management Using dpkg 12 Checking available packages Most of the info displayed and used by dpkg is stored in /var/lib/dpkg directory. With 2 files of interest: /var/lib/dpkg/available - lists available packages to choose from. /var/lib/dpkg/status - shows status of installed packages. debian:/var/lib/dpkg# more available Package: telnet Priority: standard Section: net Installed-Size: 176 Maintainer: Herbert Xu <herbert@debian.org> Architecture: i386 Source: netkit-telnet Version: 0.16-4 Replaces: netstd Depends: libc6 (>= 2.1.2), libncurses5 Filename: dists/potato/main/binary-i386/net/telnet_0.16-4.deb Size: 58826 .. // .. Ex: debian:/var/lib/dpkg# more status Package: telnet Status: install ok installed .. // ..
    • Debian package management Using dselect 13 dselect tool is an overlay to dpkg that provides character-based graphical interface. Ex:
    • Debian package management Using dselect 14 dselect tool allows you to access packages from a variety of sources. Usually only apt source is used - It can access many different source types and is very configurable. Ex:
    • Debian package management Using dselect 15 dselect Access methods: Method Description cdrom Install from a local CD-ROM drive. Does not have to be mounted. nfs Install from an unmounted NFS server. harddisk Install from a disk that is not already mounted. mounted Install from any file system that is already mounted. floppy Install from multiple floppy disks. ftp Install from an FTP site. apt Allows access from several different sources. Update Any time that an access method is changed or packages have changed, you need to run Update function so that the package database is current. This process goes to each source and compiles the complete list of packages, and dependencies.
    • Debian package management Using dselect 16 Select – After package database has been updated, select packages for install. Ex:
    • Debian package management Using dselect 17 Ex: Select – After package database has been updated, select packages for install.
    • Debian package management Using dselect 18 Selection Keys Key Function + Install selected package. - Remove selected package. = Place package on hold. : Remove hold status on package. /<pattern> Search using <pattern>. Repeat last search. O Cycle through sort options. V Change status display. X Exit abandoning changes. Q Exit saving changes.
    • Debian package management Using dselect 19 Ex: Dependency/conflict resolution
    • Debian package management Using apt-get 20 apt-get is cmdline tool with a lot of functionality of dselect, without the unneeded interface. apt-get tool will automatically get a package list and needed dependencies. Before apt-get can get packages to install, it has to know where to get them. File /etc/apt/sources.list has the sources for packages. (Also used by apt source in dselect) File format: For Binary Packages and Source Packages: deb-src uri distribution component - uri - Uniform Resource Identifier syntax: protocol://host/path - host metods: cd-rom; File; http; ftp
    • Debian package management Using apt-get 21 /etc/apt/sources.list Ex: $ cat /etc/apt/sources.list #deb cdrom:[Ubuntu 9.10 _Karmic Koala_ - Release i386 (20091028.5)]/ karmic main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://us.archive.ubuntu.com/ubuntu/ karmic main restricted deb-src http://us.archive.ubuntu.com/ubuntu/ karmic main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates main restricted deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://us.archive.ubuntu.com/ubuntu/ karmic universe deb-src http://us.archive.ubuntu.com/ubuntu/ karmic universe deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
    • Debian package management Using apt-get 22 Updating the available packages - apt-get update Any time there’s changes to sources.list file. apt-get will go to the list of sources and update the package database in the system. Installing packages - apt-get install package_name If apt-get installs a package, it first checks if has already been downloaded. If not, apt-get goes to first source in list an retrieves the newest version and prompts the user for the dependencies and installs them automatically. Upgrading packages - apt-get upgrade Upgrade all installed packages to their latest version in one step. Always issue an apt-get update before doing an upgrade, so the package list is up-to-date. APT-get options:
    • Debian package management Using apt-get 23 Upgrading Linux distribution - apt-get dist-upgrade Entire Linux distribution upgraded to new version, when one is released via apt-get tool. Clearing the package archives - apt-get clean - apt-get autoclean apt-get keeps a copy of all the deb file - installed packages in: /var/cache/apt/archives and /var/cache/apt/archives/partial directories. - Free space, and clear all files in directories: clean - Free space, and clear only packages that are not current and cannot be downloaded again: autoclean APT-get options: Removing packages - apt-get remove package_name Packages can be removed with apt-get or dpkg.
    • Debian package management Using apt-get 24 APT-get other options: Option Purpose -h Display the apt-get help. -q Display output for logging. -qq No output except for errors. -d Only download the packages to the archives directory; do not install them. -y Answer Yes to all queries. -f Continue even if integrity check fails. This is sometimes used to fix dependency issues. -m Continue even if the packages can not be located. -u Show a list of upgraded packages. -b Build a source package after retrieving it. -c=filename Read the specified configuration file. -o=option Set a special configuration option. -s Simulate the action only. This will display the information as if you have actually executed the process. This is useful for testing purposes before you accidentally break anything.
    • Debian package management APT configuration 25 apt-get config file is in /etc/apt/apt.conf To edit default options to apt-get command, change the file /etc/apt/apt.conf Use apt-config command, to interrogates the apt.conf file.
    • Debian package management Using aptitude 26 aptitude is a front-end to Advanced Packaging Tool (APT). displays lists of software packages and allows interactively install or remove. Aptitude does not have Super Cow Powers. In apt-get super cow powers can be found with apt-get moo. Try issuing: aptitude -v moo, then aptitude -vv moo, then aptitude -vvv moo, then aptitude -vvvv moo, then aptitude -vvvvv moo,
    • Debian package management Using aptitude 27 Ex:
    • Debian package management Reconfiguring Debian packages 28 APT includes a capability called debconf, used to config packages after installation. Packages that use this capability (not all do) can be reconfigured after installed. use dpkg-reconfigure command. Ex: $ dpkg-reconfigure keyboard-configuration
    • Debian package management Reconfiguring Debian packages 29 Ex: $ apt-get install exim4 getmail4 spamassassin $ dpkg-reconfigure exim4-config
    • Debian package management Using alien 30 The alien tool converts packages between several different formats. It can be used on any distribution. Supported Formats: Debian .deb; Red Hat .rpm; Slackware .tgz; Stampede .slp Syntax : alien [options] package Option Alternate Purpose -d --to-deb The default. Tells alien to create a .deb package --patch=<filename> Only used with -d. Specifies the patch file to use. --nopatch Only used with -d. Specifies that no patch file should be used. -r --to-rpm Creates an RPM package. -t --to-tgz Creates a Slackware .tgz package. --to-slp Creates a Stampede package. -i --install Installs the package after creation. -g --generate Unpacks the package, but does notgenerate a new one. -s --single Does the same as -g, but does not create the .orig directory. -c --scripts Includes scripts in the new package. -k --keep-version Does not change the version of the generated package. --description= Sets the package’s description. -h --help Shows the help options. -v --version Shows the version of alien.
    • Debian package management Using alien 31 convert the wget package to a .deb file for installEx: debian:~# alien wget.rpm -- Examining wget.rpm -- Unpacking wget.rpm 1010 blocks ---- -- Automatic package debianization -- Building the package wget_1.5.3-164_i386.deb dh_testdir # Nothing to do. dh_testdir dh_testroot dh_clean -k dh_installdirs cp -a `ls |grep -v debian` debian/tmp dh_installdocs .. // .. dh_builddeb dpkg-deb: building package `wget’ in `../wget_1.5.3-164_i386.deb’. Generation of wget_1.5.3-164_i386.deb complete. -- Successfully finished
    • Fim de sessão 32