您好,登錄后才能下訂單哦!
軟件包在系統管理中,軟件包的管理是最重要的,是系統管理的基礎的基礎;只有我們學會軟件包的管理才能談得上其它的應用;本文以目錄式的文檔格式,列出新手弟兄所面對的軟件包的安裝、更新、查詢相對的文檔,以及幾個常用的軟件包管理工具。
軟件包管理:
一,RPM包管理;
二,yum包管理;
一,RPM包管理:
centos系統上RPM命令管理程序包:
安裝,升級,卸載,查詢,校驗,數據庫維護
RPM命令:rpm [OPTIONS] [PACKAGE_FILE]
安裝:-i ,--install
升級:-U,--update, -F,--freshen
卸載: -e,--erase
查詢: -q,--query
校驗: -v,--verify
數據庫維護:--builddb,--initdb
(1)安轉:
rpm{-i | --install}[install-options] PACKAGE_FILE ...
GENERAL OPTIONS:
-v: verbose,詳細信息
-vv:更詳細的輸出
[install-options]
-h:hash marks輸出進度條;每個#表示2%的進度;
--test:測試安轉,檢查并報告依賴關系及沖突消息等;
--nodeps:忽略依賴關系,不建議使用;
--replacepkgs:重新安裝
--nosignature:不檢查包簽名信息,不檢查來源合法性;
--nodigest:不檢查包完整性信息;
--noscripts:
preinstall: 安轉過程開始之前運行的腳本,%pre,--nopre
postinstall:安裝過程完成之后運行腳本,%post,--nopost
preunintall:卸載過程真正開始執行之前運行的腳本,%preun,--nopreun
postuninstall:卸載過程完成之后運行的腳本,%postun,--nopostun
注意:rpm可以自帶腳本;
(2)升級:
rpm {-U | --upgrade} [install-options] PACKAGE_FILE ....
rpm {-F | --freshen} [install-options] PACKAGE_FILE ....
-U:升級或安裝;
-F:升級
rpm -Uvh PACKAGE_FILE ....
rpm -Fvh PACKAGE_FILE ....
--oldpackage:降級;
--force:強制升級;
注意:1,不要對內核做升級操作;Linux支持多內核版本并存,因此,直接安轉新版本內核;
2,如果某原程序包的配置文件安裝后曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew) 后保留;
(3)卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ..
--allmatches:卸載所有匹配指定名稱的程序包的各版本;
--nodeps:忽略依賴關系
--test:測試卸載,dry run模式
(4)查詢:
rpm {-q|--query} [select-options] [query-options]
[select-options]
PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本;
-a, --all:查詢所有已經安裝過的包;
-f, --file FILE:查詢所有指定的文件有那個程序包安裝生成;
-p, --package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;
--whatprovides CAPABILITY:查詢指定的 CAPABILITY 由那個程序包提供;
--whatrequires CAPABILITY:查詢指定的 CAPABILITY 由那個包依賴;
[query-options]
--changelog:查詢rpm包的changelog;
-l, --list:程序安裝生成的所有文件列表;
-i, --info:程序包相關的信息,版本號,大小,所屬的包組,等;
-c, --configfiles:查詢指定的程序包提供的配置文件;
-d, --docfiles:查詢指定的程序包提供的文檔;
--provides:列出指定的程序包提供的所有的CAPABILITY;
-R, --requires:查詢指定的程序包的依賴關系;
--scripts:查看程序包自帶的腳本片段;
用法:
-qi PACKAG, -qf FILE, -qc PACKAG, -ql PACKAG, -qd PACKAG,-qpl PACKAG_FILE
(5)校驗:
rpm {-V|--verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
包來源合法性驗證和完整性驗證:
來源合法性驗證:RSA
完整性驗證:SHA256
獲取并導入信任的包制作者的秘鑰:
對于centos發行版來說:rpm --import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
驗證:
(1)安裝此組織簽名的程序時,會自動執行驗證;
(2)手動驗證:rpm -k PACKAGE_FILE (來源合法性和完整性)
(6)數據庫重建:
rpm管理器數據庫路徑:/var/lib/rpm/
查詢操作:通過此處的數據庫進行;
獲取幫助:
centos 6:man rpm
centos 7:man rpmdb
rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIREC‐TORY]
--initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;
--rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;
二,yum包管理:
(1)yum 配置文件
1,yum 客戶端配置文件:
/etc/yum.conf :為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo :為倉庫的指向提供配置
倉庫指向的定義:
[repositoryID](倉庫ID)
name=Some name for this repository (倉庫名)
baseurl=url://path/to/repository/ (地址)
enabled={1|0} (是否啟用)
gpgcheck={1|0} (是否檢查)
gpgkey=URL
文件服務器(URL):
ftp://
http://
file:///
2,如何使用光盤當作本地yum 倉庫:
掛載光盤至某目錄,例如/media/cdrom
# mount /dev/cdrom /media/cdrom
創建配置文件,vim /etc/yum.repos.d/centos-local.repo
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
3,如何使用網絡源做yum倉庫:
創建配置文件,vim /etc/yum.repos.d/bash.repo
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
(2)yum的命令管理:
yum 的命令行選項:
-y: 自動回答為“yes”
-q :靜默模式
--nogpgcheck :禁止進行gpg check
--disablerepo=repoidglob :臨時禁用此處指定的repo
--enablerepo=repoidglob :臨時啟用此處指定的repo
--noplugins :禁用所有插件
顯示倉庫列表:
yum repolist [ all | enabled | disabled ] [全部 | 啟用 | 禁止]
顯示程序包:
yum list
yum list [all ]
yum list [available | installed | updates] [可用的 | 安裝過的 | 升級的]
安裝程序包:
yum install package1
yum reinstall package1 ( 重新安裝)
升級程序包:
yum update package1
yum downgrade package1 ( 降級)
檢查可用升級:
yum check-update
卸載程序包:
yum [remove | erase] package1 [卸載 | 抹除]
查看包的詳細信息
yum info package
查看指定的特性( 可以是某文件) 是由哪個程序包所提供:
yum provides feature1
清理本地緩存:
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
[程序包 | 元數據 | 過期的緩存 | rpmdb | 插件 | 全部的]
構建緩存:
yum makecache
搜索:以指定的關鍵字搜索程序包名及summary(簡要) 信息
yum search string1
查看yum 事務歷史:
yum history
yum history list # (可以顯示某個處理過程)
yum history info # (可以顯示某個歷史安裝包的詳細信息)
yum history redo # (可以重新安裝某個歷史的所有安裝包)
yum history undo # (可以撤銷某個歷史的所有安裝包,類同卸載 (不適用包組))
安裝及升級本地程序包:
yum install rpmfile (安裝本地程序包)
yum update rpmfile (升級本地程序包)
包組管理的相關命令:
yum grouplist (查看包組)
yum groupinfo group (查看包組的詳細信息)
yum groupinstall group (安裝包組)
yum groupupdate group (升級包組)
yum groupremove group (卸載包組)
(3)編譯安裝:
c/c++ 編譯器: gcc (GNU C Complier)
編譯C源代碼:
準備: 提供開發工具及開發環境
開發工具:make, gcc等
開發環境:開發庫,頭文件
glibc :標準庫
實現:通過 “包組”提供開發組件
CentOS 6:
Development Tools
Server Platform Development
CentOS 7:
Development Tools
Development and Creative Workstation
( get命令 是把目錄或文件放到桌面 )
第一步:./configure 腳本
選項:指定安裝位置、指定啟用的特性--help: 獲取其支持使用的選項
選項分類:
安裝路徑設定:
--prefix=/PATH: 指定默認安裝位置, 默認為/usr/local/
--sysconfdir=/PATH :配置文件安裝位置
System types: 支持交叉編譯
Optional Features: 可選特性
--disable-FEATURE
--enable-FEATURE[=ARG]
Optional Packages: 可選包,
--with-PACKAGE[=ARG], 依賴包
--without-PACKAGE, 禁用依賴關系
第二步:make:根據makefile 文件,構建應用程序
第三步:make install : 復制文件到相應路徑
安裝后的配置:
(1) 二進制程序目錄導入至PATH 環境變量中;
編輯文件/etc/profile.d/NAME.sh
PATH=/PATH/TO/BIN:$PATH
(2) 導入庫文件路徑
編輯/etc/ld.so.conf.d/NAME.conf
添加新的庫文件所在目錄至此文件中
讓系統重新生成緩存:
ldconfig [-v]
(3) 導入頭文件
基于鏈接的方式實現:
ln -sv
(4) 導入幫助手冊
編輯/etc/man.config|man_db.conf 文件
添加一個MANPATH
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。