mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-09 05:44:23 +00:00
chore: vastly improved zypper's article
This commit is contained in:
@@ -1,32 +1,153 @@
|
|||||||
# The Zypper package manager
|
# The Zypper package manager
|
||||||
|
|
||||||
SUSE and openSUSE GNU/Linux's package management utility.
|
SUSE and openSUSE GNU/Linux's package management utility and command-line interface to the ZYpp system management library (`libzypp`).
|
||||||
|
|
||||||
## Table of contents <!-- omit in toc -->
|
## Table of contents <!-- omit in toc -->
|
||||||
|
|
||||||
1. [TL;DR](#tldr)
|
1. [TL;DR](#tldr)
|
||||||
|
1. [Concepts](#concepts)
|
||||||
1. [Gotchas](#gotchas)
|
1. [Gotchas](#gotchas)
|
||||||
1. [Further readings](#further-readings)
|
1. [Further readings](#further-readings)
|
||||||
|
|
||||||
## TL;DR
|
## TL;DR
|
||||||
|
|
||||||
|
Default files:
|
||||||
|
|
||||||
|
| Path | Description |
|
||||||
|
| -------------------------- | ----------------------------------------------------------- |
|
||||||
|
| `${HOME}/.zypper.conf` | User configuration file for Zypper |
|
||||||
|
| `/etc/zypp/zypper.conf` | Global configuration file for Zypper |
|
||||||
|
| `/etc/zypp/zypp.conf` | Configuration file for `libzypp` |
|
||||||
|
| `/etc/zypp/locks` | Package lock definitions |
|
||||||
|
| `/etc/zypp/repos.d` | Directory containing repository definition files (`*.repo`) |
|
||||||
|
| `/etc/zypp/services.d` | Directory containing service definition files (`*.service`) |
|
||||||
|
| `/usr/lib/zypp/commands` | Directory for zypper extensions |
|
||||||
|
| `/var/cache/zypp/raw` | Cache directory for downloaded, raw package metadata |
|
||||||
|
| `/var/cache/zypp/solv` | Cache directory for pre-parsed package metadata (`*.solv`) |
|
||||||
|
| `/var/cache/zypp/RPMS` | Cache directory for downloaded packages |
|
||||||
|
| `/var/cache/zypp/packages` | Cache directory for installed packages |
|
||||||
|
| `/var/log/zypper.log` | Zypper's log file |
|
||||||
|
| `/var/log/zypp/history` | Installation history log file |
|
||||||
|
|
||||||
|
Command examples:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# update the repositories
|
# Update the package cache.
|
||||||
zypper refresh
|
zypper refresh
|
||||||
|
zypper ref 'updates'
|
||||||
|
|
||||||
# search for a package
|
# Search for resolvables.
|
||||||
zypper search nmap
|
zypper search 'nmap'
|
||||||
|
zypper se 'mariadb'
|
||||||
|
|
||||||
# install a package
|
# Display detailed information about resolvables.
|
||||||
zypper install parallel
|
zypper info 'workrave'
|
||||||
|
zypper if -t 'patch' 'libzypp'
|
||||||
|
zypper if -t 'pattern' 'lamp_server'
|
||||||
|
|
||||||
|
# Install resolvables.
|
||||||
|
zypper install 'parallel'
|
||||||
|
zypper in --no-confirm 'https://prerelease.keybase.io/keybase_amd64.rpm'
|
||||||
|
zypper in --no-recommends 'gv' 'virtualbox-ose=2.0.6' '/root/ansible.rpm'
|
||||||
|
|
||||||
|
# Install resolvables from source.
|
||||||
|
# The source packages *must* be available in the repositories one is using.
|
||||||
|
zypper source-install -d 'dbus-1'
|
||||||
|
zypper si 'dolphin-plugins'
|
||||||
|
|
||||||
|
# Check the dependencies of *installed* packages are satisfied.
|
||||||
|
zypper verify 'git-lfs'
|
||||||
|
zypper ve 'virtualbox'
|
||||||
|
|
||||||
|
# Uninstall resolvables.
|
||||||
|
zypper remove 'code'
|
||||||
|
zypper rm 'zfs'
|
||||||
|
zypper in '!Firefox' '-htop'
|
||||||
|
|
||||||
|
# List available updates.
|
||||||
|
# By default, it shows only *installable* ones.
|
||||||
|
zypper list-updates
|
||||||
|
zypper lu --all
|
||||||
|
|
||||||
|
# Update installed packages.
|
||||||
|
zypper update
|
||||||
|
zypper up 'vivaldi-stable'
|
||||||
|
|
||||||
|
# List available patches.
|
||||||
|
# By default, it shows only *applicable* ones.
|
||||||
|
zypper list-patches
|
||||||
|
zypper lp --all
|
||||||
|
|
||||||
|
# Check whether there are applicable patches.
|
||||||
|
zypper patch-check
|
||||||
|
zypper pchk --with-optional
|
||||||
|
|
||||||
|
# Apply patches.
|
||||||
|
zypper patch
|
||||||
|
|
||||||
|
# Perform a distribution upgrade.
|
||||||
|
zypper dist-upgrade
|
||||||
|
zypper dup --details --from 'factory' --from 'packman'
|
||||||
|
|
||||||
|
|
||||||
|
# List currently defined repositories.
|
||||||
|
zypper repos
|
||||||
|
zypper rl -d
|
||||||
|
|
||||||
|
# Add repositories.
|
||||||
|
zypper addrepo --check --refresh --priority '90' \
|
||||||
|
'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/' \
|
||||||
|
'packman'
|
||||||
|
zypper ar …
|
||||||
|
|
||||||
|
# Remove repositories.
|
||||||
|
zypper removerepo 'mozilla'
|
||||||
|
zypper rr '3'
|
||||||
|
|
||||||
|
# Rename repositories.
|
||||||
|
zypper renamerepo 'firefox' 'mozilla'
|
||||||
|
zypper nr '5' 'packman'
|
||||||
|
|
||||||
|
# Modify repositories.
|
||||||
|
zypper modifyrepo -er 'updates'
|
||||||
|
zypper mr -da
|
||||||
|
|
||||||
|
|
||||||
|
# Clean caches.
|
||||||
|
zypper clean --metadata
|
||||||
|
zypper clean --all 'packman'
|
||||||
|
|
||||||
|
# Execute without user confirmation (non-interactively).
|
||||||
|
zypper --non-interactive …
|
||||||
|
|
||||||
|
# Clean up installed kernel packages.
|
||||||
|
zypper purge-kernels --dry-run
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Concepts
|
||||||
|
|
||||||
|
The set of packages installed on a system is denoted as the _@System_ repository or _System Packages_.<br/>
|
||||||
|
In contrast to normal repositories, @System provides packages that can only be deleted.
|
||||||
|
|
||||||
|
Installed packages which do not belong to any available repository are denoted as _unwanted_, _orphaned_ or _dropped_.
|
||||||
|
|
||||||
|
One can specify the location of packages or repositories using any type of URI supported by `libzypp` (e.g. local paths, ftp/https/other URI).<br/>
|
||||||
|
In addition, Zypper accepts openSUSE Build Service repositories in the `addrepo` command in the form of `obs://project/platform` URI.
|
||||||
|
|
||||||
|
Resource objects are called _resolvables_.<br/>
|
||||||
|
They might be **packages**, **patches**, **patterns**, **products**, or basically any kind of object with dependencies to other objects managed by `libzypp`.
|
||||||
|
|
||||||
|
If one does not request specific versions of resolvables during an action, Zypper's dependency solver will pick a _reasonable_ one automatically.
|
||||||
|
|
||||||
## Gotchas
|
## Gotchas
|
||||||
|
|
||||||
Zypper does not have for now a way to list the content of an installed package. Use [rpm] for this:
|
Global options **must** be specified **before** the command name.<br/>
|
||||||
|
Command-specific options **must** be specified **after** the command name.
|
||||||
|
|
||||||
|
Zypper does not have for now a way to list **the content** of an **installed** package. Use [rpm] for this:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo rpm --query --list ${PACKAGE_NAME}
|
sudo rpm --query --list 'parallel'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Further readings
|
## Further readings
|
||||||
|
|||||||
Reference in New Issue
Block a user