Linux16 RPM

52
Red Hat Packag e Manage r RPM 1

description

RedHat Package Manager

Transcript of Linux16 RPM

Page 1: Linux16 RPM

Red HatPackageManager

RPM1

Page 2: Linux16 RPM

What is RPM?

• RPM stands for Red Hat Package Manager.

• RPM command is used for installing, uninstalling, upgrading, querying, listing, and checking RPM packages on your Linux system.

2

Page 3: Linux16 RPM

What is RPM?

• With root privilege, you can use the rpm command with appropriate options to manage the RPM software packages.

3

Page 4: Linux16 RPM

What is RPM?

• The Red Hat Package Manager (RPM) is a toolset used to build and manage software packages on UNIX systems. 

• Distributed with the Red Hat Linux distribution and its derivatives, RPM also works on any UNIX as it is open source.

4

Page 5: Linux16 RPM

What is RPM?

• Package management is rather simple in its principles, though it can be tricky in its implementations.

• Briefly, it means the managed installation of software, managing installed software, and the removal of software packages from a system in a simplified manner.

5

Page 6: Linux16 RPM

What is RPM?

• RPM arose out of the needs to do this effectively, and no other meaningful solution was available.

• RPM uses a proprietary file format, unlike some other UNIX software package managers.

6

Page 7: Linux16 RPM

What is RPM?

• The naming scheme of RPM files is itself a standardized convention.

•  RPMs have the format (name)-(version)-(build).(platform).rpm. 

• For example, the name cat-2.4-7.i386.rpm would mean an RPM for the utility "cat" version 2.4, build 7 for the x86.

7

Page 8: Linux16 RPM

Why Package Management...?

• At first glance you may say to yourself, "I can manage this myself. It's not that many components ..." In fact, for something as small as, say, cat, which has one executable and one man page, this may be so.

8

Page 9: Linux16 RPM

Why Package Management...?

• But consider, say, KDE, which has a mountain of components, dependencies, and likes to stick them everywhere.

• Keeping track of it all would be tough, if not impossible.

9

Page 10: Linux16 RPM

Why Package Management...?

• Package management makes it all easier. By letting a program maintain the information about the binaries, their configuration files, and everything else about them, you can identify which ones are installed, remove them easily or upgrade them readily, as well.

10

Page 11: Linux16 RPM

Why Package Management...?

• Installation becomes a snap. • You select what you want, and ask the

system to take care of the dirty work for you.

• Unpack the program, ensure that there is space, place things in the right order, and set them up for you. It's great, it's like having a valet take care of your car when you go to a restaurant.

11

Page 12: Linux16 RPM

Why Package Management...?

• Dependencies, or additional requirements for a software package, are also managed seamlessly by a good package manager.

12

Page 13: Linux16 RPM

Why Package Management...?

• Management of installed packages is also greatly facilitated by a good package management system.

• It keeps a full list of software installed, which is useful to see if you have something installed. More importantly, it makes upgrading a breeze.

13

Page 14: Linux16 RPM

Why Package Management...?

• Lastly, this makes verification of a software package quite easy to do.

• By knowing what packages are installed, and what the properties of the components are, you can quickly diagnose a problem and hopefully fix it quickly.

14

Page 15: Linux16 RPM

Installation Using RPM

• This is the most basic RPM function, and one of the most popular: the installation of new software packages using RPM. To do this, give rpm the -i flag and point it to an RPM:       

# rpm -i (package)

15

Page 16: Linux16 RPM

• If all goes well and send you back to a command prompt without any messages.

• Use the -v flag to turn on some verbosity:

# rpm -iv (package)

16

Installation Using RPM

Page 17: Linux16 RPM

• All that gets printed out is the package name, but no statistics on the progress or what it did. You can get a hash marked output of the progress is you use the -h flag. People seem to like using -ivh together to get a "pretty" output:

       # rpm -ivh (package)

17

Installation Using RPM

Page 18: Linux16 RPM

• For example, In the MySQL-client-3.23.57-1.i386.rpm file:

MySQL-client – Package Name3.23.57 – Version1 – Releasei386 – Architecture

18

Installation Using RPM

Page 19: Linux16 RPM

1) The following rpm command installs Mysql client package.

# rpm -ivh MySQL-client-3.23.57-1.i386.rpm

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

1:MySQL-client ############################## [100%]

19

Installation Using RPM

Page 20: Linux16 RPM

rpm command and options

• -i : install a package

• -v : verbose

• -h : print hash marks as the package archive is unpacked.

20

Installation Using RPM

Page 21: Linux16 RPM

• Sometimes RPM will whine (complain) about a dependency which is installed but isn't registered. Perhaps you installed it not using an RPM for the package (ie OpenSSL). To get around this, you can force it to ignore dependencies:

