• SUSE Linux 12包管理总结心得


    概述

    susu( Software and System Entwicklung,即软件和系统开发。其中‘entwicklung‘是德语,意为开发)LINUX是由Novell公司在Linux内核基础上建立的操作系统。SUSE Linux有两个分支:

    • openSUSE:这是一款自由而且免费的操作系统。该系统由开源社区开发维护,支持一些最新版本的应用软件。

    • SUSE Linux enterprise:SUSE Linux企业版。该分支是一个为企业及商业化产品设计的Linux发行版。包含了大量的企业应用以及适用于商业产品生产环境的特性。

      image-20210917132133448

     

    一、suse linux软件包

    1.1 简介

    suse软件的安装跟centos和rhel不同,它有自己的专属的软件包管理程序:zypper和yast。

    ypper 和 Yast 是 SUSE Linux 平台上的软件包管理工具,他们的底层使用了 RPM(LCTT 译者注:RPM 最初指 RedHat Pacakge Manager ,现普遍解释为递归短语 RPM Package Manager 的缩写)。

    Yast(Yet another Setup Tool )是 OpenSUSE 以及企业版 SUSE 上用于系统管理、设置和配置的工具。

    Zypper 是软件包管理器ZYpp的命令行接口,可用于安装、删除SUSE Linux上的软件以及进行系统更新。ZYpp为Zypper和Yast提供底层支持。

    本文将介绍实际应用中常见的一些Zypper命令。这些命令用来进行安装、更新、删除等任何软件包管理器所能够胜任的工作。

    重要 : 切记所有的这些命令都将在系统全局范围内产生影响,所以必须以 root 身份执行,否则命令将失败。

    1.2 获取基本的zypper帮助信息

    1. 不带任何选项的执行 zypper, 将输出该命令的全局选项以及子命令列表(全局选项,global option,控制台命令的输入分为可选参数和位置参数两大类。按照习惯,一般可选参数称为选项'option',而位置参数称为参数 'argument')。

      1. # zypper
      2. Usage:
      3. zypper [--global-options]

       

    2. 获取一个具体的子命令的帮助信息,比如 'in' (install),可以执行下面的命令

      # zypper help in
    3. 搜索一个安装包(以gnome-desktop)

      #zypper se gnome-desktop
    4. 获取一个模式包的信息(以lamp_server为例)

      #zypper info -t pattern lamp_server

      注:模式包相当于centos系统里面的group(软件包组)

    1. 开启一个zypper shell会话

      #zypper shell
      或者
      #zypper sh
      zypper>help
      Usage:
      zypper [--global-options]

      注意:在 Zypper shell里面可以通过键入 ‘help‘ 获得全局选项以及子命令的列表。

    1.3 zypper软件库管理

    1. 使用 'zypper repos' 或者 'zypper lr' 来列举所有已定以的软件库。

      #zypper repos
      或者
      #zypper lr
      Alias|Name|Enabled|Refresh
      --+---------------------------+------------------------------------+---------+--------
      1| openSUSE-13.2-0| openSUSE-13.2-0|Yes|No
      2| repo-debug | openSUSE-13.2-Debug|Yes|Yes
      3| repo-debug-update | openSUSE-13.2-Update-Debug|No|Yes
      4| repo-debug-update-non-oss | openSUSE-13.2-Update-Debug-Non-Oss|No|Yes
      5| repo-non-oss | openSUSE-13.2-Non-Oss|Yes|Yes
      6| repo-oss | openSUSE-13.2-Oss|Yes|Yes
    2. 在表格里显示zypper URI

      #zypper lr -u
      Alias|Name|Enabled|Refresh
      --+---------------------------+------------------------------------+---------+--------
      1| openSUSE-13.2-0| openSUSE-13.2-0|Yes|No
      2| repo-debug | openSUSE-13.2-Debug|Yes|Yes
      3| repo-debug-update | openSUSE-13.2-Update-Debug|No|Yes
      4| repo-debug-update-non-oss | openSUSE-13.2-Update-Debug-Non-Oss|No|Yes
      5| repo-non-oss | openSUSE-13.2-Non-Oss|Yes|Yes
      6| repo-oss | openSUSE-13.2-Oss|Yes|Yes
    3. 根据优先级列举软件库

      #zypper lr -P
      |Alias|Name|Enabled|Refresh|Priority
      --+---------------------------+------------------------------------+---------+---------+---------
      1| openSUSE-13.2-0| openSUSE-13.2-0|Yes|No|99
      2| repo-debug | openSUSE-13.2-Debug|Yes|Yes|99
      3| repo-debug-update | openSUSE-13.2-Update-Debug|No|Yes|99
      4| repo-debug-update-non-oss | openSUSE-13.2-Update-Debug-Non-Oss|No|Yes|99

    1.4 刷新软件库

    1. 使用 'zypper refresh' or 'zypper ref' 来刷新 zypper 软件库。

      # zypper refresh
      或者
      # zypper ref
      Repository'openSUSE-13.2-0'is up to date.
      Repository'openSUSE-13.2-Debug'is up to date.
      Repository'openSUSE-13.2-Non-Oss'is up to date.
      Repository'openSUSE-13.2-Oss'is up to date.
      Repository'openSUSE-13.2-Update'is up to date.
      Repository'openSUSE-13.2-Update-Non-Oss'is up to date.
    2. 刷新一个指定的软件库(以 'repo-non-oss' 为例 )

      # zypper refresh repo-non-oss
      Repository'openSUSE-13.2-Non-Oss'is up to date.
      Specified repositories have been refreshed.
    3. 强制更新一个软件库(以 'repo-non-oss' 为例 )

      # zypper ref -f repo-non-oss
      Forcing raw metadata refresh
      Retrieving repository 'openSUSE-13.2-Non-Oss' metadata ............................................................[done]
      Forcing building of repository cache
      Building repository 'openSUSE-13.2-Non-Oss' cache ............................................................[done]
      Specified repositories have been refreshed.

    1.5 修改软件库

    我们可以通过使用‘zypper modifyrepo‘ 或者 ‘zypper mr‘ 来关闭或者开启 zypper 软件库。

    1. 在关闭一个软件库之前,我们需要知道在 zypper 中,每一个软件库有一个唯一的标示数字与之关联,该数字用于打开或者关闭与之相联系的软件库。假设我们需要关闭 'repo-oss' 软件库,那么我们可以通过以下的法来获得该软件库的标志数字。

      # zypper lr
      |Alias|Name|Enabled|Refresh
      --+---------------------------+------------------------------------+---------+--------
      1| openSUSE-13.2-0| openSUSE-13.2-0|Yes|No
      2| repo-debug | openSUSE-13.2-Debug|Yes|Yes
      3| repo-debug-update | openSUSE-13.2-Update-Debug|No|Yes
      4| repo-debug-update-non-oss | openSUSE-13.2-Update-Debug-Non-Oss|No|Yes
      5| repo-non-oss | openSUSE-13.2-Non-Oss|Yes|Yes
      6| repo-oss | openSUSE-13.2-Oss|No|Yes
      7| repo-source | openSUSE-13.2-Source|No|Yes

      从以上输出的列表中我们可以看到 'repo-oss' 库的标示数字是 6,因此通过以下的命令来关闭该库。

      # zypper mr -d 6
      Repository'repo-oss' has been successfully disabled
    1. 如果需要再次开启软件库 ‘repo-oss‘, 接上例,与之相关联的标示数字为 6。

      # zypper mr -e 6
      Repository'repo-oss' has been successfully enabled.
    1. 针对某一个软件库(以 'repo-non-oss' 为例 )开启自动刷新( auto-refresh )和 rpm 缓存,并设置该软件库的优先级,比如85。

      # zypper mr -rk -p 85 repo-non-oss
      Repository'repo-non-oss' priority has been left unchanged (85)
      Nothing to change for repository 'repo-non-oss'.
    1. 对所有的软件库关闭 rpm 文件缓存。

      # zypper mr -Ka
      RPM files caching has been disabled for repository 'openSUSE-13.2-0'.
      RPM files caching has been disabled for repository 'repo-debug'.
      RPM files caching has been disabled for repository 'repo-debug-update'.
      RPM files caching has been disabled for repository 'repo-debug-update-non-oss'.
      RPM files caching has been disabled for repository 'repo-non-oss'.
      RPM files caching has been disabled for repository 'repo-oss'.
      RPM files caching has been disabled for repository 'repo-source'.
      RPM files caching has been disabled for repository 'repo-update'.
    2. 对所有的软件库开启rpm文件缓存

      # zypper mr -ka
      RPM files caching has been enabled for repository 'openSUSE-13.2-0'.
      RPM files caching has been enabled for repository 'repo-debug'.
      RPM files caching has been enabled for repository 'repo-debug-update'.
      RPM files caching has been enabled for repository 'repo-debug-update-non-oss'.
      RPM files caching has been enabled for repository 'repo-non-oss'.
      RPM files caching has been enabled for repository 'repo-oss'.
      RPM files caching has been enabled for repository 'repo-source'.
      RPM files caching has been enabled for repository 'repo-update'.
    3. 关闭远程库的 rpm 文件缓存

      # zypper mr -Kt
      RPM files caching has been disabled for repository 'repo-debug'.
      RPM files caching has been disabled for repository 'repo-debug-update'.
      RPM files caching has been disabled for repository 'repo-debug-update-non-oss'.
      RPM files caching has been disabled for repository 'repo-non-oss'.
      RPM files caching has been disabled for repository 'repo-oss'.
      RPM files caching has been disabled for repository 'repo-source'.
      RPM files caching has been disabled for repository 'repo-update'.
    4. 开启远程软件库的 rpm 文件缓存

      # zypper mr -kt
      RPM files caching has been enabled for repository 'repo-debug'.
      RPM files caching has been enabled for repository 'repo-debug-update'.
      RPM files caching has been enabled for repository 'repo-debug-update-non-oss'.
      RPM files caching has been enabled for repository 'repo-non-oss'.
      RPM files caching has been enabled for repository 'repo-oss'.
      RPM files caching has been enabled for repository 'repo-source'.
      RPM files caching has been enabled for repository 'repo-update'.

       

    1.6 增加新的软件库

    可以通过这两个 zypper 指令 – 'zypper addrepo' 和 'zypper ar' 来增加新的软件库。在此过程中可以使用 URL 或者软件库的别名。

    1. 增加一个新的软件库( 以 “http://download.opensuse.org/update/12.3/” 为例 )

      # zypper ar http://download.opensuse.org/update/11.1/ update
      Adding repository 'update'.............................................................................................................................................................[done]
      Repository'update' successfully added
      Enabled:Yes
      Autorefresh:No
      GPG check :Yes
      URI : http://download.opensuse.org/update/11.1/
    2. 更改一个软件库的名字,这将仅仅改变软件库的别名。 命令 'zypper namerepo' 或者 'zypperr nr' 可以胜任此工作。例如更改标示数字为10的软件库的名字为 'upd8',或者说将标示数字为10的软件库的别名改为 'upd8',可以使用下面的命令。

      # zypper nr 10 upd8
      Repository'update' renamed to 'upd8'

    1.7 删除软件库

    1. 删除一个软件库。要从系统删除一个软件库可以使 'zypper removerepo' 或者 'zypper rr'。例如以下的命令可以删除软件库 'upd8'

      # zypper rr upd8
      # Removing repository 'upd8' .........................................................................................[done]
      Repository'upd8' has been removed.

    1.8 使用zypper安装一个软件包

    1. 在 zypper 中,我们可以通过软件包的功能名称来安装一个软件包。以 Firefox 为例,以下的命令可以用来安装该软件包。

      # zypper in MozillaFirefox
    1. 安装指定版本号的软件包(以 gcc 5.1 为例)。

      # zypper in 'gcc<5.1'
    2. 为特定的CPU架构安装软件包(以兼容 i586 的 gcc 为例)。

      # zypper in gcc.i586
    1. 为特定的CPU架构安装指定版本号的软件包(以兼容 i586 且版本低于5.1的 gcc 为例)

      # zypper in 'gcc.i586<5.1'
    1. 从指定的软件库里面安装一个软件包,例如从 amarok 中安装 libxine。

      # zypper in amarok upd:libxine1
    2. 通过指定软件包的名字安装软件包

      # zypper in -n git
    3. 通过通配符来安装软件包,例如,安装所有 php5 的软件包

      # zypper in php5*
    1. 使用模式名称(模式名称是一类软件包的名字)来批量安装软件包。

      # zypper in -t pattern lamp_server
    2. 使用一行命令安装一个软件包同时卸载另一个软件包,例如在安装 nano 的同时卸载 vi

      # zypper in nano -vi
    3. 使用 zypper 安装 rpm 软件包。

      # zypper in teamviewer*.rpm

    1.9 使用 zypper 卸载软件包

    1. 命令 ‘zypper remove‘ 和 ‘zypper rm‘ 用于卸载软件包。例如卸载 apache2

      # zypper remove apache2
      或者
      # zypper rm apache2

    1.10 使用Zypper 进行软件包更新

    1. 更新所有的软件包,可以使用 zypper update或者 zypper up。

    # zypper up
    或者
    # zypper update
    Loading repository data...
    Reading installed packages...
    Nothing to do.
    1. 更新指定的软件包,例如更新 apache2 以及 openssh。

      #zypper up apache2 openssh
    2. 安装一个软件库,例如 mariadb,如果该库存在则更新之

      # zypper in mariadb

       

    1.11 安装源文件并且构建依赖关系

    命令 zypper source-install或者 zypper si可以用于从源文件编译软件包

    1. 安装某一个软件包的源文件及其依赖关系,例如 mariadb

      # zypper si mariadb
    2. 仅为某一个软件包安装源文件,例如 mariadb

      # zypper in -D mariadb
    3. 仅为某一个软件包安装依赖关系,例如 mariadb

      # zypper si -d mariadb

       

    1.12 在脚本和应用中调用 Zypper (非交互式)

    1. 安装一个软件包,并且在安装过程中跳过与用户的交互, 例如 mariadb

      # zypper --non-interactive in mariadb
    2. 卸载一个软件包,并且在卸载过程中跳过与用户的交互,例如 mariadb

      # zypper --non-interactive rm mariadb
    3. 以 XML 格式显示 zypper 的输出

      # zypper --xmlout
      Usage:
      zypper [--global-options][--command-options][arguments]
      GlobalOptions
    4. 在安装过程中禁止详细信息输出到屏幕

      # zypper --quiet in mariadb
    5. 在卸载过程中禁止详细信息输出到屏幕

      # zypper --quiet rm mariadb
    6. 自动地同意版权或者协议

      # zypper patch --auto-agree-with-licenses

       

    1.13 清除 Zypper 缓存以及查看历史信息

    1. 以下指令可以用来清理Zypper缓存。

      # zypper clean
      All repositories have been cleaned up
    2. 如果需要一次性地清理元数据以及软件包缓存,可以通过 -all 或 -a 选项来达到目的

      #zypper clean -a
    3. 查看 Zypper 的历史信息

      任何通过 Zypper 进行的软件包管理动作,包括安装、更新以及卸载都会在 /var/log/zypp/history中保留历史信息。可以通过 cat 来查看此文件,或者通过过滤器来筛选希望看到的信息。

      cat /var/log/zypp/history

       

    1.14 使用 Zypper 进行SUSE系统升级

    1. 可以使用 Zypper 命令的 'dist-upgrade' 选项来将当前的 SUSE Linux 升级至最新版本。

      # zypper dist-upgrade

       

    二、附录

    1. 参考

    https://www.linuxidc.com/Linux/2015-06/118698p2.htm

    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    Xcode 8.2 想使用插件 怎么办? 教你科学的使用插件
    JSAPI_Ticket签名
    Java中HashMap,LinkedHashMap,TreeMap的区别[转]
    微信支付开发,再次签名,APP调用
    微信支付开发,统一下单
    android studio安装插件
    java实现mysql数据库的备份及还原
    java项目中读取src目录下的文件
    eclipse增加浏览器chrome
    cd 命令
  • 原文地址:https://www.cnblogs.com/lkj371/p/15304377.html
Copyright © 2020-2023  润新知