+ All Categories
Home > Documents > CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration

Date post: 08-Jan-2016
Category:
Upload: nijole
View: 19 times
Download: 0 times
Share this document with a friend
Description:
CIT 470: Advanced Network and System Administration. Package Management. Topics. The Problem of Software Installation Package Management Systems Using RPM Finding RPMs Building RPMs. Software Installation. Customization Select options like language. Select file set. - PowerPoint PPT Presentation
Popular Tags:
27
CIT 470: Advanced Network and System Administration Slide #1 CIT 470: Advanced Network and System Administration Package Management
Transcript
Page 1: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #1

CIT 470: Advanced Network and System Administration

Package Management

Page 2: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #2

Topics

1. The Problem of Software Installation

2. Package Management Systems

3. Using RPM

4. Finding RPMs

5. Building RPMs

Page 3: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #3

Software Installation

1. CustomizationSelect options like language.

Select file set.

2. Install new files in appropriate locations.

3. Modify existing configuration files.

4. Make software available to user.Shell configuration (PATH, etc.)

GUI configuration (menu, icons, etc.)

Page 4: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #4

What’s the problem?

What prerequisites does your software have?What prereqs do your prereq packages have?

How do you handle conflicts?What if two programs install/modify same file?

Does your install work on every type of computer?

How do you handle upgrades?What if user has customized configuration?

What if ownerships/permissions have changed?

What if user needs old and new versions?

How do you uninstall software?

Page 5: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #5

Package Manager Features

• Build management.• Dependency tracking.• Querying.• Reversibility.• Verification.• Version control.

Page 6: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #6

UNIX Package Management Systems

deb: Debian system uses dpkg and APT.

pkgadd: Solaris packaging system.

portage: Gentoo uses with emerge.

ports: BSD ports system.

RPM: Redhat packaging system.

tgz: Tarballs used by Slackware.

Page 7: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #7

RPM

RPM Package Manager– Originally stood for Red Hat Package Manager– Came with Red Hat Linux 2.0 in 1995.

Distributions– Red Hat– Red Hat Enterprise Linux (also CentOS)– Fedora– Mandriva– SUSE

RPM on other OS– AIX– Novell Netware

Page 8: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #8

RPM Package Names

<name>-<version>-<release>.<arch>.rpm Name: name of the software package.

Version: version of the software package.

Release: release version of the RPM.

Arch: architecture (i386, noarch, ppc, etc.)

If Arch is src, RPM contains source code for building the package.

Page 9: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #9

RPM Package Contents

IdentificationIdentifies package and RPM version.

SignatureChecksum and digital signature.

HeaderPackage and version information.Specifies dependencies on other packages.

PayloadActual files to install.Stored as cpio archive compressed with gzip.Use rpm2cpio to obtain cpio archive.

Page 10: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #10

Using RPM

1. Install

2. Uninstall

3. Upgrade

4. Query

5. Verify

Page 11: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #11

Installing a Package

1. Check the package and the files it wants to install.

2. Perform preinstallation tasks.

3. Uncompress the files and copy them in the proper locations

4. Perform post-processing tasks

5. Update the RPM Database

> rpm -ivh foo-1.0-1.i386.rpm

Preparing... ########################################### [100%]

1:foo ########################################### [100%]

Page 12: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #12

Upgrading a Package

Uninstall + install, retaining configuration files.Will install a package if no older version.

Will remove all older versions.

> rpm -Uvh foo-1.0-1.i386.rpm

Preparing... ########################################### [100%]

1:foo ########################################### [100%]

Page 13: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #13

Uninstalling a Package

Completely removes package from system.

> rpm -e foo-1.0-1

> rpm –q foo

package foo is not installed.

Page 14: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #14

Dependencies

Prevent install/removal if unfulfilled.

# rpm -e setup error: Failed dependencies: setup is needed by (installed) basesystem-8.0-1 setup >= 2.0.3 is needed by (installed)

initscripts-6.95-1 setup >= 2.5.4-1 is needed by (installed)

filesystem-2.1.6-5 setup is needed by (installed) xinetd-2.3.7-2 setup is needed by (installed) dump-0.4b28-4 # rpm -q setup

setup-2.5.20-1

Page 15: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #15

Querying the RPM Database# rpm -q telnettelnet-0.17-31.EL4.3# rpm -ql telnet/usr/bin/telnet/usr/share/man/man1/telnet.1.gz# rpm -qi telnetName : telnet Relocations: (not)Version : 0.17 Vendor: CentOSRelease : 31.EL4.3 Build Date: Tue 14 Jun 2005Install Date: Sat 11 Feb 2006 Build Host: build5Group : Applications/Internet Src RPM: telnet-0.17.src.rpmSize : 87254 License: BSDSignature : DSA/SHA1, Tue 14 Jun 2005, Key ID a53d0bab443e1821Packager : Johnny Hughes <[email protected]>Summary : Client program for telnet remote login protocol.Description :Telnet is a popular protocol for logging into remote systemsover the Internet. The telnet package provides a command linetelnet client.

