Meego Wiki
Views

Distribution/Package Management

From MeeGo wiki
< Distribution(Difference between revisions)
Jump to: navigation, search
(Package Management Architecture)
(Querying)
 
(24 intermediate revisions not shown)
Line 1: Line 1:
-
All software on a MeeGo is divided into RPM packages, which can be installed, upgraded, or removed. This part describes how to manage packages using both zypper and the PackageKit suite of graphical package management tools.  
+
All software on MeeGo is divided into RPM packages, which can be installed, upgraded, or removed. This part describes how to manage packages using both zypper and the PackageKit suite of graphical package management tools.  
==Package Management Architecture==
==Package Management Architecture==
-
[[File: Package_Management_Architecture.png|250x200px]]
+
[[File: Package_Management_Architecture.png|750x600px]]
 +
 
 +
The whole stack has RPM at the lowest level.RPM is type of package management system. On top of RPM is Zypp software management library for RPM-based systems. It's also know by it‘s package name, libzypp.
 +
 
 +
on top of libzypp, there are various user interfaces or Package Management UI, like Zypper and YaST, the PackageKit Zypp backend, which enables the use of any PackageKit application.
==zypper==
==zypper==
===package && pattern && patch ===
===package && pattern && patch ===
-
=== Search Packages===
+
'''Package''' - Software package, which is a type of file format where software programs and installation material is grouped together. Patches and patternsare also commonly referred to as different types of packages.
-
  zypper search --help
+
 
-
===List Packages===
+
'''Patch''' - Represents a package or a group of packages needed to install an update (a bug fix mostly).
-
  zypper search
+
 
-
===Display Package Information===
+
'''patterns''' - Represents a group of packages. Just like the group concept in yum repo. It’s a group of packages belong to one type. Such as Graphics, development, etc
-
  zypper  
+
 
-
===Installing Packages===
+
=== Repository Management ===  
-
   zypper install pkgname
+
 
-
===Removing Packages===
+
=== Package Management ===
 +
====How to select packages====
 +
There are several ways in which you can choose packages for installation or removal.
 +
 
 +
*by capability name
 +
  zypper in gnome-packagekit
 +
  zypper in qt
 +
*by capability name and/or architecture and/or version
 +
  zypper in 'zypper<0.12.10'
 +
  zypper in zypper.i586=0.12.11
 +
*by exact package name (--name)
 +
  zypper in -n meego-app-photos
 +
*by exact package name and repository (implies --name)
 +
  zypper in oss:zypper
 +
*by package name using wildcards
 +
  zypper in meego-handset*
 +
* by specifying an .rpm package file to install
 +
 
 +
====Installing Packages====
 +
You can install packages by name...
 +
   zypper install  
 +
 
 +
...or by capability they provide:
 +
  # zypper in MozillaFirefox \< 3
 +
 
 +
Other install examples as follows:
 +
 
 +
  zypper in meego-ux-*                  # install all meego-ux modules
 +
  zypper in -t pattern meego-base      # install meego-base pattern (packages needed for MeeGo base system)
 +
  zypper in vim -gedit                  # install vim and remove gedit in one go
 +
  zypper in vim oss:vim-commom          # install vim-commpn from oss and vim from any repo
 +
  zypper in libzypp-9.1.2-9.1.i586.rpm  # install libzypp rpm from local directory
 +
  zypper in -f PackageKit              # force reinstallation of PackageKit
 +
 
 +
====Removing Packages====
 +
The remove command is very much like the install command, except that the effect is the opposite
   zypper remove pkgname
   zypper remove pkgname
 +
 +
=== Querying ===
 +
 +
==== Search Packages====
 +
  zypper search --help
 +
  zypper se -dC --match-words editor # look for 'editor' acronym (case-sensitively), also in summaries and descriptions
 +
  zypper se 'yast*'    # show all packages starting with 'yast' (beware of shell expansion, quote the strings if unsure!)
 +
  zypper se -r oss      # list all packages from 'packman' repository
 +
  zypper se -i sqlite  # show all installed packages containing 'sqlite' in their name
 +
  zypper se -t pattern -r repo-oss # list all patterns available in the 'repo-oss' repository
 +
  zypper se -t product  # list all available products
 +
 +
