Table des matières

Dernière mise-à-jour : 2020/01/30 03:28

LSF107 - Gestion des Paquets

Compiler à partir des sources

Historiquement il était nécessaire d'installer un logiciel à partir de ses fichiers sources.

Pour comprendre ce qui est la compilation d'un logiciel, commencez par télécharger le logiciel hello :

SLES12SP1:~ # wget https://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz
--2018-07-16 11:10:26--  https://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz
Résolution de ftp.gnu.org (ftp.gnu.org)… 208.118.235.20
Connexion à ftp.gnu.org (ftp.gnu.org)|208.118.235.20|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 389363 (380K) [application/x-gzip]
Enregistre : «hello-2.1.1.tar.gz»

hello-2.1.1.tar.gz                100%[===========================================================>] 380,24K   946KB/s    ds 0,4s    

2018-07-16 11:10:27 (946 KB/s) - «hello-2.1.1.tar.gz» enregistré [389363/389363]

Ensuite désarchivez le logiciel :

SLES12SP1:~ # tar xvf hello-2.1.1.tar.gz 
hello-2.1.1/
hello-2.1.1/intl/
hello-2.1.1/intl/ChangeLog
hello-2.1.1/intl/Makefile.in
hello-2.1.1/intl/config.charset
hello-2.1.1/intl/locale.alias
hello-2.1.1/intl/ref-add.sin
hello-2.1.1/intl/ref-del.sin
hello-2.1.1/intl/gmo.h
hello-2.1.1/intl/gettextP.h
hello-2.1.1/intl/hash-string.h
hello-2.1.1/intl/plural-exp.h
hello-2.1.1/intl/eval-plural.h
hello-2.1.1/intl/os2compat.h
hello-2.1.1/intl/libgnuintl.h
hello-2.1.1/intl/loadinfo.h
hello-2.1.1/intl/bindtextdom.c
hello-2.1.1/intl/dcgettext.c
hello-2.1.1/intl/dgettext.c
hello-2.1.1/intl/gettext.c
hello-2.1.1/intl/finddomain.c
hello-2.1.1/intl/loadmsgcat.c
hello-2.1.1/intl/localealias.c
hello-2.1.1/intl/textdomain.c
hello-2.1.1/intl/l10nflist.c
hello-2.1.1/intl/explodename.c
hello-2.1.1/intl/dcigettext.c
hello-2.1.1/intl/dcngettext.c
hello-2.1.1/intl/dngettext.c
hello-2.1.1/intl/ngettext.c
hello-2.1.1/intl/plural.y
hello-2.1.1/intl/plural-exp.c
hello-2.1.1/intl/localcharset.c
hello-2.1.1/intl/localename.c
hello-2.1.1/intl/osdep.c
hello-2.1.1/intl/os2compat.c
hello-2.1.1/intl/intl-compat.c
hello-2.1.1/intl/plural.c
hello-2.1.1/intl/VERSION
hello-2.1.1/po/
hello-2.1.1/po/Makefile.in.in
hello-2.1.1/po/Makevars
hello-2.1.1/po/remove-potcdate.sin
hello-2.1.1/po/quot.sed
hello-2.1.1/po/boldquot.sed
hello-2.1.1/po/en@quot.header
hello-2.1.1/po/en@boldquot.header
hello-2.1.1/po/insert-header.sin
hello-2.1.1/po/Rules-quot
hello-2.1.1/po/POTFILES.in
hello-2.1.1/po/hello.pot
hello-2.1.1/po/ca.po
hello-2.1.1/po/da.po
hello-2.1.1/po/de.po
hello-2.1.1/po/de_DE.po
hello-2.1.1/po/el.po
hello-2.1.1/po/eo.po
hello-2.1.1/po/es.po
hello-2.1.1/po/et.po
hello-2.1.1/po/fi.po
hello-2.1.1/po/fr.po
hello-2.1.1/po/gl.po
hello-2.1.1/po/he.po
hello-2.1.1/po/hr.po
hello-2.1.1/po/hu.po
hello-2.1.1/po/id.po
hello-2.1.1/po/it.po
hello-2.1.1/po/ja.po
hello-2.1.1/po/ko.po
hello-2.1.1/po/lv.po
hello-2.1.1/po/nb.po
hello-2.1.1/po/nl.po
hello-2.1.1/po/nn.po
hello-2.1.1/po/pl.po
hello-2.1.1/po/pt.po
hello-2.1.1/po/pt_BR.po
hello-2.1.1/po/ru.po
hello-2.1.1/po/sk.po
hello-2.1.1/po/sl.po
hello-2.1.1/po/sv.po
hello-2.1.1/po/tr.po
hello-2.1.1/po/uk.po
hello-2.1.1/po/ca.gmo
hello-2.1.1/po/da.gmo
hello-2.1.1/po/de.gmo
hello-2.1.1/po/de_DE.gmo
hello-2.1.1/po/el.gmo
hello-2.1.1/po/eo.gmo
hello-2.1.1/po/es.gmo
hello-2.1.1/po/et.gmo
hello-2.1.1/po/fi.gmo
hello-2.1.1/po/fr.gmo
hello-2.1.1/po/gl.gmo
hello-2.1.1/po/he.gmo
hello-2.1.1/po/hr.gmo
hello-2.1.1/po/hu.gmo
hello-2.1.1/po/id.gmo
hello-2.1.1/po/it.gmo
hello-2.1.1/po/ja.gmo
hello-2.1.1/po/ko.gmo
hello-2.1.1/po/lv.gmo
hello-2.1.1/po/nb.gmo
hello-2.1.1/po/nl.gmo
hello-2.1.1/po/nn.gmo
hello-2.1.1/po/pl.gmo
hello-2.1.1/po/pt.gmo
hello-2.1.1/po/pt_BR.gmo
hello-2.1.1/po/ru.gmo
hello-2.1.1/po/sk.gmo
hello-2.1.1/po/sl.gmo
hello-2.1.1/po/sv.gmo
hello-2.1.1/po/tr.gmo
hello-2.1.1/po/uk.gmo
hello-2.1.1/po/ChangeLog
hello-2.1.1/po/LINGUAS
hello-2.1.1/README
hello-2.1.1/ABOUT-NLS
hello-2.1.1/AUTHORS
hello-2.1.1/COPYING
hello-2.1.1/ChangeLog
hello-2.1.1/INSTALL
hello-2.1.1/Makefile.am
hello-2.1.1/Makefile.in
hello-2.1.1/NEWS
hello-2.1.1/THANKS
hello-2.1.1/TODO
hello-2.1.1/aclocal.m4
hello-2.1.1/config.guess
hello-2.1.1/config.h.in
hello-2.1.1/config.rpath
hello-2.1.1/config.sub
hello-2.1.1/configure
hello-2.1.1/configure.ac
hello-2.1.1/depcomp
hello-2.1.1/install-sh
hello-2.1.1/missing
hello-2.1.1/mkinstalldirs
hello-2.1.1/BUGS
hello-2.1.1/ChangeLog.O
hello-2.1.1/contrib/
hello-2.1.1/contrib/ChangeLog
hello-2.1.1/contrib/Makefile.am
hello-2.1.1/contrib/Makefile.in
hello-2.1.1/contrib/de_franconian_po.txt
hello-2.1.1/contrib/evolution.txt
hello-2.1.1/contrib/hello.1
hello-2.1.1/doc/
hello-2.1.1/doc/gpl.texi
hello-2.1.1/doc/ChangeLog
hello-2.1.1/doc/Makefile.am
hello-2.1.1/doc/Makefile.in
hello-2.1.1/doc/mdate-sh
hello-2.1.1/doc/stamp-vti
hello-2.1.1/doc/texinfo.tex
hello-2.1.1/doc/version.texi
hello-2.1.1/doc/hello.texi
hello-2.1.1/doc/hello.info
hello-2.1.1/src/
hello-2.1.1/src/ChangeLog
hello-2.1.1/src/Makefile.am
hello-2.1.1/src/Makefile.in
hello-2.1.1/src/alloca.c
hello-2.1.1/src/hello.c
hello-2.1.1/src/version.c
hello-2.1.1/src/getopt.c
hello-2.1.1/src/getopt1.c
hello-2.1.1/src/getopt.h
hello-2.1.1/src/system.h
hello-2.1.1/man/
hello-2.1.1/man/ChangeLog
hello-2.1.1/man/Makefile.am
hello-2.1.1/man/Makefile.in
hello-2.1.1/man/hello.1
hello-2.1.1/man/help2man
hello-2.1.1/m4/
hello-2.1.1/m4/README
hello-2.1.1/m4/ChangeLog
hello-2.1.1/m4/Makefile.am
hello-2.1.1/m4/Makefile.in
hello-2.1.1/m4/codeset.m4
hello-2.1.1/m4/gettext.m4
hello-2.1.1/m4/glibc21.m4
hello-2.1.1/m4/iconv.m4
hello-2.1.1/m4/isc-posix.m4
hello-2.1.1/m4/lcmessage.m4
hello-2.1.1/m4/lib-ld.m4
hello-2.1.1/m4/lib-link.m4
hello-2.1.1/m4/lib-prefix.m4
hello-2.1.1/m4/progtest.m4
hello-2.1.1/tests/
hello-2.1.1/tests/ChangeLog
hello-2.1.1/tests/Makefile.am
hello-2.1.1/tests/Makefile.in
hello-2.1.1/tests/hello-1
hello-2.1.1/tests/world-1
hello-2.1.1/tests/nothing-1

Changez de répertoire :

SLES12SP1:~ # cd hello-2.1.1/
SLES12SP1:~/hello-2.1.1 # 

A l'étude du fichier hello-2.1.1/README, celui-ci nous renvoie vers le fichier hello-2.1.1/INSTALL. Visualisez donc ce dernier :

SLES12SP1:~/hello-2.1.1 # more INSTALL
Copyright 1994, 1995, 1996, 1999, 2000, 2001 Free Software Foundation,
Inc.

   This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.

Basic Installation
==================

   These are generic installation instructions.

   The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation.  It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions.  Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').

   It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring.  (Caching is
disabled by default to prevent problems with accidental use of stale
cache files.)

   If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release.  If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.

   The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'.  You only need
--More--(16%)

La procédure expliquée est celle utilisée pour la plupart des installations manuelles, à savoir la saisie des quatre commandes suivantes.

./configure

Important : configure est un script chargé de créer les makefiles pour une architecture donnée. Les makefiles sont lus par la commande make.

