2018年10月27日 星期六

套件管理Package managerment

什麼是Linux軟件包(Linux Package)?
在Linux發行版中,“軟件包”是指壓縮文件存檔,其中包含特定應用程序及附帶的所有文件。這些文件通常根據您系統上的相關安裝路徑儲存在軟件包中。大多數軟件包還包含操作系統的安裝說明,以及依賴關係的其他軟件包列表(安裝所需的先決條件)。
常見的Linux軟件包包括.deb,.rpm和.tgz。由於Linux軟件包通常不包含安裝所需的依賴關係,許多Linux發行版都使用軟件包管理器來自動讀取依賴關係文件,並在繼續安裝之前下載所需的軟件包。軟件包管理器的一些例子是APT,YUM和Pacman。

什麼是Linux軟件庫(Linux repository)?
數據庫和軟件庫之間的區別是“數據(data)”和“元數據(metadata)”之間的區別。
所以,一個數據庫存儲數據。軟件庫是一種特殊的數據庫類,用於存儲元數據,即描述其他數據的數據。
任何通用數據庫軟件都可以用作軟件庫,但是元數據的一些特性使得使用特殊用途的工具成為可取的。一般來說,數據的粒度很小,大量的交叉引用其他數據。記錄的數量可能是易於處理的。通常需要版本控制和/或內容的差異。
由於這些特殊要求,數據庫製造商試圖編寫特殊的數據庫管理系統來支持軟件庫建設者的需求。
添加在線軟件庫,包括來自不同媒體的附加產品
首先,添加在線軟件庫,將用於在安裝系統時下載和安裝許多更新。
其次,包括來自不同媒體的附加產品,可能是其他程序或特殊的驅動程序,您可能需要同時安裝這些程序,比如某些第三方磁盤(DVD repo),現在很少見。



列出套件庫:zypper repos(lr)
# zypper repos, lr 列出所有已定義的儲存庫。
# zypper repos --uri
# zypper refresh

加入套件庫
# zypper ar <URL> <alias>
# zypper ar -f http://repositoryIP/SLES/x86_64 repository_alias
-f (--refresh)加入並且立即更新套件資料庫
-d (--disable) 加入但不使用此repo
-G (--no-gpgcheck) 不檢查gpg key
-p (--priority) 指定一個不為0的整數作為優先權

啟動和取消套件庫Enable and disable an installed repo, without removing it:
# zypper mr -e repo-debug (start)
# zypper mr -d repo-debug (stop)

套件搜尋及安裝: search from repositories and install
# zypper search | grep 套件名稱
# zypper install 套件名稱
(另一種方法 search form "https://software.opensuse.org/find" )

檢查已安裝套件:search installed packages
# zypper search --installed-only | grep 套件名稱
# zypper search -i | grep 套件名稱

套件更新:
# zypper list-updates, lu 列出可用的更新。
# zypper update, up
# zypper patch-check
# zypper list-patches
# zypper patch 安裝所需的修補程式。

套件移除:
# zypper rm

HELP
# zypper help

restart the processes listed
zypper ps -s


rpm安裝
# rpm -ivh *.rpm
If the conflict was caused by the version of the package.
--force ,same as using --replacepkgs, --replacefiles, and --oldpackage
rpm -ivh *.rpm --force

rpm uninstall
# rpm -qa | grep -i <package>
# rpm -e <package name>