# rpm -ivv --nodeps (package)

21

Installation Using RPM

Page 22: Linux16 RPM

• On rare occassion RPM will mess up and insist that you have a package installed when you don't. While this is usually a sign that something is amiss, it can be worked around. Just force the installation:

•         # rpm -ivv --force (package)

22

Installation Using RPM

Page 23: Linux16 RPM

2) Query all the RPM Packages using rpm –qa

• -q query operation

• -a queries all installed packages

23

Installation Using RPM

Page 24: Linux16 RPM

• To identify whether a particular rpm package is installed on your system, combine rpm and grep command as shown below. Following command checks whether cdrecord package is installed on your system.

# rpm -qa | grep 'cdrecord'

24

Installation Using RPM

Page 25: Linux16 RPM

3) Query a Particular RPM Package using rpm -q

• The above example lists all currently installed package. After installation of a package to check the installation, you can query a particular package and verify as shown below:

25

Installation Using RPM

Page 26: Linux16 RPM

26

Installation Using RPM

Page 27: Linux16 RPM

Installation Using RPM

4) Query RPM Packages in a various format using rpm –queryformat

• Rpm command provides an option –queryformat, which allows you to give the header tag names, to list the packages. Enclose the header tag with in {}.

27

Page 28: Linux16 RPM

28

Installation Using RPM

Page 29: Linux16 RPM

5) Which RPM package does a file belong to? – Use rpm –qf

• Let us say, you have list of files and you would want to know which package owns all these files. rpm command has options to achieve this.

• The following example shows that /usr/bin/mysqlaccess file is part of the MySQL-client-3.23.57-1 rpm.

29

Installation Using RPM

Page 30: Linux16 RPM

30

Installation Using RPM

Page 31: Linux16 RPM

6) Locate documentation of a package that owns file using rpm –qdf

• Use the following to know the list of documentations, for a package that owns a file. The following command, gives the location of all the manual pages related to mysql package.

31

Installation Using RPM

Page 32: Linux16 RPM

Installation Using RPM

32

Page 33: Linux16 RPM

7) Information about Installed RPM Package using rpm -qi

• rpm command provides a lot of information about an installed pacakge using rpm -qi as shown below:

33

Installation Using RPM

Page 34: Linux16 RPM

Installation Using RPM

34

Page 35: Linux16 RPM

• If you have an RPM file that you would like to install, but want to know more information about it before installing, you can do the following:

35

Installation Using RPM

Page 36: Linux16 RPM

Installation Using RPM

36

Page 37: Linux16 RPM

-i : view information about an rpm

-p : specify a package name

37

Installation Using RPM

Page 38: Linux16 RPM

8) List all the Files in a Package using rpm –qlp

• To list the content of a RPM package, use the following command, which will list out the files without extracting into the local directory folder.

38

Installation Using RPM

Page 39: Linux16 RPM

Installation Using RPM

39

Page 40: Linux16 RPM

9) List the Dependency Packages using rpm –qRP

40

Installation Using RPM

Page 41: Linux16 RPM

10) Find out the state of files in a package using rpm –qsp

The following command is to find state (installed, replaced or normal) for all the files in a RPM package.

41

Installation Using RPM

Page 42: Linux16 RPM

Installation Using RPM

42

Page 43: Linux16 RPM

11)Verify a Particular RPM Package using rpm –Vp

Verifying a package compares information about the installed files in the package with information about the files taken from the package metadata stored in the rpm database.

43

Installation Using RPM

Page 44: Linux16 RPM

44

Installation Using RPM

Page 45: Linux16 RPM

45

Page 46: Linux16 RPM

• 12. Verify a Package Owning file using rpm -Vf

• The following command verify the package which owns the given filename.

46

Installation Using RPM

Page 47: Linux16 RPM

• 13. Upgrading a RPM Package using rpm –Uvh

• RPM automatically un-installs existing versions of the package before installing the new one. If an old version of the package is not found, the upgrade option will still install it.

47

Installation Using RPM

Page 48: Linux16 RPM

Installation Using RPM

48

Page 49: Linux16 RPM

14. Uninstalling a RPM Package using rpm -e

• To remove an installed rpm package using -e as shown below. After uninstallation, you can query using rpm -qa and verify the uninstallation.

49

Installation Using RPM

Page 50: Linux16 RPM

15. Verifying all the RPM Packages using rpm -Va

• The following command verifies all the installed packages.

50

Installation Using RPM

Page 51: Linux16 RPM

Installation Using RPM

51

Page 52: Linux16 RPM

Bibliography

1) http://linuxgazette.net/68/nazario.html

2) http://www.thegeekstuff.com/2010/07/rpm-command-examples/

3) http://linuxtutorial.info/modules.php?name=Howto&pagename=RPM-HOWTO/intro.html