====Display Package Information====
 +
In order to obtaining information about packages, the following command can be used:
 +
  zypper info PackageKit #displays detailed information about package named 'PackageKit'
 +
  zypper info -t patch MozillaFirefox # show information about 'MozillaFirefox' patch
 +
  zypper patch-info MozillaFirefox # the same as above
 +
  zypper info -t pattern meego-base # show info about meego-base pattern
 +
  zypper info -t product openSUSE-FTP # show info about specified product
 +
 +
=== Update Management ===
 +
There are two approaches to keeping your system up to date. One is patch-wise, the second is package-wise.
 +
 +
The patch-wise approach is particularly useful for people using stable releases and want update their systems with patches released through online update repositories. Update repositories are added by default during installation or upgrade of the system. [http://repo.meego.com/MeeGo/updates/ Here is the list of available official MeeGo update repositories].
 +
 +
The second, package-wise update is described in section Package Updates and servers for general updating of packages from any repository with their newer versions.
 +
 +
 +
==== Listing Availabe Patches/Updates ====
 +
You can get a list of available updates with:
 +
  zypper lu
 +
To list all needed patch updates, do:
 +
  zypper lp
 +
To list all the paches, including installed and available patches, the following command can help:
 +
  zypper patches
 +
 +
==== Applying Patches ====
 +
To install / apply the needed patches, do:
 +
  zypper patch
 +
==== Package Updates ====
 +
To simply update installed packages with their newer available versions, do:
 +
  zypper up
 +
Or just update one package with:
 +
  zyper update pkgname
==PackageKit==
==PackageKit==

Latest revision as of 07:01, 4 July 2011

All software on MeeGo is divided into RPM packages, which can be installed, upgraded, or removed. This part describes how to manage packages using both zypper and the PackageKit suite of graphical package management tools.

Contents

Package Management Architecture

Package Management Architecture.png

The whole stack has RPM at the lowest level.RPM is type of package management system. On top of RPM is Zypp software management library for RPM-based systems. It's also know by it‘s package name, libzypp.

on top of libzypp, there are various user interfaces or Package Management UI, like Zypper and YaST, the PackageKit Zypp backend, which enables the use of any PackageKit application.

zypper

package && pattern && patch

Package - Software package, which is a type of file format where software programs and installation material is grouped together. Patches and patternsare also commonly referred to as different types of packages.

Patch - Represents a package or a group of packages needed to install an update (a bug fix mostly).

patterns - Represents a group of packages. Just like the group concept in yum repo. It’s a group of packages belong to one type. Such as Graphics, development, etc

Repository Management

Package Management

How to select packages

There are several ways in which you can choose packages for installation or removal.

  • by capability name
  zypper in gnome-packagekit
  zypper in qt
  • by capability name and/or architecture and/or version
  zypper in 'zypper<0.12.10'
  zypper in zypper.i586=0.12.11
  • by exact package name (--name)
  zypper in -n meego-app-photos
  • by exact package name and repository (implies --name)
  zypper in oss:zypper
  • by package name using wildcards
  zypper in meego-handset*
  • by specifying an .rpm package file to install

Installing Packages

You can install packages by name...

 zypper install 

...or by capability they provide:

 # zypper in MozillaFirefox \< 3

Other install examples as follows:

 zypper in meego-ux-*                  # install all meego-ux modules
 zypper in -t pattern meego-base       # install meego-base pattern (packages needed for MeeGo base system)
 zypper in vim -gedit                  # install vim and remove gedit in one go
 zypper in vim oss:vim-commom          # install vim-commpn from oss and vim from any repo
 zypper in libzypp-9.1.2-9.1.i586.rpm  # install libzypp rpm from local directory
 zypper in -f PackageKit               # force reinstallation of PackageKit

Removing Packages

The remove command is very much like the install command, except that the effect is the opposite

 zypper remove pkgname

Querying

Search Packages

 zypper search --help
 zypper se -dC --match-words editor # look for 'editor' acronym (case-sensitively), also in summaries and descriptions 
 zypper se 'yast*'     # show all packages starting with 'yast' (beware of shell expansion, quote the strings if unsure!) 
 zypper se -r oss      # list all packages from 'packman' repository 
 zypper se -i sqlite   # show all installed packages containing 'sqlite' in their name 
 zypper se -t pattern -r repo-oss # list all patterns available in the 'repo-oss' repository 
 zypper se -t product  # list all available products

Display Package Information

In order to obtaining information about packages, the following command can be used:

 zypper info PackageKit #displays detailed information about package named 'PackageKit'
 zypper info -t patch MozillaFirefox # show information about 'MozillaFirefox' patch 
 zypper patch-info MozillaFirefox # the same as above 
 zypper info -t pattern meego-base # show info about meego-base pattern 
 zypper info -t product openSUSE-FTP # show info about specified product

Update Management

There are two approaches to keeping your system up to date. One is patch-wise, the second is package-wise.

The patch-wise approach is particularly useful for people using stable releases and want update their systems with patches released through online update repositories. Update repositories are added by default during installation or upgrade of the system. Here is the list of available official MeeGo update repositories.

The second, package-wise update is described in section Package Updates and servers for general updating of packages from any repository with their newer versions.


Listing Availabe Patches/Updates

You can get a list of available updates with:

 zypper lu

To list all needed patch updates, do:

 zypper lp

To list all the paches, including installed and available patches, the following command can help:

 zypper patches

Applying Patches

To install / apply the needed patches, do:

 zypper patch

Package Updates

To simply update installed packages with their newer available versions, do:

 zypper up

Or just update one package with:

 zyper update pkgname

PackageKit

Update Packages with Gnome PackageKit

Gnome PackageKit can be available on NetBook and IVI.

Updating Packages with Software Update =

In the Software Updates window, all available updates are listed along with the names of the packages being updated (minus the .rpm suffix, but including the CPU architecture), a short summary of the package, and, usually, short descriptions of the changes the update provides. Any updates you do not wish to install can be de-selected here by unchecking the checkbox corresponding to the update.

Using Add/Remove Software =

PackageKit's Software Update GUI window is a separate application from its Add/Remove Software application, although the two have intuitively similar interfaces.

Manage packages with PackageKit command line tool

How to report a bug

PackageKit or Package Manager UI bug

For Package Management component issue, please catch more logs and attach them when you reporting a bug. For PackageKit or Package Manager UI issue Steps to get logs:

  • Setup system Environment
  • Install PackageKit-debuginfo, libzypp-debuginfo, which should match the version of PackageKit/libzypp
  • start packagekitd manually. In one terminal execute:
   #killall -9 packagekitd
   #/usr/libexec/packagekitd -v >packagekitd.log 
  • In another terminal execute your script/command to reproduce bug.
  • Then you'll get packagekitd.log and /var/log/pk_backend_zypp, and these two log files are very important to fix bug in the first time. Please attach them.

zypper command bug

For Zypper issue while you using zypper command, using the following steps to get logs:

  • Setup system Environment
  #rm /var/log/zypper.log -f
  • set log level and reproduce bug using zypper
   #export ZYPP_LIBSAT_FULLLOG=1
   #zypper xxx yyy

or using the following log level

   #export ZYPP_FULLLOG=1
   #zypper xxx yyy
  • check /var/log/zypper.log and attach them. The log generated using ZYPP_LIBSAT_FULLLOG would be very large(40M), but includde more information about packages. while the log generated using ZYPP_FULLLOG is smaller (1M).
Personal tools