SUSE12SP1:~/hello-2.1.1 # ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets ${MAKE}... yes
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for strerror in -lcposix... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for struct stat.st_blksize... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... no
checking for msgmerge... no
checking build system type... x86_64-suse-linux
checking host system type... x86_64-suse-linux
checking for ranlib... ranlib
checking for gcc option to accept ANSI C... none needed
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for off_t... yes
checking for size_t... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
checking for ld used by GCC... /usr/x86_64-suse-linux/bin/ld
checking if the linker (/usr/x86_64-suse-linux/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking for iconv... yes
checking argz.h usability... yes
checking argz.h presence... yes
checking for argz.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking nl_types.h usability... yes
checking nl_types.h presence... yes
checking for nl_types.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for feof_unlocked... yes
checking for fgets_unlocked... yes
checking for getc_unlocked... yes
checking for getcwd... yes
checking for getegid... yes
checking for geteuid... yes
checking for getgid... yes
checking for getuid... yes
checking for mempcpy... yes
checking for munmap... yes
checking for putenv... yes
checking for setenv... yes
checking for setlocale... yes
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strdup... yes
checking for strtoul... yes
checking for tsearch... yes
checking for __argz_count... yes
checking for __argz_stringify... yes
checking for __argz_next... yes
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for nl_langinfo and CODESET... yes
checking for LC_MESSAGES... yes
checking for bison... no
checking whether NLS is requested... yes
checking whether included gettext is requested... no
checking for GNU gettext in libc... yes
checking for perl... perl
configure: creating ./config.status
config.status: creating Makefile
config.status: creating contrib/Makefile
config.status: creating doc/Makefile
config.status: creating intl/Makefile
config.status: creating man/Makefile
config.status: creating po/Makefile.in
config.status: creating m4/Makefile
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing default-1 commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing default commands

make

Important : make sert à appeler des commandes créant des fichiers nécessaires à l'installation du logiciel.

SUSE12SP1:~/hello-2.1.1 # make
make  all-recursive
make[1]: Entering directory '/root/hello-2.1.1'
Making all in contrib
make[2]: Entering directory '/root/hello-2.1.1/contrib'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/hello-2.1.1/contrib'
Making all in doc
make[2]: Entering directory '/root/hello-2.1.1/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/hello-2.1.1/doc'
Making all in intl
make[2]: Entering directory '/root/hello-2.1.1/intl'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/hello-2.1.1/intl'
Making all in po
make[2]: Entering directory '/root/hello-2.1.1/po'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/hello-2.1.1/po'
Making all in src
make[2]: Entering directory '/root/hello-2.1.1/src'
source='hello.c' object='hello.o' libtool=no \
depfile='.deps/hello.Po' tmpdepfile='.deps/hello.TPo' \
depmode=gcc3 /bin/sh ../depcomp \
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I. -I.. -I. -I. -I.. -I../intl -I../intl    -g -O2 -c `test -f 'hello.c' || echo './'`hello.c
source='version.c' object='version.o' libtool=no \
depfile='.deps/version.Po' tmpdepfile='.deps/version.TPo' \
depmode=gcc3 /bin/sh ../depcomp \
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I. -I.. -I. -I. -I.. -I../intl -I../intl    -g -O2 -c `test -f 'version.c' || echo './'`version.c
source='getopt.c' object='getopt.o' libtool=no \
depfile='.deps/getopt.Po' tmpdepfile='.deps/getopt.TPo' \
depmode=gcc3 /bin/sh ../depcomp \
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I. -I.. -I. -I. -I.. -I../intl -I../intl    -g -O2 -c `test -f 'getopt.c' || echo './'`getopt.c
source='getopt1.c' object='getopt1.o' libtool=no \
depfile='.deps/getopt1.Po' tmpdepfile='.deps/getopt1.TPo' \
depmode=gcc3 /bin/sh ../depcomp \
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I. -I.. -I. -I. -I.. -I../intl -I../intl    -g -O2 -c `test -f 'getopt1.c' || echo './'`getopt1.c
gcc  -g -O2   -o hello  hello.o version.o getopt.o getopt1.o  
make[2]: Leaving directory '/root/hello-2.1.1/src'
Making all in man
make[2]: Entering directory '/root/hello-2.1.1/man'
perl help2man --name="Friendly Greeting Program" ../src/hello >hello.1
make[2]: Leaving directory '/root/hello-2.1.1/man'
Making all in m4
make[2]: Entering directory '/root/hello-2.1.1/m4'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/hello-2.1.1/m4'
Making all in tests
make[2]: Entering directory '/root/hello-2.1.1/tests'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/hello-2.1.1/tests'
make[2]: Entering directory '/root/hello-2.1.1'
make[2]: Leaving directory '/root/hello-2.1.1'
make[1]: Leaving directory '/root/hello-2.1.1'

make check

Important : make check permet de vérifier si la commande make a bien fonctionné.

SUSE12SP1:~/hello-2.1.1 # make check
Making check in contrib
make[1]: Entering directory '/root/hello-2.1.1/contrib'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/root/hello-2.1.1/contrib'
Making check in doc
make[1]: Entering directory '/root/hello-2.1.1/doc'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/root/hello-2.1.1/doc'
Making check in intl
make[1]: Entering directory '/root/hello-2.1.1/intl'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/root/hello-2.1.1/intl'
Making check in po
make[1]: Entering directory '/root/hello-2.1.1/po'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/root/hello-2.1.1/po'
Making check in src
make[1]: Entering directory '/root/hello-2.1.1/src'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/root/hello-2.1.1/src'
Making check in man
make[1]: Entering directory '/root/hello-2.1.1/man'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/root/hello-2.1.1/man'
Making check in m4
make[1]: Entering directory '/root/hello-2.1.1/m4'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/root/hello-2.1.1/m4'
Making check in tests
make[1]: Entering directory '/root/hello-2.1.1/tests'
make  check-TESTS
make[2]: Entering directory '/root/hello-2.1.1/tests'
PASS: hello-1
PASS: world-1
PASS: nothing-1
==================
All 3 tests passed
==================
make[2]: Leaving directory '/root/hello-2.1.1/tests'
make[1]: Leaving directory '/root/hello-2.1.1/tests'
make[1]: Entering directory '/root/hello-2.1.1'
make[1]: Leaving directory '/root/hello-2.1.1'

make install

Important : make install sert à installer le logiciel.

SUSE12SP1:~/hello-2.1.1 # make install
Making install in contrib
make[1]: Entering directory '/root/hello-2.1.1/contrib'
make[2]: Entering directory '/root/hello-2.1.1/contrib'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/root/hello-2.1.1/contrib'
make[1]: Leaving directory '/root/hello-2.1.1/contrib'
Making install in doc
make[1]: Entering directory '/root/hello-2.1.1/doc'
make[2]: Entering directory '/root/hello-2.1.1/doc'
make[2]: Nothing to be done for 'install-exec-am'.
/bin/sh ../mkinstalldirs /usr/local/info
mkdir -p -- /usr/local/info
 /usr/bin/install -c -m 644 ./hello.info /usr/local/info/hello.info
 install-info --info-dir=/usr/local/info /usr/local/info/hello.info
make[2]: Leaving directory '/root/hello-2.1.1/doc'
make[1]: Leaving directory '/root/hello-2.1.1/doc'
Making install in intl
make[1]: Entering directory '/root/hello-2.1.1/intl'
if test "hello" = "gettext" \
   && test '' = 'intl-compat.o'; then \
  /bin/sh `case "./mkinstalldirs" in /*) echo "./mkinstalldirs" ;; *) echo ".././mkinstalldirs" ;; esac` /usr/local/lib /usr/local/include; \
  /usr/bin/install -c -m 644 libintl.h /usr/local/include/libintl.h; \
  @LIBTOOL@ --mode=install \
    /usr/bin/install -c -m 644 libintl.a /usr/local/lib/libintl.a; \
else \
  : ; \
fi
if test 'no' = yes; then \
  test yes != no || /bin/sh `case "./mkinstalldirs" in /*) echo "./mkinstalldirs" ;; *) echo ".././mkinstalldirs" ;; esac` /usr/local/lib; \
  temp=/usr/local/lib/t-charset.alias; \
  dest=/usr/local/lib/charset.alias; \
  if test -f /usr/local/lib/charset.alias; then \
    orig=/usr/local/lib/charset.alias; \
    sed -f ref-add.sed $orig > $temp; \
    /usr/bin/install -c -m 644 $temp $dest; \
    rm -f $temp; \
  else \
    if test yes = no; then \
      orig=charset.alias; \
      sed -f ref-add.sed $orig > $temp; \
      /usr/bin/install -c -m 644 $temp $dest; \
      rm -f $temp; \
    fi; \
  fi; \
  /bin/sh `case "./mkinstalldirs" in /*) echo "./mkinstalldirs" ;; *) echo ".././mkinstalldirs" ;; esac` /usr/local/share/locale; \
  test -f /usr/local/share/locale/locale.alias \
    && orig=/usr/local/share/locale/locale.alias \
    || orig=./locale.alias; \
  temp=/usr/local/share/locale/t-locale.alias; \
  dest=/usr/local/share/locale/locale.alias; \
  sed -f ref-add.sed $orig > $temp; \
  /usr/bin/install -c -m 644 $temp $dest; \
  rm -f $temp; \
else \
  : ; \
fi
if test "hello" = "gettext"; then \
  /bin/sh `case "./mkinstalldirs" in /*) echo "./mkinstalldirs" ;; *) echo ".././mkinstalldirs" ;; esac` /usr/local/share/gettext/intl; \
  /usr/bin/install -c -m 644 VERSION /usr/local/share/gettext/intl/VERSION; \
  /usr/bin/install -c -m 644 ChangeLog.inst /usr/local/share/gettext/intl/ChangeLog; \
  dists="COPYING.LIB-2.0 COPYING.LIB-2.1 Makefile.in config.charset locale.alias ref-add.sin ref-del.sin gmo.h gettextP.h hash-string.h plural-exp.h eval-plural.h os2compat.h libgnuintl.h loadinfo.h bindtextdom.c dcgettext.c dgettext.c gettext.c finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y plural-exp.c localcharset.c localename.c osdep.c os2compat.c intl-compat.c"; \
  for file in $dists; do \
    /usr/bin/install -c -m 644 ./$file \
		    /usr/local/share/gettext/intl/$file; \
  done; \
  chmod a+x /usr/local/share/gettext/intl/config.charset; \
  dists="plural.c"; \
  for file in $dists; do \
    if test -f $file; then dir=.; else dir=.; fi; \
    /usr/bin/install -c -m 644 $dir/$file \
		    /usr/local/share/gettext/intl/$file; \
  done; \
  dists="xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c COPYING.LIB-2 gettext.h libgettext.h plural-eval.c"; \
  for file in $dists; do \
    rm -f /usr/local/share/gettext/intl/$file; \
  done; \
else \
  : ; \
fi
make[1]: Leaving directory '/root/hello-2.1.1/intl'
Making install in po
make[1]: Entering directory '/root/hello-2.1.1/po'
/bin/sh `case "./mkinstalldirs" in /*) echo "./mkinstalldirs" ;; *) echo ".././mkinstalldirs" ;; esac` /usr/local/share
mkdir -p -- /usr/local/share/locale/ca/LC_MESSAGES
installing ca.gmo as /usr/local/share/locale/ca/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/da/LC_MESSAGES
installing da.gmo as /usr/local/share/locale/da/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/de/LC_MESSAGES
installing de.gmo as /usr/local/share/locale/de/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/de_DE/LC_MESSAGES
installing de_DE.gmo as /usr/local/share/locale/de_DE/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/el/LC_MESSAGES
installing el.gmo as /usr/local/share/locale/el/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/eo/LC_MESSAGES
installing eo.gmo as /usr/local/share/locale/eo/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/es/LC_MESSAGES
installing es.gmo as /usr/local/share/locale/es/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/et/LC_MESSAGES
installing et.gmo as /usr/local/share/locale/et/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/fi/LC_MESSAGES
installing fi.gmo as /usr/local/share/locale/fi/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/fr/LC_MESSAGES
installing fr.gmo as /usr/local/share/locale/fr/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/gl/LC_MESSAGES
installing gl.gmo as /usr/local/share/locale/gl/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/he/LC_MESSAGES
installing he.gmo as /usr/local/share/locale/he/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/hr/LC_MESSAGES
installing hr.gmo as /usr/local/share/locale/hr/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/hu/LC_MESSAGES
installing hu.gmo as /usr/local/share/locale/hu/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/id/LC_MESSAGES
installing id.gmo as /usr/local/share/locale/id/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/it/LC_MESSAGES
installing it.gmo as /usr/local/share/locale/it/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/ja/LC_MESSAGES
installing ja.gmo as /usr/local/share/locale/ja/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/ko/LC_MESSAGES
installing ko.gmo as /usr/local/share/locale/ko/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/lv/LC_MESSAGES
installing lv.gmo as /usr/local/share/locale/lv/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/nb/LC_MESSAGES
installing nb.gmo as /usr/local/share/locale/nb/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/nl/LC_MESSAGES
installing nl.gmo as /usr/local/share/locale/nl/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/nn/LC_MESSAGES
installing nn.gmo as /usr/local/share/locale/nn/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/pl/LC_MESSAGES
installing pl.gmo as /usr/local/share/locale/pl/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/pt/LC_MESSAGES
installing pt.gmo as /usr/local/share/locale/pt/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/pt_BR/LC_MESSAGES
installing pt_BR.gmo as /usr/local/share/locale/pt_BR/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/ru/LC_MESSAGES
installing ru.gmo as /usr/local/share/locale/ru/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/sk/LC_MESSAGES
installing sk.gmo as /usr/local/share/locale/sk/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/sl/LC_MESSAGES
installing sl.gmo as /usr/local/share/locale/sl/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/sv/LC_MESSAGES
installing sv.gmo as /usr/local/share/locale/sv/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/tr/LC_MESSAGES
installing tr.gmo as /usr/local/share/locale/tr/LC_MESSAGES/hello.mo
mkdir -p -- /usr/local/share/locale/uk/LC_MESSAGES
installing uk.gmo as /usr/local/share/locale/uk/LC_MESSAGES/hello.mo
if test "hello" = "gettext"; then \
  /bin/sh `case "./mkinstalldirs" in /*) echo "./mkinstalldirs" ;; *) echo ".././mkinstalldirs" ;; esac` /usr/local/share/gettext/po; \
  for file in Makefile.in.in Makevars remove-potcdate.sin quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot  ; do \
    /usr/bin/install -c -m 644 ./$file \
		    /usr/local/share/gettext/po/$file; \
  done; \
else \
  : ; \
fi
make[1]: Leaving directory '/root/hello-2.1.1/po'
Making install in src
make[1]: Entering directory '/root/hello-2.1.1/src'
make[2]: Entering directory '/root/hello-2.1.1/src'
/bin/sh ../mkinstalldirs /usr/local/bin
  /usr/bin/install -c hello /usr/local/bin/hello
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/root/hello-2.1.1/src'
make[1]: Leaving directory '/root/hello-2.1.1/src'
Making install in man
make[1]: Entering directory '/root/hello-2.1.1/man'
make[2]: Entering directory '/root/hello-2.1.1/man'
make[2]: Nothing to be done for 'install-exec-am'.
/bin/sh ../mkinstalldirs /usr/local/man/man1
 /usr/bin/install -c -m 644 ./hello.1 /usr/local/man/man1/hello.1
make[2]: Leaving directory '/root/hello-2.1.1/man'
make[1]: Leaving directory '/root/hello-2.1.1/man'
Making install in m4
make[1]: Entering directory '/root/hello-2.1.1/m4'
make[2]: Entering directory '/root/hello-2.1.1/m4'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/root/hello-2.1.1/m4'
make[1]: Leaving directory '/root/hello-2.1.1/m4'
Making install in tests
make[1]: Entering directory '/root/hello-2.1.1/tests'
make[2]: Entering directory '/root/hello-2.1.1/tests'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/root/hello-2.1.1/tests'
make[1]: Leaving directory '/root/hello-2.1.1/tests'
make[1]: Entering directory '/root/hello-2.1.1'
make[2]: Entering directory '/root/hello-2.1.1'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/root/hello-2.1.1'
make[1]: Leaving directory '/root/hello-2.1.1'

Il convient maintenant de tester le nouveau logiciel :

SUSE12SP1:~/hello-2.1.1 # hello
Hello, world!

Le logiciel hello a été correctement installé.

La commande rpm

A faire - Placez-vous dans le répertoire personnel de root grâce à la commande cd ~.

Afin de faciliter l'installation, la désinstallation et la gestion des logiciels (appelés paquets), CentOS et Red Hat utilisent un format de fichier de logiciels installables spécifique. Celui-ci s'appelle RPM pour Red Hat Package Manager. La commande utilisée pour manipuler ses paquets s'appelle aussi rpm.

Les options de la commande rpm sont :

SUSE12SP1:~ # cd ~
SUSE12SP1:~ # rpm --help
Usage: rpm [OPTION...]

Query/Verify package selection options:
  -a, --all                         query/verify all packages
  -f, --file                        query/verify package(s) owning file
  -g, --group                       query/verify package(s) in group
  -p, --package                     query/verify a package file
      --pkgid                       query/verify package(s) with package identifier
      --hdrid                       query/verify package(s) with header identifier
      --triggeredby                 query the package(s) triggered by the package
      --whatrequires                query/verify the package(s) which require a dependency
      --whatprovides                query/verify the package(s) which provide a dependency
      --nomanifest                  do not process non-package files as manifests

Query options (with -q or --query):
  -c, --configfiles                 list all configuration files
  -d, --docfiles                    list all documentation files
  -L, --licensefiles                list all license files
      --dump                        dump basic file information
  -l, --list                        list files in package
      --queryformat=QUERYFORMAT     use the following query format
  -s, --state                       display the states of the listed files

Verify options (with -V or --verify):
      --nofiledigest                don't verify digest of files
      --nofiles                     don't verify files in package
      --nodeps                      don't verify package dependencies
      --noscript                    don't execute verify script(s)

Install/Upgrade/Erase options:
      --allfiles                    install all files, even configurations which might otherwise be skipped
      --allmatches                  remove all packages which match <package> (normally an error is generated if <package> specified
                                    multiple packages)
      --badreloc                    relocate files in non-relocatable package
  -e, --erase=<package>+            erase (uninstall) package
      --excludedocs                 do not install documentation
      --excludepath=<path>          skip files with leading component <path> 
      --force                       short hand for --replacepkgs --replacefiles
  -F, --freshen=<packagefile>+      upgrade package(s) if already installed
  -h, --hash                        print hash marks as package installs (good with -v)
      --ignorearch                  don't verify package architecture
      --ignoreos                    don't verify package operating system
      --ignoresize                  don't check disk space before installing
  -i, --install                     install package(s)
      --justdb                      update the database, but do not modify the filesystem
      --nodeps                      do not verify package dependencies
      --nofiledigest                don't verify digest of files
      --nocontexts                  don't install file security contexts
      --noorder                     do not reorder package installation to satisfy dependencies
      --noscripts                   do not execute package scriptlet(s)
      --notriggers                  do not execute any scriptlet(s) triggered by this package
      --nocollections               do not perform any collection actions
      --oldpackage                  upgrade to an old version of the package (--force on upgrades does this automatically)
      --percent                     print percentages as package installs
      --prefix=<dir>                relocate the package to <dir>, if relocatable
      --relocate=<old>=<new>        relocate files from path <old> to <new>
      --replacefiles                ignore file conflicts between packages
      --replacepkgs                 reinstall if the package is already present
      --test                        don't install, but tell if it would work or not
  -U, --upgrade=<packagefile>+      upgrade package(s)

Common options for all rpm modes and executables:
  -D, --define='MACRO EXPR'         define MACRO with value EXPR
      --undefine=MACRO              undefine MACRO
  -E, --eval='EXPR'                 print macro expansion of EXPR
      --macros=<FILE:...>           read <FILE:...> instead of default file(s)
      --nodigest                    don't verify package digest(s)
      --nosignature                 don't verify package signature(s)
      --rcfile=<FILE:...>           read <FILE:...> instead of default file(s)
  -r, --root=ROOT                   use ROOT as top level directory (default: "/")
      --dbpath=DIRECTORY            use database in DIRECTORY
      --querytags                   display known query tags
      --showrc                      display final rpmrc and macro configuration
      --quiet                       provide less detailed output
  -v, --verbose                     provide more detailed output
      --version                     print the version of rpm being used

Options implemented via popt alias/exec:
      --scripts                     list install/erase scriptlets from package(s)
      --setperms                    set permissions of files in a package
      --setugids                    set user/group ownership of files in a package
      --conflicts                   list capabilities this package conflicts with
      --obsoletes                   list other packages removed by installing this package
      --provides                    list capabilities that this package provides
      --requires                    list capabilities required by package(s)
      --recommends                  list capabilities recommended by package(s)
      --suggests                    list capabilities suggested by package(s)
      --supplements                 list capabilities supplemented by package(s)
      --enhances                    list capabilities enhanced by package(s)
      --info                        list descriptive information from package(s)
      --changelog                   list change logs for this package
      --xml                         list metadata in xml
      --triggers                    list trigger scriptlets from package(s)
      --last                        list package(s) by install time, most recent first
      --dupes                       list duplicated packages
      --filesbypkg                  list all files from each package
      --fileclass                   list file names with classes
      --filecolor                   list file names with colors
      --fscontext                   list file names with security context from file system
      --fileprovide                 list file names with provides
      --filerequire                 list file names with requires
      --filecaps                    list file names with POSIX1.e capabilities

Help options:
  -?, --help                        Show this help message
      --usage                       Display brief usage message

Configuration

Le fichier de configuration principal de la commande rpm est /usr/lib/rpm/rpmrc :

SUSE12SP1:~ # cat /usr/lib/rpm/rpmrc
#/*! \page config_rpmrc Default configuration: /usr/lib/rpm/rpmrc
# \verbatim
#
# This is a global RPM configuration file. All changes made here will
# be lost when the rpm package is upgraded. Any per-system configuration
# should be added to /etc/rpmrc, while per-user configuration should
# be added to ~/.rpmrc.
#
#############################################################
# Values for RPM_OPT_FLAGS for various platforms

# "fat" binary with both archs, for Darwin
optflags: fat -O2 -g -arch i386 -arch ppc

optflags: i386 -O2 -g -m32 -march=i486 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: i486 -O2 -g -m32 -march=i486 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: i586 -O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: i686 -O2 -g -m32 -march=i686 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: pentium3 -O2 -g -m32 -march=pentium3
optflags: pentium4 -O2 -g -m32 -march=pentium4
optflags: athlon -O2 -g -m32 -march=athlon
optflags: geode -Os -g -m32 -march=geode
optflags: ia64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: x86_64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
optflags: amd64 -O2 -g
optflags: ia32e -O2 -g
...

Les directives indiquent comment optimiser la construction d'un rpm en fonction du type de processeur retourné par la commande uname -p. Par exemple, la directive buildarchtranslate: athlon: i586 indique que le processus doit utiliser les optimisations i586 lors de la construction d'un src.rpm sur une architecture athlon. Si au contraire il est souhaité que les optimisations athlon soient utilisées, il convient d'inclure la ligne buildarchtranslate: athlon: athlon dans le fichier /etc/rpmrc. En effet lors de la mise à jour du paquet rpm, le fichier /usr/lib/rpm/rpmrc est écrasé. Toute modification des directives de ce fichier doivent être inscrites dans /etc/rpmrc ou dans un fichier ~/.rpmrc spécifique à un utilisateur.

Utilisation

Afin de connaître la liste des paquets installés sur la machine, il convient de saisir la commande suivante dans une console en tant que root :

SUSE12SP1:~ # rpm -qa | more
deltarpm-3.6-3.58.x86_64
yelp-lang-3.10.2-1.20.noarch
hwinfo-21.23-1.13.x86_64
python3-speechd-0.8-7.9.x86_64
libzio1-1.00-9.188.x86_64
libgudev-1_0-0-210-83.2.x86_64
libnl-config-3.2.23-2.21.noarch
iso_ent-2000.11.03-826.7.noarch
gnome-control-center-3.10.3-17.1.x86_64
bash-completion-2.1-4.15.noarch
libgsttag-1_0-0-1.2.4-1.124.x86_64
cpupower-3.13-8.2.x86_64
Mesa-libEGL1-10.0.2-90.17.x86_64
yast2-trans-en_GB-3.0.0-36.1.noarch
libtiff5-32bit-4.0.4-12.2.x86_64
gnome-tweak-tool-3.10.1-5.18.noarch
xvinfo-1.1.2-1.16.x86_64
yast2-pam-3.1.1-1.264.noarch
libpyglib-gi-2_0-python3-0-3.10.2-3.5.x86_64
smartmontools-6.2-4.33.x86_64
patterns-sles-documentation-32bit-12-64.3.x86_64
libboost_regex1_54_0-1.54.0-13.1.x86_64
libitm1-5.2.1+r226025-4.1.x86_64
python3-3.4.1-12.1.x86_64
yast2-control-center-3.1.3-1.15.x86_64
libarchive13-3.1.2-9.1.x86_64
haveged-1.9.1-14.2.x86_64
zip-3.0-15.18.x86_64
xkbcomp-1.2.4-9.59.x86_64
which-2.20-3.180.x86_64
libgcr-3-1-3.10.1-1.187.x86_64
libmozjs-17_0-17.0-8.1.x86_64
sysconfig-0.83.8-7.1.x86_64
master-boot-code-1.22-16.27.x86_64
bind-libs-32bit-9.9.6P1-30.2.x86_64
--More--

Afin de connaître le nombre total de paquets installés sur la machine, utilisez la commande suivante :

SUSE12SP1:~ # rpm -qa | wc -l
1592

Imaginons maintenant que vous souhaitez vérifier si un paquet contenant la chaine de caractères setup soit déjà installé sur la machine. Dans ce cas, il convient d'utiliser la commande suivante :

SUSE12SP1:~ # rpm -qa | grep setup
libcryptsetup4-1.6.4-2.10.x86_64
cryptsetup-1.6.4-2.10.x86_64
libcryptsetup4-32bit-1.6.4-2.10.x86_64

Afin de connaitre les détails du paquet cryptsetup, il convient de saisir la commande suivante :

SUSE12SP1:~ # rpm -qi cryptsetup
Name        : cryptsetup
Version     : 1.6.4
Release     : 2.10
Architecture: x86_64
Install Date: Sun May  1 15:17:28 2016
Group       : System/Base
Size        : 647221
License     : SUSE-GPL-2.0-with-openssl-exception and LGPL-2.0+
Signature   : RSA/SHA256, Mon Sep 22 13:52:09 2014, Key ID 70af9e8139db7c82
Source RPM  : cryptsetup-1.6.4-2.10.src.rpm
Build Date  : Mon Sep 22 13:51:47 2014
Build Host  : sheep08
Relocations : (not relocatable)
Packager    : https://www.suse.com/
Vendor      : SUSE LLC <https://www.suse.com/>
URL         : http://code.google.com/p/cryptsetup/
Summary     : Set Up dm-crypt Based Encrypted Block Devices
Description :
cryptsetup is used to conveniently set up dm-crypt based device-mapper
targets. It allows to set up targets to read cryptoloop compatible
volumes as well as LUKS formatted ones. The package additionally
includes support for automatically setting up encrypted volumes at boot
time via the config file /etc/crypttab.
Distribution: SUSE Linux Enterprise 12

Afin de lister tous les fichiers installés par le paquet concerné, utilisez la commande suivante :

SUSE12SP1:~ # rpm -ql cryptsetup
/sbin/cryptsetup
/usr/sbin/cryptsetup
/usr/sbin/cryptsetup-reencrypt
/usr/sbin/veritysetup
/usr/share/locale/cs/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/de/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/es/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/fi/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/fr/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/id/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/it/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/nl/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/pl/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/sv/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/uk/LC_MESSAGES/cryptsetup.mo
/usr/share/locale/vi/LC_MESSAGES/cryptsetup.mo
/usr/share/man/man8/cryptsetup-reencrypt.8.gz
/usr/share/man/man8/cryptsetup.8.gz
/usr/share/man/man8/veritysetup.8.gz

A l'inverse, si vous connaissez le nom d'un fichier et vous souhaitez savoir quel paquet l'a installé, utilisez la commande suivante :

SUSE12SP1:~ # rpm -qf /sbin/cryptsetup
cryptsetup-1.6.4-2.10.x86_64

Pour connaitre les fichiers modifiés depuis l'installation d'un paquetage, utilisez la commande suivante :

# rpm -qV packet

Dans le cas où aucun fichier n'a été modifié, le console n'affiche rien. Dans le cas où les fichiers ont été modifiés, le système vous indique, fichier par fichier, les modifications apportées selon le tableau ci-dessous :

Lettre ou mot Clé Description
5 Contrôle MD5
S Taille du fichier
L Lien symbolique
T Date de modification
D Périphérique
U Utilisateur propriétaire
G Groupe propriétaire
M Droits d'accès
? Fichier illisible
Manquant Fichier manquant

Important : Un paquet rpm est un fichier cpio modifié. Pour pouvoir extraire le contenu d'un src.rpm et explorer l'arborescence utilisé pour construire le paquet, utilisez la commande rpm2cpio paquet.src.rpm | cpio -i –make-directories

La commande zypper

zypper est le nom d'un programme utilitaire de gestion de paquets utilisé par SLES et openSUSE.

Il permet de gérer l'installation et la mise à jour des logiciels installés. C'est une surcouche à RPM gérant les téléchargements et les dépendances, de la même manière que APT de Debian, Urpmi de Mandriva ou yum de Redhat.

La commande zypper prend la forme suivante :

# zypper [--options-globales] <commande> [--options-commande] [arguments] [Entrée]

Les options et commandes de zypper sont :

SUSE12SP1:~ # zypper --help
  Usage:
	zypper [--global-options] <command> [--command-options] [arguments]
	zypper <subcommand> [--command-options] [arguments]

  Global Options:
	--help, -h		Help.
	--version, -V		Output the version number.
	--promptids		Output a list of zypper's user prompts.
	--config, -c <file>	Use specified config file instead of the default.
	--userdata <string>	User defined transaction id used in history and plugins.
	--quiet, -q		Suppress normal output, print only error
				messages.
	--verbose, -v		Increase verbosity.
	--[no-]color		Whether to use colors in output if tty supports it.
	--no-abbrev, -A		Do not abbreviate text in tables.
	--table-style, -s	Table style (integer).
	--non-interactive, -n	Do not ask anything, use default answers
				automatically.
	--non-interactive-include-reboot-patches
				Do not treat patches as interactive, which have
				the rebootSuggested-flag set.
	--xmlout, -x		Switch to XML output.
	--ignore-unknown, -i	Ignore unknown packages.

	--reposd-dir, -D <dir>	Use alternative repository definition file
				directory.
	--cache-dir, -C <dir>	Use alternative directory for all caches.
	--raw-cache-dir <dir>	Use alternative raw meta-data cache directory.
	--solv-cache-dir <dir>	Use alternative solv file cache directory.
	--pkg-cache-dir <dir>	Use alternative package cache directory.

     Repository Options:
	--no-gpg-checks		Ignore GPG check failures and continue.
	--gpg-auto-import-keys	Automatically trust and import new repository
				signing keys.
	--plus-repo, -p <URI>	Use an additional repository.
	--plus-content <tag>	Additionally use disabled repositories providing a specific keyword.
				Try '--plus-content debug' to enable repos indicating to provide debug packages.
	--disable-repositories	Do not read meta-data from repositories.
	--no-refresh		Do not refresh the repositories.
	--no-cd			Ignore CD/DVD repositories.
	--no-remote		Ignore remote repositories.
	--releasever		Set the value of $releasever in all .repo files (default: distribution version)

     Target Options:
	--root, -R <dir>	Operate on a different root directory.
	--disable-system-resolvables
				Do not read installed packages.

  Commands:
	help, ?			Print help.
	shell, sh		Accept multiple commands at once.

     Repository Management:
	repos, lr		List all defined repositories.
	addrepo, ar		Add a new repository.
	removerepo, rr		Remove specified repository.
	renamerepo, nr		Rename specified repository.
	modifyrepo, mr		Modify specified repository.
	refresh, ref		Refresh all repositories.
	clean			Clean local caches.

     Service Management:
	services, ls		List all defined services.
	addservice, as		Add a new service.
	modifyservice, ms	Modify specified service.
	removeservice, rs	Remove specified service.
	refresh-services, refs	Refresh all services.

     Software Management:
	install, in		Install packages.
	remove, rm		Remove packages.
	verify, ve		Verify integrity of package dependencies.
	source-install, si	Install source packages and their build
				dependencies.
	install-new-recommends, inr
				Install newly added packages recommended
				by installed packages.

     Update Management:
	update, up		Update installed packages with newer versions.
	list-updates, lu	List available updates.
	patch			Install needed patches.
	list-patches, lp	List needed patches.
	dist-upgrade, dup	Perform a distribution upgrade.
	patch-check, pchk	Check for patches.

     Querying:
	search, se		Search for packages matching a pattern.
	info, if		Show full information for specified packages.
	patch-info		Show full information for specified patches.
	pattern-info		Show full information for specified patterns.
	product-info		Show full information for specified products.
	patches, pch		List all available patches.
	packages, pa		List all available packages.
	patterns, pt		List all available patterns.
	products, pd		List all available products.
	what-provides, wp	List packages providing specified capability.

     Package Locks:
	addlock, al		Add a package lock.
	removelock, rl		Remove a package lock.
	locks, ll		List current package locks.
	cleanlocks, cl		Remove unused locks.

     Other Commands:
	versioncmp, vcmp	Compare two version strings.
	targetos, tos		Print the target operating system ID string.
	licenses		Print report about licenses and EULAs of
				installed packages.
	download		Download rpms specified on the commandline to a local directory.
	source-download		Download source rpms for all installed packages
				to a local directory.

     Subcommands:
	subcommand		Lists available subcommands.

Type 'zypper help <command>' to get command-specific help.

Configuration

La configuration de zypper est effectuée en éditant les fichiers /etc/zypp/zypp.conf, /etc/zypp/zypper.conf et éventuellement $HOME/.zypper.conf :

L'ordre d’interprétation des configurations est importante :

/etc/zypp/zypp.conf

SUSE12SP1:~ # more /etc/zypp/zypp.conf
## Configuration file for software management
## /etc/zypp/zypp.conf
##
## Boolean values are 0 1 yes no on off true false

[main]

##
## Override the detected architecture
##
## Valid values:  i586, i686, x86_64, ppc, ppc64, ia64, s390, s390x, ..
## Default value: Autodetected
##
## ** CAUTION: Only set if you know what you're doing !
## ** Changing this needs a full refresh (incl. download)
## ** of all repository data.
##
# arch = s390

##
## Path where the caches are kept.
##
## Valid values: A directory
## Default value: /var/cache/zypp
##
# cachedir = /var/cache/zypp

##
## Path where the repo metadata is downloaded and kept.
##
## Valid values: A directory
## Default value: {cachedir}/raw
##
## Changing this needs a full refresh (incl. download) of all repository data
##
--More--(4%)

/etc/zypp/zypper.conf

SUSE12SP1:~ # more /etc/zypp/zypper.conf
## Configuration file for Zypper.
##
## location: /etc/zypp/zypper.conf (system-wide)
##       or: $HOME/.zypper.conf    (user-specific)
##
## You can edit this file by hand (try to keep the structure) or by using
## 'zypper conf' command (TODO). If you need user-specific configuration
## and you do not have ~/.zypper.conf yet, use /etc/zypp/zypper.conf
## as template (copy it to ~/.zypper.conf) and adjust to your liking.
##
## The options known also to libzypp will be overriden by zypper.conf, if set.
##
## Boolean values are:
##   0 1 yes no on off true false

## Color values:
## Color values are case insensitive and may be prefixed with
## either Bold, Light or Bright to turn on the terminals
## bold/increased intensity attribute:
##   Grey Red Green Blue Brown Cyan Purple/Magenta Black
##   White	(== LightGrey)
##   Yellow	(== LightBrown)
##   Default	(== terminals default color)
##   Bold, Light, Bright (== LightDefault, terminals default bold color)

[main]

## Show repository alias instead of name.
##
## Alias is an alternative unique name of repository. Some users prefer
## to define short, handy aliases for their repositories and use them
## when specifying repositories instead of number, name, or URI.
## These users might want to set this option to 'true'.
##
## Other users prefer to keep the aliases and names set by installation,
--More--(18%)

Dépôts

Important : Un dépôt est un lieu de stockage de paquets binaires prêts à installer. Un dépôt peut être le DVD d'installation de la distribution, un dossier sur disque dur ou bien des serveurs distants accessibles par Internet.

Les dépôts de paquets sont spécifiés dans un fichier par dépôt stocké dans le répertoire /etc/zypp/repos.d :

SUSE12SP1:~ # ls /etc/zypp/repos.d
SLES12-SP1-12.1-0.repo
SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Debuginfo-Pool.repo
SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Debuginfo-Updates.repo
SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Pool.repo
SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Source-Pool.repo
SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Updates.repo

Par exemple :

SUSE12SP1:~ # cat /etc/zypp/repos.d/SLES12-SP1-12.1-0.repo
[SLES12-SP1-12.1-0]
name=SLES12-SP1-12.1-0
enabled=1
autorefresh=0
baseurl=cd:///?devices=/dev/disk/by-id/ata-VBOX_CD-ROM_VB2-01700376
path=/
type=yast2
keeppackages=0

ou :

SUSE12SP1:~ # cat /etc/zypp/repos.d/SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Updates.repo
[SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Updates]
name=SLES12-SP1-Updates
enabled=1
autorefresh=1
baseurl=https://updates.suse.com/SUSE/Updates/SLE-SERVER/12-SP1/x86_64/update?4Z3imOnkmCfmVfTjzKnS5a1z21vEfrb1Qhxjo8tVzrZ2-Bz_VQxbeJkQJ8Uo7f7IH1MNmeNGZOLUxhVkga2iFnLNFd7wwjGUBeBh_c47J_Ngy1uSjUWas-GXe2UdY9wv1yTUy1pQMs5n0HU
type=rpm-md
service=SUSE_Linux_Enterprise_Server_12_SP1_x86_64

Utilisation

Les commandes les plus utilisées de zypper sont :

Commande Abréviation Description
install in Installer un ou plusieurs paquets.
update up Mettre à jour un ou plusieurs paquets. Sans nom(s) de paquet(s), tous les paquets sont mis à jour.
refresh ref Rafraîchir le cache des paquets disponibles.
remove rm Supprimer un paquet.
what-provides wp Visualiser une liste de paquetages qui fournissent le fichier ou caractéristique spécifié.
search -d se -d Trouver un paquetage qui a la chaîne recherchée dans sa description.
search se Trouver un paquetage qui a la chaîne recherchée dans son nom.
info if Obtenir de l'information sur un paquet.
patch Appliquer les patchs nécessaires au système.
verify ve Vérifier si les dépendances des paquets installés sont satisfaites.
repos lr Lister les dépôts configurés dans votre système.
help Obtenir de l'aide sur une des commandes ci-dessus. Par exemple zypper help search.

LAB #1 - Utiliser la commande zypper

Commencez par mettre à jour les dépôts de zypper :

SUSE12SP1:~ # zypper refresh
Repository 'SLES12-SP1-12.1-0' is up to date.                                                                                         
Repository 'SLES12-SP1-Pool' is up to date.                                                                                           
Repository 'SLES12-SP1-Updates' is up to date.                                                                                        
All repositories have been refreshed.

Listez les dépôts zypper configurés dans votre système :

SUSE12SP1:~ # zypper repos
# | Alias                                                                   | Name                         | Enabled | GPG Check | Refresh
--+-------------------------------------------------------------------------+------------------------------+---------+-----------+--------
1 | SLES12-SP1-12.1-0                                                       | SLES12-SP1-12.1-0            | Yes     | (r ) Yes  | No     
2 | SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Debuginfo-Pool    | SLES12-SP1-Debuginfo-Pool    | No      | ----      | No     
3 | SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Debuginfo-Updates | SLES12-SP1-Debuginfo-Updates | No      | ----      | Yes    
4 | SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Pool              | SLES12-SP1-Pool              | Yes     | (r ) Yes  | No     
5 | SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Source-Pool       | SLES12-SP1-Source-Pool       | No      | ----      | No     
6 | SUSE_Linux_Enterprise_Server_12_SP1_x86_64:SLES12-SP1-Updates           | SLES12-SP1-Updates           | Yes     | (r ) Yes  | Yes    

Recherchez la chaîne mc dans le nom des paquets :

SUSE12SP1:~ # zypper search mc
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...

S | Name                         | Summary                                                                     | Type      
--+------------------------------+-----------------------------------------------------------------------------+-----------
  | jakarta-commons-pool-tomcat5 | Jakarta Commons Pool Package                                                | package   
  | libXdmcp                     | X Display Manager Control Protocol library                                  | srcpackage
i | libXdmcp6                    | X Display Manager Control Protocol library                                  | package   
  | libXdmcp6-32bit              | X Display Manager Control Protocol library                                  | package   
  | libXvMC                      | X-Video Motion Compensation library                                         | srcpackage
  | libXvMC1                     | X-Video Motion Compensation library                                         | package   
  | libmemcached                 | A C/C++ client library and tools for the memcached server                   | srcpackage
  | libmemcached                 | A C/C++ client library and tools for the memcached server                   | package   
  | libmemcached11               | Libmemcached is a C/C++ client library and tools for the memcached server   | package   
  | libmemcachedutil2            | Libmemcached is a C/C++ client library and tools for the memcached server   | package   
  | mc                           | Midnight Commander                                                          | package   
  | mc                           | Midnight Commander                                                          | srcpackage
  | mc-lang                      | Languages for package mc                                                    | package   
i | mcelog                       | Log Machine Check Events                                                    | package   
  | mcelog                       | Log Machine Check Events                                                    | srcpackage
  | mcstrans                     | SELinux Translation Daemon                                                  | package   
  | mcstrans                     | SELinux Translation Daemon                                                  | srcpackage
  | memcached                    | A high-performance, distributed memory object caching system                | srcpackage
  | memcached                    | A high-performance, distributed memory object caching system                | package   
  | openlmi-bmc                  | CMPI provider for BMC management                                            | package   
  | openlmi-bmc                  | CMPI provider for BMC management                                            | srcpackage
  | sblim-wbemcli                | SBLIM WBEM Command Line Interface                                           | package   
  | sblim-wbemcli                | SBLIM WBEM Command Line Interface                                           | srcpackage
  | termcap                      | The Termcap Library                                                         | package   
  | termcap                      | The Termcap Library                                                         | srcpackage
  | termcap-32bit                | The Termcap Library                                                         | package   
  | tomcat                       | Apache Servlet/JSP/EL Engine, RI for Servlet 3.1/JSP 2.3/EL 3.0 API         | package   
  | tomcat                       | Apache Servlet/JSP/EL Engine, RI for Servlet 3.1/JSP 2.3/EL 3.0 API         | srcpackage
  | tomcat-admin-webapps         | The host-manager and manager web applications for Apache Tomcat             | package   
  | tomcat-docs-webapp           | The docs web application for Apache Tomcat                                  | package   
  | tomcat-el-3_0-api            | Expression Language v3.0 API                                                | package   
  | tomcat-javadoc               | Javadoc generated documentation for Apache Tomcat                           | package   
  | tomcat-jsp-2_3-api           | Apache Tomcat JSP API implementation classes                                | package   
  | tomcat-lib                   | Libraries needed to run the Tomcat Web container                            | package   
  | tomcat-servlet-3_1-api       | Apache Tomcat Servlet API implementation classes                            | package   
  | tomcat-webapps               | ROOT and examples web applications for Apache Tomcat                        | package   
i | typelib-1_0-NMClient-1_0     | Convenience library for clients of NetworkManager -- Introspection bindings | package     

Recherchez la chaîne mc dans la description des paquets :

SUSE12SP1:~ # zypper search -d mc
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...

S | Name                             | Summary                                                                     | Type      
--+----------------------------------+-----------------------------------------------------------------------------+-----------
  | SUSE-SLE-SERVER-12-SP1-2015-922  | Security update for gpg2                                                    | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1004 | Security update for the Linux Kernel                                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1103 | Recommended update for aaa_base                                             | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1123 | Security update for libarchive                                              | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1186 | Security update for java-1_7_0-openjdk                                      | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1187 | Security update for java-1_8_0-openjdk                                      | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1246 | Security update for the Linux Kernel                                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1293 | Security update for tomcat                                                  | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1358 | Optional update for gcc6                                                    | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1464 | Security update for X Window System client libraries                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1520 | Recommended update for lvm2                                                 | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1639 | Security update for jasper                                                  | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1654 | Recommended update for pcsc-ccid                                            | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1680 | Security update for libtcnative-1-0                                         | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1683 | Security update for java-1_8_0-openjdk                                      | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1700 | Security update for the Linux Kernel                                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1731 | Optional update apache-commons-pool2, apache-commons-dbcp                   | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1743 | Initial release of libmemcached, memcached, php5-memcached                  | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1788 | Recommended update for systemd                                              | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1791 | Security update for tomcat                                                  | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1795 | Security update for xen                                                     | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1931 | Recommended update for hwinfo                                               | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1937 | Security update for tiff                                                    | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-1940 | Recommended update for shibboleth-sp                                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-213  | Recommended update for xorg-x11-server                                      | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-379  | Recommended update for wicked                                               | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-448  | Security update for tomcat                                                  | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-556  | Security update for java-1_7_0-openjdk                                      | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-599  | Recommended update for release-notes-sles                                   | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-600  | Security update for the Linux Kernel                                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-602  | Recommended update for clamav                                               | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-659  | Recommended update for aaa_base                                             | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-76   | Security update for wireshark                                               | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-761  | Recommended update for lvm2                                                 | patch     
  | SUSE-SLE-SERVER-12-SP1-2016-929  | Recommended update for mtools                                               | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-18   | Recommended update for ipmitool                                             | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-238  | Security update for the Linux Kernel                                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-297  | Security update for xen                                                     | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-374  | Recommended update for systemd                                              | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-625  | Recommended update for tomcat                                               | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-740  | Security update for qemu                                                    | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-812  | Recommended update for Mesa                                                 | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-831  | Security update for the Linux Kernel                                        | patch     
  | SUSE-SLE-SERVER-12-SP1-2017-848  | Security update for tomcat                                                  | patch     
  | apache2-mod_jk                   | Connectors between Apache and Tomcat Servlet Container                      | package   
  | apache2-mod_jk                   | Connectors between Apache and Tomcat Servlet Container                      | srcpackage
i | crash                            | Crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles  | package   
  | crash                            | Crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles  | srcpackage
i | crash-kmp-default                | Crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles  | package   
  | crash-kmp-xen                    | Crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles  | package   
i | gpm                              | Console Mouse Support                                                       | package   
  | gpm                              | Console Mouse Support                                                       | srcpackage
i | gpm-32bit                        | Console Mouse Support                                                       | package   
i | ipmitool                         | Utility for IPMI Control                                                    | package   
  | ipmitool                         | Utility for IPMI Control                                                    | srcpackage
  | jakarta-commons-pool-tomcat5     | Jakarta Commons Pool Package                                                | package   
i | joe                              | A Text Editor                                                               | package   
  | joe                              | A Text Editor                                                               | srcpackage
  | kdumpid                          | Utility to extract information from vmcores                                 | package   
  | kdumpid                          | Utility to extract information from vmcores                                 | srcpackage
i | kernel-default                   | The Standard Kernel                                                         | package   
  | kernel-default                   | The Standard Kernel                                                         | srcpackage
  | kernel-default-base              | The Standard Kernel - base modules                                          | package   
i | kernel-default-devel             | Development files necessary for building kernel modules                     | package   
i | kernel-devel                     | Development files needed for building kernel modules                        | package   
i | kernel-macros                    | RPM macros for building Kernel Module Packages                              | package   
  | kernel-source                    | The Linux Kernel Sources                                                    | package   
  | kernel-source                    | The Linux Kernel Sources                                                    | srcpackage
  | kernel-syms                      | Kernel Symbol Versions (modversions)                                        | package   
  | kernel-syms                      | Kernel Symbol Versions (modversions)                                        | srcpackage
  | kernel-xen                       | The Xen Kernel                                                              | package   
  | kernel-xen                       | The Xen Kernel                                                              | srcpackage
  | kernel-xen-base                  | The Xen Kernel - base modules                                               | package   
  | kernel-xen-devel                 | Development files necessary for building kernel modules                     | package   
  | libXdmcp                         | X Display Manager Control Protocol library                                  | srcpackage
i | libXdmcp6                        | X Display Manager Control Protocol library                                  | package   
  | libXdmcp6-32bit                  | X Display Manager Control Protocol library                                  | package   
  | libXvMC                          | X-Video Motion Compensation library                                         | srcpackage
  | libXvMC1                         | X-Video Motion Compensation library                                         | package   
  | libdv                            | The Quasar DV Codec                                                         | srcpackage
i | libdv4                           | The Quasar DV Codec                                                         | package   
  | libgme                           | Collection of video game music file emulators                               | srcpackage
i | libgme0                          | Collection of video game music file emulators                               | package   
  | libmemcached                     | A C/C++ client library and tools for the memcached server                   | srcpackage
  | libmemcached                     | A C/C++ client library and tools for the memcached server                   | package   
  | libmemcached11                   | Libmemcached is a C/C++ client library and tools for the memcached server   | package   
  | libmemcachedutil2                | Libmemcached is a C/C++ client library and tools for the memcached server   | package   
  | libpcsclite1                     | PCSC Smart Card Library                                                     | package   
  | libstoragemgmt                   | Storage array management library                                            | package   
  | libstoragemgmt                   | Storage array management library                                            | srcpackage
  | libstoragemgmt1                  | Storage array management library                                            | package   
  | libtcnative-1-0                  | JNI wrappers for Apache Portable Runtime for Tomcat                         | package   
  | libtcnative-1-0                  | JNI wrappers for Apache Portable Runtime for Tomcat                         | srcpackage
  | mc                               | Midnight Commander                                                          | package   
  | mc                               | Midnight Commander                                                          | srcpackage
  | mc-lang                          | Languages for package mc                                                    | package   
i | mcelog                           | Log Machine Check Events                                                    | package   
  | mcelog                           | Log Machine Check Events                                                    | srcpackage
  | mcstrans                         | SELinux Translation Daemon                                                  | package   
  | mcstrans                         | SELinux Translation Daemon                                                  | srcpackage
  | memcached                        | A high-performance, distributed memory object caching system                | srcpackage
  | memcached                        | A high-performance, distributed memory object caching system                | package   
i | mtools                           | Access Files on an MS-DOS File System                                       | package   
  | mtools                           | Access Files on an MS-DOS File System                                       | srcpackage
  | openlmi-bmc                      | CMPI provider for BMC management                                            | package   
  | openlmi-bmc                      | CMPI provider for BMC management                                            | srcpackage
i | pcsc-lite                        | PCSC Smart Cards Library                                                    | package   
  | pcsc-lite                        | PCSC Smart Cards Library                                                    | srcpackage
  | sblim-wbemcli                    | SBLIM WBEM Command Line Interface                                           | package   
  | sblim-wbemcli                    | SBLIM WBEM Command Line Interface                                           | srcpackage
i | supportutils                     | Support Troubleshooting Tools                                               | package   
  | supportutils                     | Support Troubleshooting Tools                                               | srcpackage
  | termcap                          | The Termcap Library                                                         | package   
  | termcap                          | The Termcap Library                                                         | srcpackage
  | termcap-32bit                    | The Termcap Library                                                         | package   
i | terminfo                         | A terminal descriptions database                                            | package   
i | terminfo-base                    | A terminal descriptions database                                            | package   
  | tomcat                           | Apache Servlet/JSP/EL Engine, RI for Servlet 3.1/JSP 2.3/EL 3.0 API         | package   
  | tomcat                           | Apache Servlet/JSP/EL Engine, RI for Servlet 3.1/JSP 2.3/EL 3.0 API         | srcpackage
  | tomcat-admin-webapps             | The host-manager and manager web applications for Apache Tomcat             | package   
  | tomcat-docs-webapp               | The docs web application for Apache Tomcat                                  | package   
  | tomcat-el-3_0-api                | Expression Language v3.0 API                                                | package   
  | tomcat-javadoc                   | Javadoc generated documentation for Apache Tomcat                           | package   
  | tomcat-jsp-2_3-api               | Apache Tomcat JSP API implementation classes                                | package   
  | tomcat-lib                       | Libraries needed to run the Tomcat Web container                            | package   
  | tomcat-servlet-3_1-api           | Apache Tomcat Servlet API implementation classes                            | package   
  | tomcat-webapps                   | ROOT and examples web applications for Apache Tomcat                        | package   
i | typelib-1_0-NMClient-1_0         | Convenience library for clients of NetworkManager -- Introspection bindings | package  

Recherchez tout paquet commencant par kern :

SUSE12SP1:~ # zypper search kern*
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...

S | Name                 | Summary                                                 | Type      
--+----------------------+---------------------------------------------------------+-----------
i | kernel-default       | The Standard Kernel                                     | package   
  | kernel-default       | The Standard Kernel                                     | srcpackage
  | kernel-default-base  | The Standard Kernel - base modules                      | package   
i | kernel-default-devel | Development files necessary for building kernel modules | package   
i | kernel-devel         | Development files needed for building kernel modules    | package   
i | kernel-firmware      | Linux kernel firmware files                             | package   
  | kernel-firmware      | Linux kernel firmware files                             | srcpackage
i | kernel-macros        | RPM macros for building Kernel Module Packages          | package   
  | kernel-source        | The Linux Kernel Sources                                | package   
  | kernel-source        | The Linux Kernel Sources                                | srcpackage
  | kernel-syms          | Kernel Symbol Versions (modversions)                    | package   
  | kernel-syms          | Kernel Symbol Versions (modversions)                    | srcpackage
  | kernel-xen           | The Xen Kernel                                          | package   
  | kernel-xen           | The Xen Kernel                                          | srcpackage
  | kernel-xen-base      | The Xen Kernel - base modules                           | package   
  | kernel-xen-devel     | Development files necessary for building kernel modules | package   
  | kernelshark          | GUI for trace-cmd                                       | package     

Recherchez le paquet qui fournit mc :

SUSE12SP1:~ # zypper what-provides mc
Command 'what-provides' is replaced by 'search --provides --match-exact'.
See 'help search' for all available options.
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...

S | Name | Summary            | Type   
--+------+--------------------+--------
  | mc   | Midnight Commander | package

Installez le paquet mc :

SUSE12SP1:~ # zypper install mc
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 3 NEW packages are going to be installed:
  libslang2 mc mc-lang

The following recommended package was automatically selected:
  mc-lang

3 new packages to install.
Overall download size: 1.7 MiB. Already cached: 0 B. After the operation, additional 6.8 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package libslang2-2.2.4-9.7.x86_64                                                    (1/3), 282.1 KiB (  1.1 MiB unpacked)
Retrieving: libslang2-2.2.4-9.7.x86_64.rpm .....................................................................................[done]
Retrieving package mc-4.8.11-2.110.x86_64                                                        (2/3), 711.9 KiB (  2.3 MiB unpacked)
Retrieving: mc-4.8.11-2.110.x86_64.rpm .........................................................................................[done]
Retrieving package mc-lang-4.8.11-2.110.noarch                                                   (3/3), 759.0 KiB (  3.4 MiB unpacked)
Retrieving: mc-lang-4.8.11-2.110.noarch.rpm .......................................................................[done (56.0 KiB/s)]
Checking for file conflicts: ...................................................................................................[done]
(1/3) Installing: libslang2-2.2.4-9.7 ..........................................................................................[done]
(2/3) Installing: mc-4.8.11-2.110 ..............................................................................................[done]
Additional rpm output:
setting /usr/lib/mc/cons.saver to root:root 4755. (wrong permissions 0755)


(3/3) Installing: mc-lang-4.8.11-2.110 .........................................................................................[done]

Important - Sous SLES, il existe deux approches pour maintenir le système à jour. La première approche est basée sur des patchs tandis que la deuxième est basée sur la mise à jour des paquets. Dans le premier cas, des patchs sont téléchargés et appliqués aux versions de paquets stables déjà installées. Dans le deuxième cas, des mises à jour des paquets sont téléchargées et installées, remplaçant ainsi les versions de paquets déjà installées.

Pour visualiser la liste des patchs disponibles pour les paquets installés, utilisez la commande suivante :

SUSE12SP1:~ # zypper list-patches | more
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...
The following software management updates will be installed first:

Repository         | Name                             | Category    | Severity | Interactive | Status | Summary                       
                  
-------------------+----------------------------------+-------------+----------+-------------+--------+-------------------------------
------------------
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2016-1051 | recommended | moderate | ---         | needed | Recommended update for libsolv
, libzypp, zypper 
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2016-1515 | recommended | moderate | ---         | needed | Recommended update for the Sof
tware Update Stack
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2016-1602 | recommended | low      | ---         | needed | Recommended update for yast2-m
igration          
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2016-269  | recommended | moderate | ---         | needed | Recommended update for libsolv
, libzypp, zypper 
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2016-532  | recommended | moderate | ---         | needed | Recommended update for libzypp
, zypper          
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2016-743  | recommended | moderate | ---         | needed | Recommended update for Softwar
e Update Stack    
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2016-911  | recommended | moderate | ---         | needed | Recommended update for gnome-p
ackagekit         
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2017-484  | recommended | moderate | ---         | needed | Recommended update for libsolv
, libzypp, zypper 

The following updates are also available:

Repository         | Name                             | Category    | Severity  | Interactive | Status | Summary                      
                                                                                                                           
-------------------+----------------------------------+-------------+-----------+-------------+--------+------------------------------
---------------------------------------------------------------------------------------------------------------------------
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2015-1001 | security    | important | ---         | needed | Security update for MozillaFi
refox                                                                                                                      
SLES12-SP1-Updates | SUSE-SLE-SERVER-12-SP1-2015-1016 | security    | important | ---         | needed | Security update for bind     
--More--

Pour installer les patchs, utilisez la commande suivante :

SUSE12SP1:~ # zypper patch
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
  yast2-migration zypper-migration-plugin

The following 8 NEW patches are going to be installed:
  SUSE-SLE-SERVER-12-SP1-2016-1051 SUSE-SLE-SERVER-12-SP1-2016-1515 SUSE-SLE-SERVER-12-SP1-2016-1602 SUSE-SLE-SERVER-12-SP1-2016-269
  SUSE-SLE-SERVER-12-SP1-2016-532 SUSE-SLE-SERVER-12-SP1-2016-743 SUSE-SLE-SERVER-12-SP1-2016-911 SUSE-SLE-SERVER-12-SP1-2017-484

The following 9 packages are going to be upgraded:
  gnome-packagekit gnome-packagekit-lang libsolv-tools libzypp python-solv yast2-pkg-bindings yast2-registration zypper zypper-log

9 packages to upgrade, 2 new.
Overall download size: 8.9 MiB. Already cached: 0 B. After the operation, additional 600.3 KiB will be used.
Continue? [y/n/? shows all options] (y): y

Important - Notez que les patchs proposés sont ceux pour le système de gestion de paquets. Ces paquets doivent être patchés avant de pouvoir appliquer les patchs aux autres paquets. Veillez donc à répondre y à la question Continue? [y/n/?] (y): de façon à pouvoir poursuivre le cours.

Pour appliquer les autres patchs, utilisez de nouveau la commande zypper patch :

SUSE12SP1:~ # zypper patch
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 11 NEW packages are going to be installed:
  crash-kmp-default-7.1.5_k3.12.69_60.64.35-10.11 kernel-default-3.12.74-60.64.40.1 kernel-default-devel-3.12.74-60.64.40.1
  kernel-devel-3.12.74-60.64.40.1 libQt5Network5 libinput-udev libinput10 libts-1_0-0 perl-Expect perl-IO-Stty perl-IO-Tty

The following 501 NEW patches are going to be installed:
  SUSE-SLE-SERVER-12-SP1-2015-1001 SUSE-SLE-SERVER-12-SP1-2015-1016 SUSE-SLE-SERVER-12-SP1-2015-1022 SUSE-SLE-SERVER-12-SP1-2015-1027
  SUSE-SLE-SERVER-12-SP1-2015-1028 SUSE-SLE-SERVER-12-SP1-2015-828 SUSE-SLE-SERVER-12-SP1-2015-846 SUSE-SLE-SERVER-12-SP1-2015-862
  SUSE-SLE-SERVER-12-SP1-2015-863 SUSE-SLE-SERVER-12-SP1-2015-867 SUSE-SLE-SERVER-12-SP1-2015-869 SUSE-SLE-SERVER-12-SP1-2015-870
  SUSE-SLE-SERVER-12-SP1-2015-922 SUSE-SLE-SERVER-12-SP1-2015-946 SUSE-SLE-SERVER-12-SP1-2015-954 SUSE-SLE-SERVER-12-SP1-2015-979
  SUSE-SLE-SERVER-12-SP1-2015-985 SUSE-SLE-SERVER-12-SP1-2015-991 SUSE-SLE-SERVER-12-SP1-2015-992 SUSE-SLE-SERVER-12-SP1-2015-996
  SUSE-SLE-SERVER-12-SP1-2016-10 SUSE-SLE-SERVER-12-SP1-2016-1003 SUSE-SLE-SERVER-12-SP1-2016-1004 SUSE-SLE-SERVER-12-SP1-2016-1012
  SUSE-SLE-SERVER-12-SP1-2016-1014 SUSE-SLE-SERVER-12-SP1-2016-1017 SUSE-SLE-SERVER-12-SP1-2016-1021 SUSE-SLE-SERVER-12-SP1-2016-1022
  SUSE-SLE-SERVER-12-SP1-2016-1026 SUSE-SLE-SERVER-12-SP1-2016-1028 SUSE-SLE-SERVER-12-SP1-2016-1029 SUSE-SLE-SERVER-12-SP1-2016-1036
  SUSE-SLE-SERVER-12-SP1-2016-104 SUSE-SLE-SERVER-12-SP1-2016-1048 SUSE-SLE-SERVER-12-SP1-2016-1055 SUSE-SLE-SERVER-12-SP1-2016-1056
  SUSE-SLE-SERVER-12-SP1-2016-1063 SUSE-SLE-SERVER-12-SP1-2016-1083 SUSE-SLE-SERVER-12-SP1-2016-1085 SUSE-SLE-SERVER-12-SP1-2016-1086
  SUSE-SLE-SERVER-12-SP1-2016-1087 SUSE-SLE-SERVER-12-SP1-2016-1090 SUSE-SLE-SERVER-12-SP1-2016-1091 SUSE-SLE-SERVER-12-SP1-2016-1095
  SUSE-SLE-SERVER-12-SP1-2016-1103 SUSE-SLE-SERVER-12-SP1-2016-1109 SUSE-SLE-SERVER-12-SP1-2016-1110 SUSE-SLE-SERVER-12-SP1-2016-1115
  SUSE-SLE-SERVER-12-SP1-2016-1117 SUSE-SLE-SERVER-12-SP1-2016-1123 SUSE-SLE-SERVER-12-SP1-2016-1124 SUSE-SLE-SERVER-12-SP1-2016-1126
  SUSE-SLE-SERVER-12-SP1-2016-113 SUSE-SLE-SERVER-12-SP1-2016-1132 SUSE-SLE-SERVER-12-SP1-2016-1138 SUSE-SLE-SERVER-12-SP1-2016-114
  SUSE-SLE-SERVER-12-SP1-2016-1141 SUSE-SLE-SERVER-12-SP1-2016-1147 SUSE-SLE-SERVER-12-SP1-2016-1149 SUSE-SLE-SERVER-12-SP1-2016-1150
  SUSE-SLE-SERVER-12-SP1-2016-1152 SUSE-SLE-SERVER-12-SP1-2016-1158 SUSE-SLE-SERVER-12-SP1-2016-1159 SUSE-SLE-SERVER-12-SP1-2016-1166
  SUSE-SLE-SERVER-12-SP1-2016-1168 SUSE-SLE-SERVER-12-SP1-2016-117 SUSE-SLE-SERVER-12-SP1-2016-1205 SUSE-SLE-SERVER-12-SP1-2016-1209
  SUSE-SLE-SERVER-12-SP1-2016-121 SUSE-SLE-SERVER-12-SP1-2016-1211 SUSE-SLE-SERVER-12-SP1-2016-1212 SUSE-SLE-SERVER-12-SP1-2016-122
  SUSE-SLE-SERVER-12-SP1-2016-1228 SUSE-SLE-SERVER-12-SP1-2016-124 SUSE-SLE-SERVER-12-SP1-2016-1240 SUSE-SLE-SERVER-12-SP1-2016-1245
  SUSE-SLE-SERVER-12-SP1-2016-1246 SUSE-SLE-SERVER-12-SP1-2016-1247 SUSE-SLE-SERVER-12-SP1-2016-1252 SUSE-SLE-SERVER-12-SP1-2016-1254
  SUSE-SLE-SERVER-12-SP1-2016-1257 SUSE-SLE-SERVER-12-SP1-2016-1258 SUSE-SLE-SERVER-12-SP1-2016-1259 SUSE-SLE-SERVER-12-SP1-2016-1263
  SUSE-SLE-SERVER-12-SP1-2016-1267 SUSE-SLE-SERVER-12-SP1-2016-1277 SUSE-SLE-SERVER-12-SP1-2016-1292 SUSE-SLE-SERVER-12-SP1-2016-1294
  SUSE-SLE-SERVER-12-SP1-2016-1309 SUSE-SLE-SERVER-12-SP1-2016-1310 SUSE-SLE-SERVER-12-SP1-2016-1326 SUSE-SLE-SERVER-12-SP1-2016-1327
  SUSE-SLE-SERVER-12-SP1-2016-133 SUSE-SLE-SERVER-12-SP1-2016-1330 SUSE-SLE-SERVER-12-SP1-2016-1331 SUSE-SLE-SERVER-12-SP1-2016-1332
  SUSE-SLE-SERVER-12-SP1-2016-134 SUSE-SLE-SERVER-12-SP1-2016-1342 SUSE-SLE-SERVER-12-SP1-2016-1344 SUSE-SLE-SERVER-12-SP1-2016-1347
  SUSE-SLE-SERVER-12-SP1-2016-1350 SUSE-SLE-SERVER-12-SP1-2016-1352 SUSE-SLE-SERVER-12-SP1-2016-1358 SUSE-SLE-SERVER-12-SP1-2016-136
  SUSE-SLE-SERVER-12-SP1-2016-1362 SUSE-SLE-SERVER-12-SP1-2016-1364 SUSE-SLE-SERVER-12-SP1-2016-1367 SUSE-SLE-SERVER-12-SP1-2016-1370
  SUSE-SLE-SERVER-12-SP1-2016-1374 SUSE-SLE-SERVER-12-SP1-2016-1375 SUSE-SLE-SERVER-12-SP1-2016-1383 SUSE-SLE-SERVER-12-SP1-2016-1388
  SUSE-SLE-SERVER-12-SP1-2016-139 SUSE-SLE-SERVER-12-SP1-2016-1390 SUSE-SLE-SERVER-12-SP1-2016-1393 SUSE-SLE-SERVER-12-SP1-2016-1399
  SUSE-SLE-SERVER-12-SP1-2016-140 SUSE-SLE-SERVER-12-SP1-2016-1406 SUSE-SLE-SERVER-12-SP1-2016-1419 SUSE-SLE-SERVER-12-SP1-2016-1421
  SUSE-SLE-SERVER-12-SP1-2016-1424 SUSE-SLE-SERVER-12-SP1-2016-1430 SUSE-SLE-SERVER-12-SP1-2016-1445 SUSE-SLE-SERVER-12-SP1-2016-1448
  SUSE-SLE-SERVER-12-SP1-2016-1452 SUSE-SLE-SERVER-12-SP1-2016-1454 SUSE-SLE-SERVER-12-SP1-2016-1456 SUSE-SLE-SERVER-12-SP1-2016-1457
  SUSE-SLE-SERVER-12-SP1-2016-1458 SUSE-SLE-SERVER-12-SP1-2016-1461 SUSE-SLE-SERVER-12-SP1-2016-1464 SUSE-SLE-SERVER-12-SP1-2016-1487
  SUSE-SLE-SERVER-12-SP1-2016-1490 SUSE-SLE-SERVER-12-SP1-2016-1492 SUSE-SLE-SERVER-12-SP1-2016-1493 SUSE-SLE-SERVER-12-SP1-2016-1502
  SUSE-SLE-SERVER-12-SP1-2016-1510 SUSE-SLE-SERVER-12-SP1-2016-1519 SUSE-SLE-SERVER-12-SP1-2016-1520 SUSE-SLE-SERVER-12-SP1-2016-1522
  SUSE-SLE-SERVER-12-SP1-2016-155 SUSE-SLE-SERVER-12-SP1-2016-1555 SUSE-SLE-SERVER-12-SP1-2016-1557 SUSE-SLE-SERVER-12-SP1-2016-1558
  SUSE-SLE-SERVER-12-SP1-2016-1560 SUSE-SLE-SERVER-12-SP1-2016-1565 SUSE-SLE-SERVER-12-SP1-2016-157 SUSE-SLE-SERVER-12-SP1-2016-1571
  SUSE-SLE-SERVER-12-SP1-2016-1588 SUSE-SLE-SERVER-12-SP1-2016-1591 SUSE-SLE-SERVER-12-SP1-2016-16 SUSE-SLE-SERVER-12-SP1-2016-1613
  SUSE-SLE-SERVER-12-SP1-2016-1617 SUSE-SLE-SERVER-12-SP1-2016-1621 SUSE-SLE-SERVER-12-SP1-2016-1630 SUSE-SLE-SERVER-12-SP1-2016-1634
  SUSE-SLE-SERVER-12-SP1-2016-1639 SUSE-SLE-SERVER-12-SP1-2016-1644 SUSE-SLE-SERVER-12-SP1-2016-1655 SUSE-SLE-SERVER-12-SP1-2016-1657
  SUSE-SLE-SERVER-12-SP1-2016-1663 SUSE-SLE-SERVER-12-SP1-2016-1669 SUSE-SLE-SERVER-12-SP1-2016-1672 SUSE-SLE-SERVER-12-SP1-2016-1681
  SUSE-SLE-SERVER-12-SP1-2016-1690 SUSE-SLE-SERVER-12-SP1-2016-1692 SUSE-SLE-SERVER-12-SP1-2016-1697 SUSE-SLE-SERVER-12-SP1-2016-1698
  SUSE-SLE-SERVER-12-SP1-2016-1700 SUSE-SLE-SERVER-12-SP1-2016-1721 SUSE-SLE-SERVER-12-SP1-2016-1723 SUSE-SLE-SERVER-12-SP1-2016-1734
  SUSE-SLE-SERVER-12-SP1-2016-1735 SUSE-SLE-SERVER-12-SP1-2016-1744 SUSE-SLE-SERVER-12-SP1-2016-1746 SUSE-SLE-SERVER-12-SP1-2016-1749
  SUSE-SLE-SERVER-12-SP1-2016-1754 SUSE-SLE-SERVER-12-SP1-2016-1762 SUSE-SLE-SERVER-12-SP1-2016-1767 SUSE-SLE-SERVER-12-SP1-2016-1771
  SUSE-SLE-SERVER-12-SP1-2016-1774 SUSE-SLE-SERVER-12-SP1-2016-1775 SUSE-SLE-SERVER-12-SP1-2016-1788 SUSE-SLE-SERVER-12-SP1-2016-18
  SUSE-SLE-SERVER-12-SP1-2016-1804 SUSE-SLE-SERVER-12-SP1-2016-1827 SUSE-SLE-SERVER-12-SP1-2016-1831 SUSE-SLE-SERVER-12-SP1-2016-1841
  SUSE-SLE-SERVER-12-SP1-2016-1845 SUSE-SLE-SERVER-12-SP1-2016-1850 SUSE-SLE-SERVER-12-SP1-2016-1853 SUSE-SLE-SERVER-12-SP1-2016-186
  SUSE-SLE-SERVER-12-SP1-2016-1863 SUSE-SLE-SERVER-12-SP1-2016-1868 SUSE-SLE-SERVER-12-SP1-2016-1880 SUSE-SLE-SERVER-12-SP1-2016-1883
  SUSE-SLE-SERVER-12-SP1-2016-1898 SUSE-SLE-SERVER-12-SP1-2016-1908 SUSE-SLE-SERVER-12-SP1-2016-1911 SUSE-SLE-SERVER-12-SP1-2016-1917
  SUSE-SLE-SERVER-12-SP1-2016-1921 SUSE-SLE-SERVER-12-SP1-2016-1922 SUSE-SLE-SERVER-12-SP1-2016-1931 SUSE-SLE-SERVER-12-SP1-2016-1932
  SUSE-SLE-SERVER-12-SP1-2016-1937 SUSE-SLE-SERVER-12-SP1-2016-194 SUSE-SLE-SERVER-12-SP1-2016-197 SUSE-SLE-SERVER-12-SP1-2016-199
  SUSE-SLE-SERVER-12-SP1-2016-201 SUSE-SLE-SERVER-12-SP1-2016-207 SUSE-SLE-SERVER-12-SP1-2016-210 SUSE-SLE-SERVER-12-SP1-2016-213
  SUSE-SLE-SERVER-12-SP1-2016-22 SUSE-SLE-SERVER-12-SP1-2016-225 SUSE-SLE-SERVER-12-SP1-2016-243 SUSE-SLE-SERVER-12-SP1-2016-252
  SUSE-SLE-SERVER-12-SP1-2016-255 SUSE-SLE-SERVER-12-SP1-2016-259 SUSE-SLE-SERVER-12-SP1-2016-266 SUSE-SLE-SERVER-12-SP1-2016-267
  SUSE-SLE-SERVER-12-SP1-2016-270 SUSE-SLE-SERVER-12-SP1-2016-271 SUSE-SLE-SERVER-12-SP1-2016-280 SUSE-SLE-SERVER-12-SP1-2016-286
  SUSE-SLE-SERVER-12-SP1-2016-291 SUSE-SLE-SERVER-12-SP1-2016-294 SUSE-SLE-SERVER-12-SP1-2016-300 SUSE-SLE-SERVER-12-SP1-2016-302
  SUSE-SLE-SERVER-12-SP1-2016-304 SUSE-SLE-SERVER-12-SP1-2016-307 SUSE-SLE-SERVER-12-SP1-2016-31 SUSE-SLE-SERVER-12-SP1-2016-311
  SUSE-SLE-SERVER-12-SP1-2016-318 SUSE-SLE-SERVER-12-SP1-2016-329 SUSE-SLE-SERVER-12-SP1-2016-330 SUSE-SLE-SERVER-12-SP1-2016-333
  SUSE-SLE-SERVER-12-SP1-2016-334 SUSE-SLE-SERVER-12-SP1-2016-349 SUSE-SLE-SERVER-12-SP1-2016-353 SUSE-SLE-SERVER-12-SP1-2016-370
  SUSE-SLE-SERVER-12-SP1-2016-371 SUSE-SLE-SERVER-12-SP1-2016-373 SUSE-SLE-SERVER-12-SP1-2016-374 SUSE-SLE-SERVER-12-SP1-2016-375
  SUSE-SLE-SERVER-12-SP1-2016-379 SUSE-SLE-SERVER-12-SP1-2016-38 SUSE-SLE-SERVER-12-SP1-2016-382 SUSE-SLE-SERVER-12-SP1-2016-384
  SUSE-SLE-SERVER-12-SP1-2016-386 SUSE-SLE-SERVER-12-SP1-2016-394 SUSE-SLE-SERVER-12-SP1-2016-398 SUSE-SLE-SERVER-12-SP1-2016-408
  SUSE-SLE-SERVER-12-SP1-2016-413 SUSE-SLE-SERVER-12-SP1-2016-414 SUSE-SLE-SERVER-12-SP1-2016-419 SUSE-SLE-SERVER-12-SP1-2016-44
  SUSE-SLE-SERVER-12-SP1-2016-443 SUSE-SLE-SERVER-12-SP1-2016-444 SUSE-SLE-SERVER-12-SP1-2016-456 SUSE-SLE-SERVER-12-SP1-2016-46
  SUSE-SLE-SERVER-12-SP1-2016-462 SUSE-SLE-SERVER-12-SP1-2016-463 SUSE-SLE-SERVER-12-SP1-2016-464 SUSE-SLE-SERVER-12-SP1-2016-465
  SUSE-SLE-SERVER-12-SP1-2016-466 SUSE-SLE-SERVER-12-SP1-2016-476 SUSE-SLE-SERVER-12-SP1-2016-479 SUSE-SLE-SERVER-12-SP1-2016-487
  SUSE-SLE-SERVER-12-SP1-2016-490 SUSE-SLE-SERVER-12-SP1-2016-491 SUSE-SLE-SERVER-12-SP1-2016-497 SUSE-SLE-SERVER-12-SP1-2016-498
  SUSE-SLE-SERVER-12-SP1-2016-503 SUSE-SLE-SERVER-12-SP1-2016-509 SUSE-SLE-SERVER-12-SP1-2016-510 SUSE-SLE-SERVER-12-SP1-2016-543
  SUSE-SLE-SERVER-12-SP1-2016-565 SUSE-SLE-SERVER-12-SP1-2016-567 SUSE-SLE-SERVER-12-SP1-2016-575 SUSE-SLE-SERVER-12-SP1-2016-578
  SUSE-SLE-SERVER-12-SP1-2016-583 SUSE-SLE-SERVER-12-SP1-2016-586 SUSE-SLE-SERVER-12-SP1-2016-587 SUSE-SLE-SERVER-12-SP1-2016-599
  SUSE-SLE-SERVER-12-SP1-2016-600 SUSE-SLE-SERVER-12-SP1-2016-604 SUSE-SLE-SERVER-12-SP1-2016-61 SUSE-SLE-SERVER-12-SP1-2016-62
  SUSE-SLE-SERVER-12-SP1-2016-624 SUSE-SLE-SERVER-12-SP1-2016-634 SUSE-SLE-SERVER-12-SP1-2016-636 SUSE-SLE-SERVER-12-SP1-2016-643
  SUSE-SLE-SERVER-12-SP1-2016-646 SUSE-SLE-SERVER-12-SP1-2016-659 SUSE-SLE-SERVER-12-SP1-2016-66 SUSE-SLE-SERVER-12-SP1-2016-661
  SUSE-SLE-SERVER-12-SP1-2016-663 SUSE-SLE-SERVER-12-SP1-2016-667 SUSE-SLE-SERVER-12-SP1-2016-669 SUSE-SLE-SERVER-12-SP1-2016-67
  SUSE-SLE-SERVER-12-SP1-2016-675 SUSE-SLE-SERVER-12-SP1-2016-683 SUSE-SLE-SERVER-12-SP1-2016-684 SUSE-SLE-SERVER-12-SP1-2016-689
  SUSE-SLE-SERVER-12-SP1-2016-691 SUSE-SLE-SERVER-12-SP1-2016-694 SUSE-SLE-SERVER-12-SP1-2016-697 SUSE-SLE-SERVER-12-SP1-2016-699
  SUSE-SLE-SERVER-12-SP1-2016-704 SUSE-SLE-SERVER-12-SP1-2016-709 SUSE-SLE-SERVER-12-SP1-2016-71 SUSE-SLE-SERVER-12-SP1-2016-713
  SUSE-SLE-SERVER-12-SP1-2016-717 SUSE-SLE-SERVER-12-SP1-2016-722 SUSE-SLE-SERVER-12-SP1-2016-728 SUSE-SLE-SERVER-12-SP1-2016-729
  SUSE-SLE-SERVER-12-SP1-2016-732 SUSE-SLE-SERVER-12-SP1-2016-756 SUSE-SLE-SERVER-12-SP1-2016-761 SUSE-SLE-SERVER-12-SP1-2016-764
  SUSE-SLE-SERVER-12-SP1-2016-781 SUSE-SLE-SERVER-12-SP1-2016-790 SUSE-SLE-SERVER-12-SP1-2016-801 SUSE-SLE-SERVER-12-SP1-2016-803
  SUSE-SLE-SERVER-12-SP1-2016-812 SUSE-SLE-SERVER-12-SP1-2016-818 SUSE-SLE-SERVER-12-SP1-2016-82 SUSE-SLE-SERVER-12-SP1-2016-834
  SUSE-SLE-SERVER-12-SP1-2016-835 SUSE-SLE-SERVER-12-SP1-2016-841 SUSE-SLE-SERVER-12-SP1-2016-845 SUSE-SLE-SERVER-12-SP1-2016-85
  SUSE-SLE-SERVER-12-SP1-2016-863 SUSE-SLE-SERVER-12-SP1-2016-869 SUSE-SLE-SERVER-12-SP1-2016-879 SUSE-SLE-SERVER-12-SP1-2016-880
  SUSE-SLE-SERVER-12-SP1-2016-885 SUSE-SLE-SERVER-12-SP1-2016-890 SUSE-SLE-SERVER-12-SP1-2016-897 SUSE-SLE-SERVER-12-SP1-2016-898
  SUSE-SLE-SERVER-12-SP1-2016-9 SUSE-SLE-SERVER-12-SP1-2016-900 SUSE-SLE-SERVER-12-SP1-2016-905 SUSE-SLE-SERVER-12-SP1-2016-907
  SUSE-SLE-SERVER-12-SP1-2016-909 SUSE-SLE-SERVER-12-SP1-2016-912 SUSE-SLE-SERVER-12-SP1-2016-915 SUSE-SLE-SERVER-12-SP1-2016-916
  SUSE-SLE-SERVER-12-SP1-2016-920 SUSE-SLE-SERVER-12-SP1-2016-922 SUSE-SLE-SERVER-12-SP1-2016-929 SUSE-SLE-SERVER-12-SP1-2016-930
  SUSE-SLE-SERVER-12-SP1-2016-932 SUSE-SLE-SERVER-12-SP1-2016-940 SUSE-SLE-SERVER-12-SP1-2016-941 SUSE-SLE-SERVER-12-SP1-2016-942
  SUSE-SLE-SERVER-12-SP1-2016-943 SUSE-SLE-SERVER-12-SP1-2016-946 SUSE-SLE-SERVER-12-SP1-2016-949 SUSE-SLE-SERVER-12-SP1-2016-96
  SUSE-SLE-SERVER-12-SP1-2016-962 SUSE-SLE-SERVER-12-SP1-2016-967 SUSE-SLE-SERVER-12-SP1-2016-969 SUSE-SLE-SERVER-12-SP1-2016-973
  SUSE-SLE-SERVER-12-SP1-2016-98 SUSE-SLE-SERVER-12-SP1-2016-982 SUSE-SLE-SERVER-12-SP1-2016-987 SUSE-SLE-SERVER-12-SP1-2016-992
  SUSE-SLE-SERVER-12-SP1-2016-996 SUSE-SLE-SERVER-12-SP1-2017-101 SUSE-SLE-SERVER-12-SP1-2017-11 SUSE-SLE-SERVER-12-SP1-2017-144
  SUSE-SLE-SERVER-12-SP1-2017-150 SUSE-SLE-SERVER-12-SP1-2017-151 SUSE-SLE-SERVER-12-SP1-2017-156 SUSE-SLE-SERVER-12-SP1-2017-16
  SUSE-SLE-SERVER-12-SP1-2017-177 SUSE-SLE-SERVER-12-SP1-2017-18 SUSE-SLE-SERVER-12-SP1-2017-185 SUSE-SLE-SERVER-12-SP1-2017-196
  SUSE-SLE-SERVER-12-SP1-2017-212 SUSE-SLE-SERVER-12-SP1-2017-217 SUSE-SLE-SERVER-12-SP1-2017-218 SUSE-SLE-SERVER-12-SP1-2017-223
  SUSE-SLE-SERVER-12-SP1-2017-231 SUSE-SLE-SERVER-12-SP1-2017-236 SUSE-SLE-SERVER-12-SP1-2017-238 SUSE-SLE-SERVER-12-SP1-2017-240
  SUSE-SLE-SERVER-12-SP1-2017-241 SUSE-SLE-SERVER-12-SP1-2017-246 SUSE-SLE-SERVER-12-SP1-2017-25 SUSE-SLE-SERVER-12-SP1-2017-260
  SUSE-SLE-SERVER-12-SP1-2017-261 SUSE-SLE-SERVER-12-SP1-2017-263 SUSE-SLE-SERVER-12-SP1-2017-267 SUSE-SLE-SERVER-12-SP1-2017-27
  SUSE-SLE-SERVER-12-SP1-2017-291 SUSE-SLE-SERVER-12-SP1-2017-3 SUSE-SLE-SERVER-12-SP1-2017-309 SUSE-SLE-SERVER-12-SP1-2017-31
  SUSE-SLE-SERVER-12-SP1-2017-312 SUSE-SLE-SERVER-12-SP1-2017-32 SUSE-SLE-SERVER-12-SP1-2017-325 SUSE-SLE-SERVER-12-SP1-2017-326
  SUSE-SLE-SERVER-12-SP1-2017-332 SUSE-SLE-SERVER-12-SP1-2017-333 SUSE-SLE-SERVER-12-SP1-2017-353 SUSE-SLE-SERVER-12-SP1-2017-354
  SUSE-SLE-SERVER-12-SP1-2017-357 SUSE-SLE-SERVER-12-SP1-2017-361 SUSE-SLE-SERVER-12-SP1-2017-374 SUSE-SLE-SERVER-12-SP1-2017-376
  SUSE-SLE-SERVER-12-SP1-2017-392 SUSE-SLE-SERVER-12-SP1-2017-403 SUSE-SLE-SERVER-12-SP1-2017-414 SUSE-SLE-SERVER-12-SP1-2017-439
  SUSE-SLE-SERVER-12-SP1-2017-445 SUSE-SLE-SERVER-12-SP1-2017-446 SUSE-SLE-SERVER-12-SP1-2017-448 SUSE-SLE-SERVER-12-SP1-2017-451
  SUSE-SLE-SERVER-12-SP1-2017-457 SUSE-SLE-SERVER-12-SP1-2017-458 SUSE-SLE-SERVER-12-SP1-2017-478 SUSE-SLE-SERVER-12-SP1-2017-48
  SUSE-SLE-SERVER-12-SP1-2017-480 SUSE-SLE-SERVER-12-SP1-2017-485 SUSE-SLE-SERVER-12-SP1-2017-5 SUSE-SLE-SERVER-12-SP1-2017-512
  SUSE-SLE-SERVER-12-SP1-2017-54 SUSE-SLE-SERVER-12-SP1-2017-542 SUSE-SLE-SERVER-12-SP1-2017-551 SUSE-SLE-SERVER-12-SP1-2017-562
  SUSE-SLE-SERVER-12-SP1-2017-571 SUSE-SLE-SERVER-12-SP1-2017-579 SUSE-SLE-SERVER-12-SP1-2017-580 SUSE-SLE-SERVER-12-SP1-2017-582
  SUSE-SLE-SERVER-12-SP1-2017-588 SUSE-SLE-SERVER-12-SP1-2017-589 SUSE-SLE-SERVER-12-SP1-2017-598 SUSE-SLE-SERVER-12-SP1-2017-606
  SUSE-SLE-SERVER-12-SP1-2017-607 SUSE-SLE-SERVER-12-SP1-2017-609 SUSE-SLE-SERVER-12-SP1-2017-610 SUSE-SLE-SERVER-12-SP1-2017-611
  SUSE-SLE-SERVER-12-SP1-2017-62 SUSE-SLE-SERVER-12-SP1-2017-624 SUSE-SLE-SERVER-12-SP1-2017-636 SUSE-SLE-SERVER-12-SP1-2017-639
  SUSE-SLE-SERVER-12-SP1-2017-641 SUSE-SLE-SERVER-12-SP1-2017-643 SUSE-SLE-SERVER-12-SP1-2017-644 SUSE-SLE-SERVER-12-SP1-2017-646
  SUSE-SLE-SERVER-12-SP1-2017-656 SUSE-SLE-SERVER-12-SP1-2017-659 SUSE-SLE-SERVER-12-SP1-2017-668 SUSE-SLE-SERVER-12-SP1-2017-669
  SUSE-SLE-SERVER-12-SP1-2017-693 SUSE-SLE-SERVER-12-SP1-2017-700 SUSE-SLE-SERVER-12-SP1-2017-707 SUSE-SLE-SERVER-12-SP1-2017-71
  SUSE-SLE-SERVER-12-SP1-2017-716 SUSE-SLE-SERVER-12-SP1-2017-720 SUSE-SLE-SERVER-12-SP1-2017-728 SUSE-SLE-SERVER-12-SP1-2017-732
  SUSE-SLE-SERVER-12-SP1-2017-735 SUSE-SLE-SERVER-12-SP1-2017-742 SUSE-SLE-SERVER-12-SP1-2017-743 SUSE-SLE-SERVER-12-SP1-2017-748
  SUSE-SLE-SERVER-12-SP1-2017-750 SUSE-SLE-SERVER-12-SP1-2017-760 SUSE-SLE-SERVER-12-SP1-2017-788 SUSE-SLE-SERVER-12-SP1-2017-789
  SUSE-SLE-SERVER-12-SP1-2017-790 SUSE-SLE-SERVER-12-SP1-2017-793 SUSE-SLE-SERVER-12-SP1-2017-804 SUSE-SLE-SERVER-12-SP1-2017-807
  SUSE-SLE-SERVER-12-SP1-2017-810 SUSE-SLE-SERVER-12-SP1-2017-812 SUSE-SLE-SERVER-12-SP1-2017-816 SUSE-SLE-SERVER-12-SP1-2017-817
  SUSE-SLE-SERVER-12-SP1-2017-831 SUSE-SLE-SERVER-12-SP1-2017-833 SUSE-SLE-SERVER-12-SP1-2017-834 SUSE-SLE-SERVER-12-SP1-2017-835
  SUSE-SLE-SERVER-12-SP1-2017-854 SUSE-SLE-SERVER-12-SP1-2017-856 SUSE-SLE-SERVER-12-SP1-2017-859 SUSE-SLE-SERVER-12-SP1-2017-863
  SUSE-SLE-SERVER-12-SP1-2017-865 SUSE-SLE-SERVER-12-SP1-2017-866 SUSE-SLE-SERVER-12-SP1-2017-869 SUSE-SLE-SERVER-12-SP1-2017-871
  SUSE-SLE-SERVER-12-SP1-2017-872 SUSE-SLE-SERVER-12-SP1-2017-873 SUSE-SLE-SERVER-12-SP1-2017-877 SUSE-SLE-SERVER-12-SP1-2017-888
  SUSE-SLE-SERVER-12-SP1-2017-89 SUSE-SLE-SERVER-12-SP1-2017-895 SUSE-SLE-SERVER-12-SP1-2017-94 SUSE-SLE-SERVER-12-SP1-2017-95
  SUSE-SLE-SERVER-12-SP1-2017-98

The following package is going to be REMOVED:
  ruby2.1-rubygem-suse-connect

The following 636 packages are going to be upgraded:
  Mesa Mesa-32bit Mesa-libEGL1 Mesa-libEGL1-32bit Mesa-libGL1 Mesa-libGL1-32bit Mesa-libGLESv2-2 Mesa-libglapi0 Mesa-libglapi0-32bit
  MozillaFirefox MozillaFirefox-branding-SLE MozillaFirefox-translations SUSEConnect SuSEfirewall2 aaa_base aaa_base-extras acl alsa
  apparmor-docs apparmor-parser apparmor-profiles apparmor-utils at augeas-lenses autofs automake autoyast2 autoyast2-installation
  bash bash-completion bash-doc bind-libs bind-libs-32bit bind-utils binutils boost-license1_54_0 btrfsmaintenance btrfsprogs bzip2
  ca-certificates-mozilla coreutils coreutils-lang cpio cpio-lang cpp48 cracklib crash cryptsetup cups cups-client cups-filters
  cups-filters-cups-browsed cups-filters-foomatic-rip cups-filters-ghostscript cups-libs cups-libs-32bit curl dbus-1 dbus-1-x11
  deltarpm desktop-data-SLE device-mapper device-mapper-32bit dhcp dhcp-client dirmngr dmidecode dosfstools dracut e2fsprogs eog
  eog-lang expat fdupes findutils fontconfig fontconfig-32bit gcc48 gconf-editor gconf-editor-lang gcr-data gcr-lang gcr-prompter gd
  gdb gdk-pixbuf-lang gdk-pixbuf-query-loaders gdm gdm-branding-upstream gdm-lang gdmflexiserver ghostscript ghostscript-x11 glibc
  glibc-32bit glibc-devel glibc-i18ndata glibc-locale glibc-locale-32bit gnome-control-center gnome-control-center-lang
  gnome-desktop-lang gnome-keyring gnome-keyring-lang gnome-keyring-pam gnome-keyring-pam-32bit gnome-nettool gnome-nettool-lang
  gnome-session gnome-session-core gnome-session-default-session gnome-session-lang gnome-settings-daemon gnome-settings-daemon-lang
  gnome-shell gnome-shell-browser-plugin gnome-shell-classic gnome-shell-extensions-common gnome-shell-extensions-common-lang
  gnome-shell-lang gnome-shell-search-provider-nautilus gnome-version gpg2 gpg2-lang grub2 grub2-i386-pc grub2-snapper-plugin
  gstreamer gstreamer-lang gstreamer-plugins-bad gstreamer-plugins-bad-lang gstreamer-plugins-base gstreamer-plugins-base-lang
  gstreamer-plugins-good gstreamer-plugins-good-lang gtk2-lang gtk2-tools gtk3-data gtk3-lang gtk3-tools guile-modules-2_0 haveged
  hwinfo insserv-compat inst-source-utils ipmitool irqbalance iscsiuio kbd kdump kernel-firmware kernel-macros kexec-tools kmod
  kmod-compat kpartx krb5 krb5-32bit libFLAC8 libGLU1 libQt5Core5 libQt5DBus5 libQt5Gui5 libQt5Widgets5 libQt5X11Extras5 libSDL-1_2-0
  libX11-6 libX11-6-32bit libX11-data libX11-xcb1 libX11-xcb1-32bit libXaw3d8 libXaw7 libXfixes3 libXfixes3-32bit libXfont1 libXi6
  libXi6-32bit libXpm4 libXrandr2 libXrandr2-32bit libXrender1 libXrender1-32bit libXtst6 libXv1 libacl1 libacl1-32bit libapparmor1
  libarchive13 libasan0 libasound2 libasound2-32bit libass5 libatomic1 libaudiofile1 libaugeas0 libavahi-client3
  libavahi-client3-32bit libavahi-common3 libavahi-common3-32bit libavahi-glib1 libblkid1 libblkid1-32bit libbluray1
  libboost_regex1_54_0 libboost_system1_54_0 libboost_thread1_54_0 libbtrfs0 libbz2-1 libbz2-1-32bit libcairo-gobject2 libcairo2
  libcairo2-32bit libcap2 libcap2-32bit libcom_err2 libcom_err2-32bit libcrack2 libcrack2-32bit libcryptsetup4 libcryptsetup4-32bit
  libcurl4 libcurl4-32bit libdbus-1-3 libdbus-1-3-32bit libdcerpc-binding0 libdcerpc-binding0-32bit libdcerpc0 libdcerpc0-32bit
  libesmtp libexpat1 libexpat1-32bit libext2fs2 libffi4 libffi4-32bit libfltk1 libfreebl3 libfreebl3-32bit libgbm1 libgbm1-32bit
  libgc1 libgcc_s1 libgcc_s1-32bit libgck-1-0 libgck-modules-gnome-keyring libgcr-3-1 libgcrypt20 libgcrypt20-32bit
  libgdk_pixbuf-2_0-0 libgdm1 libgensec0 libgensec0-32bit libgif6-32bit libgme0 libgnome-desktop-3-8 libgnome-desktop-3_0-common
  libgnomesu libgnomesu-lang libgnomesu0 libgnutls28 libgomp1 libgraphite2-3 libgraphite2-3-32bit libgsm1 libgstallocators-1_0-0
  libgstapp-1_0-0 libgstaudio-1_0-0 libgstbasecamerabinsrc-1_0-0 libgstcodecparsers-1_0-0 libgstegl-1_0-0 libgstfft-1_0-0
  libgstmpegts-1_0-0 libgstpbutils-1_0-0 libgstphotography-1_0-0 libgstreamer-1_0-0 libgstriff-1_0-0 libgstrtp-1_0-0 libgstrtsp-1_0-0
  libgstsdp-1_0-0 libgsttag-1_0-0 libgstvideo-1_0-0 libgtk-2_0-0 libgtk-3-0 libgudev-1_0-0 libguile-2_0-22 libhavege1 libhogweed2
  libical1 libidn-tools libidn11 libidn11-32bit libimobiledevice4 libitm1 libjack0 libjasper1 libkmod2 libksba8 libldap-2_4-2
  libldap-2_4-2-32bit libldb1 libldb1-32bit libltdl7 liblua5_2 libmount1 libmount1-32bit libmozjs-17_0 libnautilus-extension1
  libndr-krb5pac0 libndr-krb5pac0-32bit libndr-nbt0 libndr-nbt0-32bit libndr-standard0 libndr-standard0-32bit libndr0 libndr0-32bit
  libnetapi0 libnetapi0-32bit libnetpbm11 libnettle4 libnuma1 libopenssl1_0_0 libopenssl1_0_0-32bit libopus0 libp11-kit0 libparted0
  libpcap1 libpci3 libpci3-32bit libpciaccess0 libpciaccess0-32bit libpcre1 libpcre1-32bit libpcre16-0 libpeas-1_0-0 libpeas-gtk-1_0-0
  libplist1 libpng16-16 libpng16-16-32bit libpolkit0 libpoppler-glib8 libpoppler44 libprocps3 libpth20 libpulse-mainloop-glib0
  libpulse0 libpython2_7-1_0 libpython2_7-1_0-32bit libpython3_4m1_0 libqt4 libqt4-32bit libqt4-sql libqt4-sql-32bit libqt4-sql-sqlite
  libqt4-x11 libqt4-x11-32bit libquicktime0 libreadline6 libregistry0 libruby2_1-2_1 libsamba-credentials0 libsamba-credentials0-32bit
  libsamba-hostconfig0 libsamba-hostconfig0-32bit libsamba-passdb0 libsamba-passdb0-32bit libsamba-util0 libsamba-util0-32bit
  libsamdb0 libsamdb0-32bit libseccomp2 libsecret-1-0 libsecret-lang libselinux1 libselinux1-32bit libsgutils2-2 libsmartcols1
  libsmbclient-raw0 libsmbclient-raw0-32bit libsmbclient0 libsmbconf0 libsmbconf0-32bit libsmbldap0 libsmbldap0-32bit libsnapper3
  libsndfile1 libsoftokn3 libsoftokn3-32bit libspectre1 libspeechd2 libsqlite3-0 libsqlite3-0-32bit libssh2-1 libssh2-1-32bit
  libstdc++6 libstdc++6-32bit libstorage-ruby libstorage6 libtalloc2 libtalloc2-32bit libtasn1 libtasn1-6 libtdb1 libtdb1-32bit
  libtevent-util0 libtevent-util0-32bit libtevent0 libtevent0-32bit libtiff5 libtiff5-32bit libtirpc1 libtool libtool-32bit libtsan0
  libudev1 libudev1-32bit libusbmuxd2 libuuid1 libuuid1-32bit libwbclient0 libwbclient0-32bit libwebp5 libwicked-0-6 libxcb-dri2-0
  libxcb-dri2-0-32bit libxcb-glx0 libxcb-glx0-32bit libxcb-randr0 libxcb-render0 libxcb-render0-32bit libxcb-shape0 libxcb-shm0
  libxcb-shm0-32bit libxcb-sync1 libxcb-xfixes0 libxcb-xfixes0-32bit libxcb-xkb1 libxcb-xv0 libxcb1 libxcb1-32bit libxml2-2
  libxml2-2-32bit libxml2-tools libxslt-tools libxslt1 libz1 libz1-32bit lsof lua lvm2 mailx man man-pages mdadm mksh mlocate
  mozilla-nspr mozilla-nspr-32bit mozilla-nss mozilla-nss-32bit mozilla-nss-certs mozilla-nss-certs-32bit mtools multipath-tools mutt
  nautilus nautilus-lang netcfg netpbm nfs-client nfs-doc nfs-kernel-server nscd ntp numactl open-iscsi openldap2-client openslp
  openslp-32bit openslp-server openssh openssh-helpers openssl os-prober p11-kit p11-kit-tools p7zip pam pam-32bit pam-doc parted
  pciutils pciutils-ids pcsc-lite perl perl-32bit perl-Net-HTTP perl-Net-SSLeay perl-apparmor perl-base perl-libwww-perl permissions
  polkit polkit-default-privs polkit-gnome polkit-gnome-lang poppler-tools postfix ppp procps psmisc psmisc-lang pulseaudio
  pulseaudio-esound-compat pulseaudio-lang pulseaudio-module-x11 pulseaudio-utils pytalloc pytalloc-32bit python python-base
  python-cffi python-cryptography python-enum34 python-pyasn1 python-xml python3 python3-base python3-speechd readline-doc
  release-notes-sles rpcbind rpm rpm-32bit rpm-python rsync rsyslog ruby-common ruby2.1 ruby2.1-rubygem-gem2rpm ruby2.1-stdlib samba
  samba-32bit samba-client samba-client-32bit samba-libs samba-libs-32bit samba-winbind samba-winbind-32bit sg3_utils shadow
  shared-mime-info sles-admin_en-pdf sles-deployment_en-pdf sles-installquick_en-pdf sles-manuals_en sles-security_en-pdf
  sles-storage_en-pdf sles-tuning_en-pdf snapper snapper-zypp-plugin speech-dispatcher speech-dispatcher-module-espeak sqlite3 star
  strace sudo supportutils suse-build-key suse-module-tools sysconfig sysconfig-netconfig syslinux systemd systemd-32bit
  systemd-bash-completion systemd-presets-branding-SLE systemd-sysvinit tar tar-lang tcpdump tigervnc timezone typelib-1_0-Gck-1
  typelib-1_0-Gcr-3 typelib-1_0-GdkPixbuf-2_0 typelib-1_0-Gdm-1_0 typelib-1_0-GnomeDesktop-3_0 typelib-1_0-Gtk-3_0
  typelib-1_0-Peas-1_0 typelib-1_0-PeasGtk-1_0 typelib-1_0-Polkit-1_0 ucode-intel udev update-alternatives usbmuxd util-linux
  util-linux-lang util-linux-systemd vim vim-data vlan vsftpd w3m wget wicked wicked-service xf86-video-modesetting xfsprogs xinit
  xorg-x11-Xvnc xorg-x11-server xorg-x11-server-extra xscreensaver xscreensaver-data yast2 yast2-audit-laf yast2-bootloader yast2-core
  yast2-dhcp-server yast2-dns-server yast2-firewall yast2-inetd yast2-installation yast2-kdump yast2-mail yast2-network
  yast2-ntp-client yast2-packager yast2-ruby-bindings yast2-samba-server yast2-schema yast2-services-manager yast2-storage
  yast2-trans-en_GB yast2-update yast2-users

The following 15 patches require a system reboot:
  SUSE-SLE-SERVER-12-SP1-2015-985 SUSE-SLE-SERVER-12-SP1-2016-1004 SUSE-SLE-SERVER-12-SP1-2016-1012 SUSE-SLE-SERVER-12-SP1-2016-124
  SUSE-SLE-SERVER-12-SP1-2016-1246 SUSE-SLE-SERVER-12-SP1-2016-1522 SUSE-SLE-SERVER-12-SP1-2016-1700 SUSE-SLE-SERVER-12-SP1-2016-1762
  SUSE-SLE-SERVER-12-SP1-2016-1845 SUSE-SLE-SERVER-12-SP1-2016-329 SUSE-SLE-SERVER-12-SP1-2016-600 SUSE-SLE-SERVER-12-SP1-2017-238
  SUSE-SLE-SERVER-12-SP1-2017-267 SUSE-SLE-SERVER-12-SP1-2017-485 SUSE-SLE-SERVER-12-SP1-2017-831

636 packages to upgrade, 11 new, 1 to remove.
Overall download size: 486.2 MiB. Already cached: 0 B. After the operation, additional 273.9 MiB will be used.
System reboot required.
Continue? [y/n/? shows all options] (y): n

Important - Veillez à répondre n à la question Continue? [y/n/? shows all options] (y): de façon à pouvoir poursuivre le cours.

Pour visualiser la disponibilité des mises à jour, utilisez la commande suivante :

SUSE12SP1:~ # zypper list-updates
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...
S | Repository         | Name                                 | Current Version              | Available Version             | Arch  
--+--------------------+--------------------------------------+------------------------------+-------------------------------+-------
v | SLES12-SP1-Updates | Mesa                                 | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-32bit                           | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-libEGL1                         | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-libEGL1-32bit                   | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-libGL1                          | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-libGL1-32bit                    | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-libGLESv2-2                     | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-libglapi0                       | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | Mesa-libglapi0-32bit                 | 10.0.2-90.17                 | 10.0.2-102.7.7                | x86_64
v | SLES12-SP1-Updates | MozillaFirefox                       | 38.4.0esr-51.1               | 45.9.0esr-105.1               | x86_64
v | SLES12-SP1-Updates | MozillaFirefox-branding-SLE          | 31.0-17.1                    | 45.0-28.2                     | x86_64
v | SLES12-SP1-Updates | MozillaFirefox-translations          | 38.4.0esr-51.1               | 45.9.0esr-105.1               | x86_64
v | SLES12-SP1-Updates | SUSEConnect                          | 0.2.27-1.1                   | 0.3.0-17.8.1                  | x86_64
v | SLES12-SP1-Updates | SuSEfirewall2                        | 3.6.312-1.3                  | 3.6.312-2.3.1                 | noarch
v | SLES12-SP1-Updates | aaa_base                             | 13.2+git20140911.61c1681-9.1 | 13.2+git20140911.61c1681-25.1 | x86_64
v | SLES12-SP1-Updates | aaa_base-extras                      | 13.2+git20140911.61c1681-9.1 | 13.2+git20140911.61c1681-25.1 | x86_64
v | SLES12-SP1-Updates | acl                                  | 2.2.52-3.148                 | 2.2.52-6.1                    | x86_64
v | SLES12-SP1-Updates | alsa                                 | 1.0.27.2-11.10               | 1.0.27.2-15.1                 | x86_64
v | SLES12-SP1-Updates | apparmor-docs                        | 2.8.2-36.1                   | 2.8.2-54.1                    | noarch
v | SLES12-SP1-Updates | apparmor-parser                      | 2.8.2-36.1                   | 2.8.2-54.1                    | x86_64
v | SLES12-SP1-Updates | apparmor-profiles                    | 2.8.2-36.1                   | 2.8.2-54.1                    | noarch
v | SLES12-SP1-Updates | apparmor-utils                       | 2.8.2-36.1                   | 2.8.2-54.1                    | noarch
v | SLES12-SP1-Updates | at                                   | 3.1.14-2.1                   | 3.1.14-7.3                    | x86_64
v | SLES12-SP1-Updates | augeas-lenses                        | 1.2.0-3.1                    | 1.2.0-10.1                    | x86_64
v | SLES12-SP1-Updates | autofs                               | 5.0.9-8.1                    | 5.0.9-20.7.1                  | x86_64
v | SLES12-SP1-Updates | automake                             | 1.13.4-4.56                  | 1.13.4-6.2                    | noarch
v | SLES12-SP1-Updates | autoyast2                            | 3.1.101.2-1.1                | 3.1.101.18-15.10              | noarch
v | SLES12-SP1-Updates | autoyast2-installation               | 3.1.101.2-1.1                | 3.1.101.18-15.10              | noarch
v | SLES12-SP1-Updates | bash                                 | 4.2-75.2                     | 4.2-82.1                      | x86_64
v | SLES12-SP1-Updates | bash-completion                      | 2.1-4.15                     | 2.1-10.16.1                   | noarch
...

Pour appliquer la seule mise à jour de at, utilisez la commande suivante :

SUSE12SP1:~ # zypper update at
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is going to be upgraded:
  at

1 package to upgrade.
Overall download size: 57.2 KiB. Already cached: 0 B. After the operation, additional 96.0 B will be used.
Continue? [y/n/? shows all options] (y): n

Important - Veillez à répondre n à la question Continue? [y/n/? shows all options] (y): de façon à pouvoir poursuivre le cours.

Pour mettre à jour tous les paquets, utilisez la commande suivante :

SUSE12SP1:~ # zypper update
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP1_x86_64'.
Loading repository data...
Reading installed packages...

The following 11 NEW packages are going to be installed:
  crash-kmp-default-7.1.5_k3.12.69_60.64.35-10.11 kernel-default-3.12.74-60.64.40.1 kernel-default-devel-3.12.74-60.64.40.1
  kernel-devel-3.12.74-60.64.40.1 libQt5Network5 libinput-udev libinput10 libts-1_0-0 perl-Expect perl-IO-Stty perl-IO-Tty

The following package is going to be REMOVED:
  ruby2.1-rubygem-suse-connect

The following 636 packages are going to be upgraded:
  Mesa Mesa-32bit Mesa-libEGL1 Mesa-libEGL1-32bit Mesa-libGL1 Mesa-libGL1-32bit Mesa-libGLESv2-2 Mesa-libglapi0 Mesa-libglapi0-32bit
  MozillaFirefox MozillaFirefox-branding-SLE MozillaFirefox-translations SUSEConnect SuSEfirewall2 aaa_base aaa_base-extras acl alsa
  apparmor-docs apparmor-parser apparmor-profiles apparmor-utils at augeas-lenses autofs automake autoyast2 autoyast2-installation
  bash bash-completion bash-doc bind-libs bind-libs-32bit bind-utils binutils boost-license1_54_0 btrfsmaintenance btrfsprogs bzip2
  ca-certificates-mozilla coreutils coreutils-lang cpio cpio-lang cpp48 cracklib crash cryptsetup cups cups-client cups-filters
  cups-filters-cups-browsed cups-filters-foomatic-rip cups-filters-ghostscript cups-libs cups-libs-32bit curl dbus-1 dbus-1-x11
  deltarpm desktop-data-SLE device-mapper device-mapper-32bit dhcp dhcp-client dirmngr dmidecode dosfstools dracut e2fsprogs eog
  eog-lang expat fdupes findutils fontconfig fontconfig-32bit gcc48 gconf-editor gconf-editor-lang gcr-data gcr-lang gcr-prompter gd
  gdb gdk-pixbuf-lang gdk-pixbuf-query-loaders gdm gdm-branding-upstream gdm-lang gdmflexiserver ghostscript ghostscript-x11 glibc
  glibc-32bit glibc-devel glibc-i18ndata glibc-locale glibc-locale-32bit gnome-control-center gnome-control-center-lang
  gnome-desktop-lang gnome-keyring gnome-keyring-lang gnome-keyring-pam gnome-keyring-pam-32bit gnome-nettool gnome-nettool-lang
  gnome-session gnome-session-core gnome-session-default-session gnome-session-lang gnome-settings-daemon gnome-settings-daemon-lang
  gnome-shell gnome-shell-browser-plugin gnome-shell-classic gnome-shell-extensions-common gnome-shell-extensions-common-lang
  gnome-shell-lang gnome-shell-search-provider-nautilus gnome-version gpg2 gpg2-lang grub2 grub2-i386-pc grub2-snapper-plugin
  gstreamer gstreamer-lang gstreamer-plugins-bad gstreamer-plugins-bad-lang gstreamer-plugins-base gstreamer-plugins-base-lang
  gstreamer-plugins-good gstreamer-plugins-good-lang gtk2-lang gtk2-tools gtk3-data gtk3-lang gtk3-tools guile-modules-2_0 haveged
  hwinfo insserv-compat inst-source-utils ipmitool irqbalance iscsiuio kbd kdump kernel-firmware kernel-macros kexec-tools kmod
  kmod-compat kpartx krb5 krb5-32bit libFLAC8 libGLU1 libQt5Core5 libQt5DBus5 libQt5Gui5 libQt5Widgets5 libQt5X11Extras5 libSDL-1_2-0
  libX11-6 libX11-6-32bit libX11-data libX11-xcb1 libX11-xcb1-32bit libXaw3d8 libXaw7 libXfixes3 libXfixes3-32bit libXfont1 libXi6
  libXi6-32bit libXpm4 libXrandr2 libXrandr2-32bit libXrender1 libXrender1-32bit libXtst6 libXv1 libacl1 libacl1-32bit libapparmor1
  libarchive13 libasan0 libasound2 libasound2-32bit libass5 libatomic1 libaudiofile1 libaugeas0 libavahi-client3
  libavahi-client3-32bit libavahi-common3 libavahi-common3-32bit libavahi-glib1 libblkid1 libblkid1-32bit libbluray1
  libboost_regex1_54_0 libboost_system1_54_0 libboost_thread1_54_0 libbtrfs0 libbz2-1 libbz2-1-32bit libcairo-gobject2 libcairo2
  libcairo2-32bit libcap2 libcap2-32bit libcom_err2 libcom_err2-32bit libcrack2 libcrack2-32bit libcryptsetup4 libcryptsetup4-32bit
  libcurl4 libcurl4-32bit libdbus-1-3 libdbus-1-3-32bit libdcerpc-binding0 libdcerpc-binding0-32bit libdcerpc0 libdcerpc0-32bit
  libesmtp libexpat1 libexpat1-32bit libext2fs2 libffi4 libffi4-32bit libfltk1 libfreebl3 libfreebl3-32bit libgbm1 libgbm1-32bit
  libgc1 libgcc_s1 libgcc_s1-32bit libgck-1-0 libgck-modules-gnome-keyring libgcr-3-1 libgcrypt20 libgcrypt20-32bit
  libgdk_pixbuf-2_0-0 libgdm1 libgensec0 libgensec0-32bit libgif6-32bit libgme0 libgnome-desktop-3-8 libgnome-desktop-3_0-common
  libgnomesu libgnomesu-lang libgnomesu0 libgnutls28 libgomp1 libgraphite2-3 libgraphite2-3-32bit libgsm1 libgstallocators-1_0-0
  libgstapp-1_0-0 libgstaudio-1_0-0 libgstbasecamerabinsrc-1_0-0 libgstcodecparsers-1_0-0 libgstegl-1_0-0 libgstfft-1_0-0
  libgstmpegts-1_0-0 libgstpbutils-1_0-0 libgstphotography-1_0-0 libgstreamer-1_0-0 libgstriff-1_0-0 libgstrtp-1_0-0 libgstrtsp-1_0-0
  libgstsdp-1_0-0 libgsttag-1_0-0 libgstvideo-1_0-0 libgtk-2_0-0 libgtk-3-0 libgudev-1_0-0 libguile-2_0-22 libhavege1 libhogweed2
  libical1 libidn-tools libidn11 libidn11-32bit libimobiledevice4 libitm1 libjack0 libjasper1 libkmod2 libksba8 libldap-2_4-2
  libldap-2_4-2-32bit libldb1 libldb1-32bit libltdl7 liblua5_2 libmount1 libmount1-32bit libmozjs-17_0 libnautilus-extension1
  libndr-krb5pac0 libndr-krb5pac0-32bit libndr-nbt0 libndr-nbt0-32bit libndr-standard0 libndr-standard0-32bit libndr0 libndr0-32bit
  libnetapi0 libnetapi0-32bit libnetpbm11 libnettle4 libnuma1 libopenssl1_0_0 libopenssl1_0_0-32bit libopus0 libp11-kit0 libparted0
  libpcap1 libpci3 libpci3-32bit libpciaccess0 libpciaccess0-32bit libpcre1 libpcre1-32bit libpcre16-0 libpeas-1_0-0 libpeas-gtk-1_0-0
  libplist1 libpng16-16 libpng16-16-32bit libpolkit0 libpoppler-glib8 libpoppler44 libprocps3 libpth20 libpulse-mainloop-glib0
  libpulse0 libpython2_7-1_0 libpython2_7-1_0-32bit libpython3_4m1_0 libqt4 libqt4-32bit libqt4-sql libqt4-sql-32bit libqt4-sql-sqlite
  libqt4-x11 libqt4-x11-32bit libquicktime0 libreadline6 libregistry0 libruby2_1-2_1 libsamba-credentials0 libsamba-credentials0-32bit
  libsamba-hostconfig0 libsamba-hostconfig0-32bit libsamba-passdb0 libsamba-passdb0-32bit libsamba-util0 libsamba-util0-32bit
  libsamdb0 libsamdb0-32bit libseccomp2 libsecret-1-0 libsecret-lang libselinux1 libselinux1-32bit libsgutils2-2 libsmartcols1
  libsmbclient-raw0 libsmbclient-raw0-32bit libsmbclient0 libsmbconf0 libsmbconf0-32bit libsmbldap0 libsmbldap0-32bit libsnapper3
  libsndfile1 libsoftokn3 libsoftokn3-32bit libspectre1 libspeechd2 libsqlite3-0 libsqlite3-0-32bit libssh2-1 libssh2-1-32bit
  libstdc++6 libstdc++6-32bit libstorage-ruby libstorage6 libtalloc2 libtalloc2-32bit libtasn1 libtasn1-6 libtdb1 libtdb1-32bit
  libtevent-util0 libtevent-util0-32bit libtevent0 libtevent0-32bit libtiff5 libtiff5-32bit libtirpc1 libtool libtool-32bit libtsan0
  libudev1 libudev1-32bit libusbmuxd2 libuuid1 libuuid1-32bit libwbclient0 libwbclient0-32bit libwebp5 libwicked-0-6 libxcb-dri2-0
  libxcb-dri2-0-32bit libxcb-glx0 libxcb-glx0-32bit libxcb-randr0 libxcb-render0 libxcb-render0-32bit libxcb-shape0 libxcb-shm0
  libxcb-shm0-32bit libxcb-sync1 libxcb-xfixes0 libxcb-xfixes0-32bit libxcb-xkb1 libxcb-xv0 libxcb1 libxcb1-32bit libxml2-2
  libxml2-2-32bit libxml2-tools libxslt-tools libxslt1 libz1 libz1-32bit lsof lua lvm2 mailx man man-pages mdadm mksh mlocate
  mozilla-nspr mozilla-nspr-32bit mozilla-nss mozilla-nss-32bit mozilla-nss-certs mozilla-nss-certs-32bit mtools multipath-tools mutt
  nautilus nautilus-lang netcfg netpbm nfs-client nfs-doc nfs-kernel-server nscd ntp numactl open-iscsi openldap2-client openslp
  openslp-32bit openslp-server openssh openssh-helpers openssl os-prober p11-kit p11-kit-tools p7zip pam pam-32bit pam-doc parted
  pciutils pciutils-ids pcsc-lite perl perl-32bit perl-Net-HTTP perl-Net-SSLeay perl-apparmor perl-base perl-libwww-perl permissions
  polkit polkit-default-privs polkit-gnome polkit-gnome-lang poppler-tools postfix ppp procps psmisc psmisc-lang pulseaudio
  pulseaudio-esound-compat pulseaudio-lang pulseaudio-module-x11 pulseaudio-utils pytalloc pytalloc-32bit python python-base
  python-cffi python-cryptography python-enum34 python-pyasn1 python-xml python3 python3-base python3-speechd readline-doc
  release-notes-sles rpcbind rpm rpm-32bit rpm-python rsync rsyslog ruby-common ruby2.1 ruby2.1-rubygem-gem2rpm ruby2.1-stdlib samba
  samba-32bit samba-client samba-client-32bit samba-libs samba-libs-32bit samba-winbind samba-winbind-32bit sg3_utils shadow
  shared-mime-info sles-admin_en-pdf sles-deployment_en-pdf sles-installquick_en-pdf sles-manuals_en sles-security_en-pdf
  sles-storage_en-pdf sles-tuning_en-pdf snapper snapper-zypp-plugin speech-dispatcher speech-dispatcher-module-espeak sqlite3 star
  strace sudo supportutils suse-build-key suse-module-tools sysconfig sysconfig-netconfig syslinux systemd systemd-32bit
  systemd-bash-completion systemd-presets-branding-SLE systemd-sysvinit tar tar-lang tcpdump tigervnc timezone typelib-1_0-Gck-1
  typelib-1_0-Gcr-3 typelib-1_0-GdkPixbuf-2_0 typelib-1_0-Gdm-1_0 typelib-1_0-GnomeDesktop-3_0 typelib-1_0-Gtk-3_0
  typelib-1_0-Peas-1_0 typelib-1_0-PeasGtk-1_0 typelib-1_0-Polkit-1_0 ucode-intel udev update-alternatives usbmuxd util-linux
  util-linux-lang util-linux-systemd vim vim-data vlan vsftpd w3m wget wicked wicked-service xf86-video-modesetting xfsprogs xinit
  xorg-x11-Xvnc xorg-x11-server xorg-x11-server-extra xscreensaver xscreensaver-data yast2 yast2-audit-laf yast2-bootloader yast2-core
  yast2-dhcp-server yast2-dns-server yast2-firewall yast2-inetd yast2-installation yast2-kdump yast2-mail yast2-network
  yast2-ntp-client yast2-packager yast2-ruby-bindings yast2-samba-server yast2-schema yast2-services-manager yast2-storage
  yast2-trans-en_GB yast2-update yast2-users

636 packages to upgrade, 11 new, 1 to remove.
Overall download size: 486.2 MiB. Already cached: 0 B. After the operation, additional 273.9 MiB will be used.

A faire - Mettez à jour votre système par la méthode de mise à jour des paquets en répondant y. Pendant le processus, consultez le manuel de zypper pour vous renseigner sur les autres commandes et options.

Les Bibliothèques Partagées

Présentation

Introduction

Les bibliothèques partagées sont des fonctions communes à plusieurs programmes différents d'un même domaine (son, base de données, vidéo etc.). Les fonctions proposées par une ou plusieurs bibliothèques forment un API (Application Programming Interface). Sous Linux les bibliothèques se nomment Shared Objects et portent le suffixe .so.

Stockage

Les bibliothèques partagées sont stockées par convention dans des répertoires lib, par exemple :

Répertoire Contenu
/lib Bibliothèques du système de base
/usr/lib Bibliothèques utilisateurs
/usr/local/lib Bibliothèques locales
/usr/X11R6/lib Bibliothèques de l'environnement X
/opt/kde4/lib Bibliothèques de KDE

Important : La bibliothèque la plus importante est libc. Sans elle, le système Linux ne peut pas fonctionner.

ld-linux.so.2

La bibliothèque ld-linux.so.2 est utilisée par le système pour créer un lien avec une bibliothèque partagée au moment de l'exécution d'un programme et s'appelle le chargeur de liens. Ce dernier recherche des bibliothèques partagées dans un ordre précis :

Il est à noter que le contenu du cache ld.so.cache est construit à partir des informations contenus dans le fichier de configuration /etc/ld.so.conf.

Afin d'étudier les bibliothèques liées à une application, nous allons d'abord installer l'application mc, un explorateur de fichiers en mode console.

La Commande ldd

Pour déterminer quelles sont les bibliothèques liées à une application, il convient d'utiliser la commande ldd :

SUSE12SP1:~ # ldd /usr/bin/mc
	linux-vdso.so.1 (0x00007fff1b1cd000)
	libslang.so.2 => /usr/lib64/libslang.so.2 (0x00007efe9bb68000)
	libgpm.so.2 => /usr/lib64/libgpm.so.2 (0x00007efe9b961000)
	libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x00007efe9b735000)
	libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007efe9b531000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007efe9b22e000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007efe9b011000)
	libc.so.6 => /lib64/libc.so.6 (0x00007efe9ac69000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007efe9aa65000)
	libm.so.6 => /lib64/libm.so.6 (0x00007efe9a764000)
	libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007efe9a370000)
	libz.so.1 => /lib64/libz.so.1 (0x00007efe9a15a000)
	libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007efe99eeb000)
	/lib64/ld-linux-x86-64.so.2 (0x00007efe9bedf000)

