| Line 1: | Line 1: | ||
| - | Zypper is the repository and package management tool used by [[MeeGo]]. It is modelled on yum, installs | + | Zypper is the repository and package management tool used by [[MeeGo]]. It is modelled on yum, installs [[RPM]]s behind the scenes, and behaves very much like apt on [[Debian]]-based systems. |
Like apt, Zypper manages a number of repositories, each of which can contain one or more packages. These repositories are defined in <code>.repo</code> files, which are stored in <code>/etc/zypp/repos.d</code>. | Like apt, Zypper manages a number of repositories, each of which can contain one or more packages. These repositories are defined in <code>.repo</code> files, which are stored in <code>/etc/zypp/repos.d</code>. | ||
| Line 7: | Line 7: | ||
There are two ways to add a .repo file to zypper: | There are two ways to add a .repo file to zypper: | ||
| - | * Add it directly with <code>zypper ar <URI> <alias></code> - "ar" is short-hand for "addrepo", for example: | + | * Add it directly with <code>zypper ar <URI> <alias></code> - "ar" is short-hand for "addrepo", for example: |
| + | zypper ar http://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/packages/ oss | ||
* Download the .repo file locally, and then copy it to <code>/etc/zypp/repos.d</code> as root | * Download the .repo file locally, and then copy it to <code>/etc/zypp/repos.d</code> as root | ||
| - | * If you need symbols for debugging or profiling, you need to add one more repo, for example: | + | * If you need symbols for debugging or profiling, you need to add one more repo, for example: |
| + | zypper ar http://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/debug/ oss-debug | ||
Zypper is the repository and package management tool used by MeeGo. It is modelled on yum, installs RPMs behind the scenes, and behaves very much like apt on Debian-based systems.
Like apt, Zypper manages a number of repositories, each of which can contain one or more packages. These repositories are defined in .repo files, which are stored in /etc/zypp/repos.d.
Contents |
There are two ways to add a .repo file to zypper:
zypper ar <URI> <alias> - "ar" is short-hand for "addrepo", for example:
zypper ar http://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/packages/ oss
/etc/zypp/repos.d as root
zypper ar http://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/debug/ oss-debug
After adding a repository you should run zypper update to update all packages, or zypper refresh just to refresh package lists and verify the new .repo file.
"update" should be run periodically to keep software up to date. For most users, however, the operation will be done through a graphical updater, and you should only need to run this manually when adding a repository.
You can install software from the command line using zypper install [packagename] or zypper in [packagename], or remove it with zypper remove [packagename] or zypper rm [packagename]
If you know the full name , you can install the source package by
## this command will install meegotouch-compositor's source code to ~/rpmbuild zypper si meegotouch-compositor
If you don't know the full name of a source package, you can search a string by
## this command will list the source package match compositor zypper se -t srcpackage compositor
If you know a binary package name, but want get the source package that build out the binary package name, you can
## this command will download qt-4.7.x source code, libqtopengl4 is built from qt-4.7.x
package=libqtopengl4 ; zypper si `rpm -q --qf '%{SOURCERPM}\n' ${package}`
The file format for repositories is identical for yum and zypper. The file contains one or more repository definitions, in the form:
[home_yanli_branches_MeeGo_1.1_Core_Update_Testing] name=Branch of MeeGo:1.1:Core:Update:Testing (MeeGo_1.1) autorefresh=1 type=rpm-md baseurl=http://download.meego.com/live/home:/yanli:/branches:/MeeGo:/1.1:/Core:/Update:/Testing/MeeGo_1.1/ gpgcheck=0 enabled=1
The file starts with a unique identifier for the repository, a string to indentify it, and contails a base URL where packages will be found, and an indicator of the type of the repository. This can be yast2, plaindir or rpm-md, and defines the expected format for repository metadata. Usually it will be rpm-md.