您好,登錄后才能下訂單哦!
這篇文章主要介紹linux中實用的zypper命令有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Suse Linux 使用 zypper
進行包管理,其是一個由 ZYpp 包管理引擎提供的包管理系統。
不帶參數的 zypper
命令將列出所有可用的選項,這比參考詳細的 man 手冊要容易上手得多。
root@kerneltalks # zypper 用法: zypper [--global-options] <command> [--command-options] [arguments] zypper <subcommand> [--command-options] [arguments] 全局選項: --help, -h 幫助 --version, -V 輸出版本號 --promptids 輸出 zypper 用戶提示符列表 --config, -c <file> 使用指定的配置文件來替代默認的 --userdata <string> 在歷史和插件中使用的用戶自定義事務 id --quiet, -q 忽略正常輸出,只打印錯誤信息 --verbose, -v 增加冗長程度 --color --no-color 是否啟用彩色模式,如果 tty 支持的話 --no-abbrev, -A 表格中的文字不使用縮寫 --table-style, -s 表格樣式(整型) --non-interactive, -n 不詢問任何選項,自動使用默認答案 --non-interactive-include-reboot-patches 針對帶有重啟標志的補丁,不使用交互模式 --xmlout, -x 切換至 XML 輸出 --ignore-unknown, -i 忽略未知的包 --reposd-dir, -D <dir> 使用自定義倉庫文件目錄 --cache-dir, -C <dir> 為所有緩存啟用可選路徑 --raw-cache-dir <dir> 啟用可選 raw 元數據緩存路徑 --solv-cache-dir <dir> 啟用可選 solv 文件緩存路徑 --pkg-cache-dir <dir> 啟用可選包緩存路徑 倉庫選項: --no-gpg-checks 忽略 GPG 檢查失敗并跳過 --gpg-auto-import-keys 自動信任并導入新倉庫的簽名密鑰 --plus-repo, -p <URI> 使用附加倉庫 --plus-content <tag> 另外使用禁用的倉庫來提供特定的關鍵詞 嘗試使用 '--plus-content debug' 選項來啟用倉庫 --disable-repositories 不從倉庫中讀取元數據 --no-refresh 不刷新倉庫 --no-cd 忽略 CD/DVD 中的倉庫 --no-remote 忽略遠程倉庫 --releasever 設置所有 .repo 文件中的 $releasever 變量(默認值:發行版版本) Target Options: --root, -R <dir> 在另一個根路徑下進行操作 --disable-system-resolvables 不讀取已安裝包 命令: help, ? 打印幫助 shell, sh 允許多命令 倉庫管理: repos, lr 列出所有自定義倉庫 addrepo, ar 添加一個新倉庫 removerepo, rr 移除指定倉庫 renamerepo, nr 重命名指定倉庫 modifyrepo, mr 修改指定倉庫 refresh, ref 刷新所有倉庫 clean 清除本地緩存 服務管理: services, ls 列出所有自定義服務 addservice, as 添加一個新服務 modifyservice, ms 修改指定服務 removeservice, rs 移除指定服務 refresh-services, refs 刷新所有服務 軟件管理: install, in 安裝包 remove, rm 移除包 verify, ve 確認包依賴的完整性 source-install, si 安裝源碼包及其構建依賴 install-new-recommends, inr 安裝由已安裝包建議一并安裝的新包 更新管理: update, up 更新已安裝包至更新版本 list-updates, lu 列出可用更新 patch 安裝必要的補丁 list-patches, lp 列出必要的補丁 dist-upgrade, dup 進行發行版更新 patch-check, pchk 檢查補丁 查詢: search, se 查找符合匹配模式的包 info, if 展示特定包的完全信息 patch-info 展示特定補丁的完全信息 pattern-info 展示特定模式的完全信息 product-info 展示特定產品的完全信息 patches, pch 列出所有可用的補丁 packages, pa 列出所有可用的包 patterns, pt 列出所有可用的模式 products, pd 列出所有可用的產品 what-provides, wp 列出提供特定功能的包 包鎖定: addlock, al 添加一個包鎖定 removelock, rl 移除一個包鎖定 locks, ll 列出當前的包鎖定 cleanlocks, cl 移除無用的鎖定 其他命令: versioncmp, vcmp 比較兩個版本字符串 targetos, tos 打印目標操作系統 ID 字符串 licenses 打印已安裝包的證書和 EULAs 報告 download 使用命令行下載指定 rpm 包到本地目錄 source-download 下載所有已安裝包的源碼 rpm 包到本地目錄 子命令: subcommand 列出可用子命令 輸入 'zypper help <command>' 來獲得特定命令的幫助。
zypper
通過 in
或 install
子命令來在你的系統上安裝包。它的用法與 yum 軟件包安裝 相同。你只需要提供包名作為參數,包管理器(此處是 zypper
)就會處理所有的依賴并與你指定的包一并安裝。
# zypper install telnetRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages...Resolving package dependencies... The following NEW package is going to be installed: telnet 1 new package to install.Overall download size: 51.8 KiB. Already cached: 0 B. After the operation, additional 113.3 KiB will be used.Continue? [y/n/...? shows all options] (y): yRetrieving package telnet-1.2-165.63.x86_64 (1/1), 51.8 KiB (113.3 KiB unpacked)Retrieving: telnet-1.2-165.63.x86_64.rpm .........................................................................................................................[done]Checking for file conflicts: .....................................................................................................................................[done](1/1) Installing: telnet-1.2-165.63.x86_64 .......................................................................................................................[done]
以上是我們安裝 telnet
包時的輸出,供你參考。
推薦閱讀:在 YUM 和 APT 系統中安裝包
要在 Suse Linux 中擦除或移除包,使用 zypper
附帶 remove
或 rm
子命令。
root@kerneltalks # zypper rm telnetLoading repository data...Reading installed packages...Resolving package dependencies... The following package is going to be REMOVED: telnet 1 package to remove.After the operation, 113.3 KiB will be freed.Continue? [y/n/...? shows all options] (y): y(1/1) Removing telnet-1.2-165.63.x86_64 ..........................................................................................................................[done]
我們在此處移除了先前安裝的 telnet 包。
有時可以通過強制忽略依賴關系來安裝軟件包。zypper
使你能夠掃描所有已安裝的軟件包并檢查其依賴性。如果缺少任何依賴項,它將提供你安裝或重新安裝它的機會,從而保持已安裝軟件包的完整性。
使用附帶 verify
或 ve
子命令的 zypper
命令來檢查已安裝包的完整性。
root@kerneltalks # zypper veRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages... Dependencies of all installed packages are satisfied.
在上面的輸出中,你能夠看到***一行說明已安裝包的所有依賴都已安裝完全,并且無需更多操作。
zypper
提供了一種方法使得你能夠將包下載到本地目錄而不去安裝它。你可以在其他具有同樣配置的系統上使用這個已下載的軟件包。包會被下載至 /var/cache/zypp/packages/<repo>/<arch>/
目錄。
root@kerneltalks # zypper download telnetRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages...Retrieving package telnet-1.2-165.63.x86_64 (1/1), 51.8 KiB (113.3 KiB unpacked)(1/1) /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLES12-SP3-Pool/x86_64/telnet-1.2-165.63.x86_64.rpm ................................................[done] download: Done. # ls -lrt /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLES12-SP3-Pool/x86_64/total 52-rw-r--r-- 1 root root 53025 Feb 21 03:17 telnet-1.2-165.63.x86_64.rpm
你能看到我們使用 zypper
將 telnet 包下載到了本地。
推薦閱讀:在 YUM 和 APT 系統中只下載包而不安裝
zypper
允許你瀏覽已安裝包的所有可用更新,以便你可以提前計劃更新活動。使用 list-updates
或 lu
子命令來顯示已安裝包的所有可用更新。
root@kerneltalks # zypper luRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages...S | Repository | Name | Current Version | Available Version | Arch--|-----------------------------------|----------------------------|-------------------------------|------------------------------------|-------v | SLES12-SP3-Updates | at-spi2-core | 2.20.2-12.3 | 2.20.2-14.3.1 | x86_64v | SLES12-SP3-Updates | bash | 4.3-82.1 | 4.3-83.5.2 | x86_64v | SLES12-SP3-Updates | ca-certificates-mozilla | 2.7-11.1 | 2.22-12.3.1 | noarchv | SLE-Module-Containers12-Updates | containerd | 0.2.5+gitr639_422e31c-20.2 | 0.2.9+gitr706_06b9cb351610-16.8.1 | x86_64v | SLES12-SP3-Updates | crash | 7.1.8-4.3.1 | 7.1.8-4.6.2 | x86_64v | SLES12-SP3-Updates | rsync | 3.1.0-12.1 | 3.1.0-13.10.1 | x86_64
輸出特意被格式化以便于閱讀。每一列分別代表包所屬倉庫名稱、包名、已安裝版本、可用的更新版本和架構。
使用 list-patches
或 lp
子命令來顯示你的 Suse Linux 系統需要被應用的所有可用補丁。
root@kerneltalks # zypper lpRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages... Repository | Name | Category | Severity | Interactive | Status | Summary ----------------------------------|------------------------------------------|-------------|-----------|-------------|--------|------------------------------------------------------------------------------------SLE-Module-Containers12-Updates | SUSE-SLE-Module-Containers-12-2018-273 | security | important | --- | needed | Version update for docker, docker-runc, containerd, golang-github-docker-libnetworkSLE-Module-Containers12-Updates | SUSE-SLE-Module-Containers-12-2018-62 | recommended | low | --- | needed | Recommended update for sle2docker SLE-Module-Public-Cloud12-Updates | SUSE-SLE-Module-Public-Cloud-12-2018-268 | recommended | low | --- | needed | Recommended update for python-ecdsa SLES12-SP3-Updates | SUSE-SLE-SERVER-12-SP3-2018-116 | security | moderate | --- | needed | Security update for rsync ---- output clipped ----SLES12-SP3-Updates | SUSE-SLE-SERVER-12-SP3-2018-89 | security | moderate | --- | needed | Security update for perl-XML-LibXML SLES12-SP3-Updates | SUSE-SLE-SERVER-12-SP3-2018-90 | recommended | low | --- | needed | Recommended update for lvm2 Found 37 applicable patches:37 patches needed (18 security patches)
使用相應的表頭可以很好地組織輸出。你可以輕松地找出并根據情況計劃你的補丁更新。我們能看到在我們的系統中,37 個可用補丁中有 18 個是安全補丁,需要被高優先級應用!
你可以通過發出 zypper patch
命令安裝所有需要的補丁。
要使用 zypper
更新包,使用 update
或 up
子命令后接包名。在上述列出的更新命令中,我們知道在我們的服務器上 rsync
包更新可用。讓我們現在來更新它吧!
root@kerneltalks # zypper update rsyncRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages...Resolving package dependencies... The following package is going to be upgraded: rsync 1 package to upgrade.Overall download size: 325.2 KiB. Already cached: 0 B. After the operation, additional 64.0 B will be used.Continue? [y/n/...? shows all options] (y): yRetrieving package rsync-3.1.0-13.10.1.x86_64 (1/1), 325.2 KiB (625.5 KiB unpacked)Retrieving: rsync-3.1.0-13.10.1.x86_64.rpm .......................................................................................................................[done]Checking for file conflicts: .....................................................................................................................................[done](1/1) Installing: rsync-3.1.0-13.10.1.x86_64 .....................................................................................................................[done]
如果你不確定包的全名也不要擔心。你可以使用 zypper
附帶的 se
或 search
子命令并提供查找字符串來查找包。
root@kerneltalks # zypper se lvmRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages... S | Name | Summary | Type---|---------------|------------------------------|----------- | libLLVM | Libraries for LLVM | package | libLLVM-32bit | Libraries for LLVM | package | llvm | Low Level Virtual Machine | package | llvm-devel | Header Files for LLVM | package | lvm2 | Logical Volume Manager Tools | srcpackagei+ | lvm2 | Logical Volume Manager Tools | package | lvm2-devel | Development files for LVM2 | package
在上述示例中我們查找了 lvm
字符串并得到了如上輸出列表。你能在 zypper install/remove/update
命令中使用 Name
字段的名字。
你能夠使用 zypper
檢查已安裝包的詳細信息。info
或 if
子命令將列出已安裝包的信息。它也可以顯示未安裝包的詳細信息,在該情況下,Installed
參數將返回 No
值。
root@kerneltalks # zypper info rsyncRefreshing service 'SMT-http_smt-ec2_susecloud_net'.Refreshing service 'cloud_update'.Loading repository data...Reading installed packages... Information for package rsync:------------------------------Repository : SLES12-SP3-UpdatesName : rsyncVersion : 3.1.0-13.10.1Arch : x86_64Vendor : SUSE LLC <https://www.suse.com/>Support Level : Level 3Installed Size : 625.5 KiBInstalled : YesStatus : up-to-dateSource package : rsync-3.1.0-13.10.1.srcSummary : Versatile tool for fast incremental file transferDescription : Rsync is a fast and extraordinarily versatile file copying tool. It can copy locally, to/from another host over any remote shell, or to/from a remote rsync daemon. It offers a large number of options that control every aspect of its behavior and permit very flexible specification of the set of files to be copied. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. Rsync is widely used for backups and mirroring and as an improved copy command for everyday use.
使用 zypper
命令附帶 lr
或 repos
子命令列出倉庫。
root@kerneltalks # zypper lrRefreshing service 'cloud_update'.Repository priorities are without effect. All enabled repositories share the same priority. # | Alias | Name | Enabled | GPG Check | Refresh---|--------------------------------------------------------------------------------------|-------------------------------------------------------|---------|-----------|-------- 1 | SMT-http_smt-ec2_susecloud_net:SLE-Module-Adv-Systems-Management12-Debuginfo-Pool | SLE-Module-Adv-Systems-Management12-Debuginfo-Pool | No | ---- | ---- 2 | SMT-http_smt-ec2_susecloud_net:SLE-Module-Adv-Systems-Management12-Debuginfo-Updates | SLE-Module-Adv-Systems-Management12-Debuginfo-Updates | No | ---- | ---- 3 | SMT-http_smt-ec2_susecloud_net:SLE-Module-Adv-Systems-Management12-Pool | SLE-Module-Adv-Systems-Management12-Pool | Yes | (r ) Yes | No 4 | SMT-http_smt-ec2_susecloud_net:SLE-Module-Adv-Systems-Management12-Updates | SLE-Module-Adv-Systems-Management12-Updates | Yes | (r ) Yes | Yes 5 | SMT-http_smt-ec2_susecloud_net:SLE-Module-Containers12-Debuginfo-Pool | SLE-Module-Containers12-Debuginfo-Pool | No | ---- | ---- 6 | SMT-http_smt-ec2_susecloud_net:SLE-Module-Containers12-Debuginfo-Updates | SLE-Module-Containers12-Debuginfo-Updates | No | ---- | ----
此處你需要檢查 enabled
列來確定哪些倉庫是已被啟用的而哪些沒有。
要添加倉庫你需要倉庫或 .repo 文件的 URI,否則你會遇到如下錯誤。
root@kerneltalks # zypper addrepo -c SLES12-SP3-UpdatesIf only one argument is used, it must be a URI pointing to a .repo file.
使用 URI,你可以像如下方式添加倉庫:
root@kerneltalks # zypper addrepo -c http://smt-ec2.susecloud.net/repo/SUSE/Products/SLE-SDK/12-SP3/x86_64/product?credentials=SMT-http_smt-ec2_susecloud_net SLE-SDK12-SP3-PoolAdding repository 'SLE-SDK12-SP3-Pool' ...........................................................................................................................[done]Repository 'SLE-SDK12-SP3-Pool' successfully added URI : http://smt-ec2.susecloud.net/repo/SUSE/Products/SLE-SDK/12-SP3/x86_64/product?credentials=SMT-http_smt-ec2_susecloud_netEnabled : YesGPG Check : YesAutorefresh : NoPriority : 99 (default priority) Repository priorities are without effect. All enabled repositories share the same priority.
在 Suse 中使用附帶 addrepo
或 ar
子命令的 zypper
命令添加倉庫,后接 URI 以及你需要提供一個別名。
要在 Suse 中移除一個倉庫,使用附帶 removerepo
或 rr
子命令的 zypper
命令。
root@kerneltalks # zypper removerepo nVidia-Driver-SLE12-SP3Removing repository 'nVidia-Driver-SLE12-SP3' ....................................................................................................................[done]Repository 'nVidia-Driver-SLE12-SP3' has been removed.
使用 zypper clean
命令清除 zypper 本地緩存。
root@kerneltalks # zypper cleanAll repositories have been cleaned up.
以上是“linux中實用的zypper命令有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。