Afin de comprendre ce qui se passe dans le cas où une bibliothèque est manquante, renommez la bibliothèque /usr/lib/libslang.so.2 en /usr/lib/libslang.so.2.old :

SUSE12SP1:~ # mv /usr/lib64/libslang.so.2 /usr/lib64/libslang.so.2.old

Exécutez de nouveau la commande ldd. Vous obtiendrez un résultat similaire à celui-ci :

SUSE12SP1:~ # ldd /usr/bin/mc 
	linux-vdso.so.1 (0x00007fffa09c1000)
	libslang.so.2 => not found
	libgpm.so.2 => /usr/lib64/libgpm.so.2 (0x00007f96b418d000)
	libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x00007f96b3f61000)
	libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f96b3d5d000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f96b3a5a000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f96b383d000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f96b3495000)
	libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007f96b30a1000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f96b2e8b000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f96b2c87000)
	libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007f96b2a18000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f96b4394000)

Notez la présence de la ligne libslang.so.2 ⇒ not found. Compte tenu de la bibliothèque partagée manquante, le programme mc ne peut plus être lancé :

SUSE12SP1:~ # mc
mc: error while loading shared libraries: libslang.so.2: cannot open shared object file: No such file or directory

Renommez la bibliothèque correctement et vérifiez la résolution de l'erreur précédente avec la commande ldd :