Page 16: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #16

Querying the RPM Database# rpm -qc bash/etc/skel/.bash_logout/etc/skel/.bash_profile/etc/skel/.bashrc# rpm -qd sendmail/usr/share/man/man1/mailq.sendmail.1.gz/usr/share/man/man1/newaliases.sendmail.1.gz/usr/share/man/man5/aliases.sendmail.5.gz/usr/share/man/man8/mailstats.8.gz/usr/share/man/man8/makemap.8.gz/usr/share/man/man8/praliases.8.gz/usr/share/man/man8/rmail.8.gz/usr/share/man/man8/sendmail.sendmail.8.gz/usr/share/man/man8/smrsh.8.gz

Page 17: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #17

Searching all Packages# rpm -qa | grep telnettelnet-0.17-31.EL4.3# rpm -qa | grep pypython-2.3.4-14.1pyOpenSSL-0.6-1.p23rpm-python-4.3.3-11_nonptlpygtk2-2.4.0-1python-devel-2.3.4-14.1python-ldap-2.0.1-2pyxf86config-0.3.19-1libxml2-python-2.6.16-6python-elementtree-1.2.6-4python-sqlite-1.1.6-1dbus-python-0.22-12.EL.5pyparted-1.6.8-2python-urlgrabber-2.9.6-2

Page 18: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #18

Searching Packages

Find recently installed packagesrpm -qa --last

Find packages that are disk hogsrpm -qa --qf "%{size} %{name}\n" | sort –n

The --qf (queryformat) option can print

arch, name, size, version, distribution, etc.

Page 19: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #19

Querying Files and Packages

Find which package a file belongs to:# rpm -qf /usr/bin/telnettelnet-0.17-31.EL4.3# rpm -qf /etc/security/limits.confpam-0.77-66.11

Querying packagesAdd –p to any query to apply it to a .rpm file instead of

to an installed package.

Page 20: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #20

Dependency Resolution

Higher level tools handle dependenciesup2date, yum, yast, urpmi

Automatic resolution + downloading.1. Find dependencies in RPM headers.

2. Download dependencies, check their headers.

3. Repeat.

4. Install after all RPMs downloaded.

Page 21: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #21

Yellow Dog Updater Modified– Rewrite of YUP from Yellow Dog Linux.– Used by many RPM-based distributions.

Automatically syncs repo metadata.– Prevents problems arising from out of data

package information on local system.– Wastes time when local data up to date.

Page 22: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #22

Yum Installs

yum install pkg: finds specified package, downloads it, and installs it.

yum remove pkg: remove the specified package from the system.

yum update <pkg>: updates specified package or updates all packages if no package specified.

Page 23: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #23

yum list <option> <pkgspec>

Options:available: list packages available to be installed.installed: list installed packages like rpm –qa.extras: lists installed packages that are not available on

any currently configured repo.recent: lists packages added to repositories in last 7 days.updates: lists updates for any installed packages.

Package Specifications:bashbash-3.10\*sh\*.i386

Page 24: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #24

Yum Commands

check-update: lists updates, returns 100 if any updates available.

clean: removes yum cache files.

deplist: list all dependencies for a package.

info: list package data like rpm –qi

yum provides: find which package provides the specified command, i.e. yum provides \*bin/ls.

yum search: lists packages whose name, summary, description, or URL matches the specified search term.

Page 25: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #25

Package SourcesSources

– Local files (CD/DVD or hard disk)– Red Hat Network commercial sites for RHEL– CentOS network official mirrors for CentOS– Unofficial network repositories like RPMforge

Source configurationup2date: /etc/sysconfig/rhn/sourcesyum: /etc/yum.conf, /etc/yum/repos.d

Page 26: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #26

RPMForge

RPMForge Repository provides non-official packages http://dag.wieers.com/home-made/apt/

Some packages don’t exist in RHEL

Other packages are more up to date than RHEL

Configure system to use RPMForge via

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Page 27: CIT 470: Advanced Network and System Administration

CIT 470: Advanced Network and System Administration Slide #27

References1. Debian FAQ, “Debian Package Management Tools,”

http://www.debian.org/doc/FAQ/ch-pkgtools.en.html2. Eric Foster-Johnson, RPM Guide,

http://fedora.redhat.com/docs/drafts/rpm-guide-en/, 2005.3. Aeleen Frisch, Essential System Administration, 3rd

edition, O’Reilly, 2002.4. Evi Nemeth et al, UNIX System Administration

Handbook, 3rd edition, Prentice Hall, 2001.5. RedHat, Red Hat Enterprise Linux 4 System

Administration Guide, http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/, 2005.


Recommended