SUSE12SP1:~ # mv /usr/lib64/libslang.so.2.old /usr/lib64/libslang.so.2
SUSE12SP1:~ # ldd /usr/bin/mc 
	linux-vdso.so.1 (0x00007ffc3f262000)
	libslang.so.2 => /usr/lib64/libslang.so.2 (0x00007f51b70ca000)
	libgpm.so.2 => /usr/lib64/libgpm.so.2 (0x00007f51b6ec3000)
	libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x00007f51b6c97000)
	libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f51b6a93000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f51b6790000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f51b6573000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f51b61cb000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f51b5fc7000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f51b5cc6000)
	libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007f51b58d2000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f51b56bc000)
	libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007f51b544d000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f51b7441000)

Le fichier /etc/ld.so.conf

Le fichier /etc/ld.so.conf est utilisé pour configurer le cache /etc/ld.so.cache :

SUSE12SP1:~ # cat /etc/ld.so.conf
/usr/local/lib64
/usr/local/lib
include /etc/ld.so.conf.d/*.conf
# /lib64, /lib, /usr/lib64 and /usr/lib gets added
# automatically by ldconfig after parsing this file.
# So, they do not need to be listed.

Dans ce cas, le fichier contient des chemins ainsi qu'une directive include qui renvoie vers le contenu du répertoire /etc/ld.so.conf.d/ :

SUSE12SP1:~ # ls -l /etc/ld.so.conf.d/
total 0

La Commande ldconfig

La commande ldconfig est utilisée pour :

Les liens symboliques sont utilisés pour gérer les versions de bibliothèques.

La commande ldconfig peut être utilisée avec l'option -p pour visualiser le contenu du cache :

SUSE12SP1:~ # ldconfig -p | more
1128 libs found in cache `/etc/ld.so.cache'
	libzypp.so.1519 (libc6,x86-64) => /usr/lib64/libzypp.so.1519
	libzio.so.1 (libc6,x86-64) => /usr/lib64/libzio.so.1
	libz.so.1 (libc6,x86-64) => /lib64/libz.so.1
	libz.so.1 (libc6) => /lib/libz.so.1
	liby2util.so.5 (libc6,x86-64) => /usr/lib64/liby2util.so.5
	liby2.so.4 (libc6,x86-64) => /usr/lib64/liby2.so.4
	libyui.so.7 (libc6,x86-64) => /usr/lib64/libyui.so.7
	libyelp.so.0 (libc6,x86-64) => /usr/lib64/libyelp.so.0
	libycpvalues.so.6 (libc6,x86-64) => /usr/lib64/libycpvalues.so.6
	libycp.so.5 (libc6,x86-64) => /usr/lib64/libycp.so.5
	libyaml-0.so.2 (libc6,x86-64) => /usr/lib64/libyaml-0.so.2
	libx86emu.so.1 (libc6,x86-64) => /usr/lib64/libx86emu.so.1
	libxtables.so.10 (libc6,x86-64) => /usr/lib64/libxtables.so.10
	libxslt.so.1 (libc6,x86-64) => /usr/lib64/libxslt.so.1
	libxshmfence.so.1 (libc6,x86-64) => /usr/lib64/libxshmfence.so.1
	libxml2.so.2 (libc6,x86-64) => /usr/lib64/libxml2.so.2
	libxml2.so.2 (libc6) => /usr/lib/libxml2.so.2
	libxklavier.so.16 (libc6,x86-64) => /usr/lib64/libxklavier.so.16
	libxkbfile.so.1 (libc6,x86-64) => /usr/lib64/libxkbfile.so.1
	libxkbcommon.so.0 (libc6,x86-64) => /usr/lib64/libxkbcommon.so.0
	libxkbcommon-x11.so.0 (libc6,x86-64) => /usr/lib64/libxkbcommon-x11.so.0
	libxcb.so.1 (libc6,x86-64) => /usr/lib64/libxcb.so.1
	libxcb.so.1 (libc6) => /usr/lib/libxcb.so.1
	libxcb-xv.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xv.so.0
	libxcb-xkb.so.1 (libc6,x86-64) => /usr/lib64/libxcb-xkb.so.1
	libxcb-xfixes.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xfixes.so.0
	libxcb-xfixes.so.0 (libc6) => /usr/lib/libxcb-xfixes.so.0
	libxcb-util.so.1 (libc6,x86-64) => /usr/lib64/libxcb-util.so.1
	libxcb-sync.so.1 (libc6,x86-64) => /usr/lib64/libxcb-sync.so.1
	libxcb-shm.so.0 (libc6,x86-64) => /usr/lib64/libxcb-shm.so.0
	libxcb-shm.so.0 (libc6) => /usr/lib/libxcb-shm.so.0
	libxcb-shape.so.0 (libc6,x86-64) => /usr/lib64/libxcb-shape.so.0
	libxcb-render.so.0 (libc6,x86-64) => /usr/lib64/libxcb-render.so.0
	libxcb-render.so.0 (libc6) => /usr/lib/libxcb-render.so.0
--More--

Pour ajouter des bibliothèques partagées, il convient de :


<html>

Copyright © 2004-2017 I2TCH LIMITED.<br><br>

</html>