Linux软件包管理的知识点,Linux基础知识之软件包管理(二)
(1)CentOS7?yum?dnf
yum?repository:?yum?repo
存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄下,repodata)
文件服務器:
ftp://
http://
nfs://
file:///
(2)yum客戶端:
配置文件:
/etc/yum.conf(主配置文件):為所有倉庫提供公共配置
主配置文件只提供各yum指向的公共配置
/etc/yum.repos.d/*.repo?:為倉庫的指向提供配置
[main]:倉庫名稱(倉庫ID)
cachedir:yum的緩存目錄
keepcache:緩存的文件要不要保留在本地
debuglevel:調試級別
logfile:安裝日志文件的指向
exactarch:要不要做嚴格的平臺匹配
obsoletes:
gpgcheck:要不要檢查來源合法性和包完整性
plugins:yum支不支持插件機制
installonly_limit:最多同時安裝幾個機制
bugtracker_url:追蹤bug時的url
distroverpkg:發行版
倉庫的定義:
[repositoryid]
name=Some?name?for?this?repository
baseurl=url://path/to/repository/(等號左右不要有空格,否則可能有語法錯誤)
可以后面跟多個url,查詢的時候就先從第一個找,然后第二個找以此類推,直至找到我們要安裝的軟件
enabled=(1|0)是否啟用該yum源
gpgcheck={1|0}是否檢查完整性和來源合法性
gpgkey=URL?當gpgcheck=1時,需要添加密鑰文件的訪問路徑
enablegroup={1|0}是否支持在此倉庫上使用組來批量管理程序包
failovermethod={roundrobin|priority}:當baseurl有多個url時,當默認的url無法使用時,默認使用哪個url。
默認為:roundrobin
roundrobin隨機的選取一個,當url還是失敗的時候繼續隨機去選擇url;
priority當url失敗的時候,順序執行url的次序
有些服務器不支持匿名訪問需要指明登錄名和登錄密碼:username和password
cost=1000?默認為1000,開銷數字
(3)yum命令的具體的使用說明:
顯示倉庫列表:
repolist?[all|enabled|disabled]默認顯示的是enabled的
顯示程序包:
list
yum?list?[all?|?glob_exp1]?[glob_exp2]?[...]
yum?list?{available|installed|updates}?[glob_exp1][...]
安裝程序包:
yum?install?package1?[package2]?[...]
yum?reinstall?package1?[package2]?[...]?(重新安裝)
升級程序包:
yum?update?[package1]?[package2]?[...]
降級程序包:
yum?downgrade?package1?[package2]?[...]
檢查可用升級:
yum?check-update
卸載程序包:
yum?remove?|?erase?package1?[package2]?[...]
查看程序包information:
yum?info?[...]
查看指定的特性(?可以是某文件)?是由哪個程序包所提供:
yum?provides?|?whatprovides?feature1?[feature2]?[...]
清理本地緩存:
yumclean?[packages|metadata|expire-cache|rpmdb|plugins|all]
構建緩存:
yum?makecache
搜索:search?string1?[string2]?[...]
以指定的關鍵字搜索程序包名及summary?信息
查看指定包所依賴的capabilities:
yum?deplist?package1?[package2]?[...]
查看yum事務歷史:
yum?history?[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum?history
yum?history?info?6
yum?history?undo?6
日志文件:/var/log/yum.log
安裝及升級本地程序包:
yum?localinstall?rpmfile1?[rpmfile2]?[...](用install替代)
yum?localupdate?rpmfile1?[rpmfile2]?[...](用update替代)
包組管理的相關命令:
groupinstall?group1?[group2]?[...]
groupupdate?group1?[group2]?[...]
grouplist?[hidden]?[groupwildcard]?[...]
groupremove?group1?[group2]?[...]
groupinfo?group1?[...]
(4)使用光盤當做本地的yum倉庫
a.掛載網盤至某目錄,例如/media/cdrom
mount?/dev/cdrom?/media/cdrom
b.創建配置文件
[CentOS7]
name=xxx
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
(5)yum的命令行選項:
--nogpgcheck:禁止進行gpg?check
-y:自動回答為"yes",即自動安裝所要安裝的軟件
-q:使用靜默模式:不往屏幕輸出任何東西
--disablerepo=repoidglob:臨時禁用此處指定的repo
--enablerepo=repoidglob:臨時啟用指定的repo
--noplugins:禁用所有插件
(6)yum的repo配置文件中可用的變量:
$releasever:當前OS的發行版的主版本號
$arch:當前的平臺
$basearch:基礎平臺,無論是i386?i686?i786?的基礎平臺都是i386
$YUM0-$YUM9:yum的內置變量,在系統中用處不多
(7)創建yum倉庫
yum?install?createrepo:安裝createrepo軟件包,用于手動創建本地yum倉庫
createrepo?[options]?
createrepo?./?在當前目錄下創建repodata目錄,createrepo會自動讀取該目錄下所有.rpm結尾的安裝包
--basedir?/path/to/somefile:指定createrepo生成的repodata目錄存放的位置
(8)程序包編譯安裝:
testapp--VERSION-release.src.rpm?-->安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝
src:沒有指定要適合那類平臺?i386(等32位系統),x86_64(等64位系統),ppc等系統的安裝
源代碼組織格式:
多文件:文件中的代碼之間,可能存在跨文件依賴關系
C,C++:make?(configure?-->?Makefile.in?-->?makefile)
編譯安裝三步驟:
./configure
a.通過選項傳遞參數,指定啟用特性,安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成makefile;
b.檢查各指定特性等依賴到的外部環境
make:根據makefile文件構建應用程序;
make?install
開發工具:
autoconf:生成configure腳本
automake:生成Makefile.in
建議:安裝前查看INSTALL,README
開源程序源代碼的獲取:
官方自建站點:
apache.org(ASF)
mariadb.org
代碼托管:
SourceForge
Github.com
code.google.com
編譯C源代碼:
前提:提供開發工具以及開發環境
開發工具:make?gcc等
開發環境:開發庫,頭文件
glibc:標準庫
通過"包組"提供開發組件:
CentOS6:"Development?Tools","Server?Platform?Development"
解壓進入我們要編輯的源碼包中:
第一步:configure腳本
選項:指定安裝位置,指定啟用的特性
./configure?--help:獲取其支持使用的選項
選項分類:
安裝路徑設定:
--prefix=/PATH/TO/SOMEFILE:指定默認安裝位置?默認安裝位置為/usr/local/
--sysconfdir=/PATH/TO/SOMEFILE:配置文件安裝位置
System?types:目標系統平臺結構
Optional?Features:可選特性
--disable-FEATURE?:編譯時默認將程序包的開啟禁用
--enable-FEATURE[=ARG]:編譯程序包時默認會開啟一些可選的特性
Optional?Packages:可選包
--with-PACKAGE[=ARG]:定義包與包之間的依賴關系
--without-PACKAGE?:取消定義包與包之間的依賴關系
./configure?--prefix=/usr/local/apache2?--sysconfdir=/etc/httpd2
指明默認安裝的位置和配置文件放置的位置,編譯安裝是屬于自己安裝,使用rpm也無法卸載編譯安裝的文件,
要想刪除自己編譯安裝的文件,只需將編譯安裝的位置和配置文件安裝的位置的目錄刪除即可
第二步:make
第三步:make?install
安裝后的配置:
(1)導出二進制程序目錄至PATH環境變量中
編譯文件?/etc/profile.d/NAME.sh
export?PATH=/PATH/TO/BIN:$PATH
接著讓系統重新讀取配置文件,或者重新登錄一下shell進程
(2)導出庫文件路徑
編輯?/etc/ld.so.conf.d/NAME.conf
/usr/local/apache2/lib
添加新的庫文件所在目錄至此文件中;
讓系統重新生成緩存?ldconfig
(3)導出頭文件
將安裝后的/usr/local/apache2/下的include的文件,鏈接至?/usr/include目錄中
ln?-sv?/usr/local/apache2/include/*?/usr/include/*
基于符號鏈接的方式實現
(4)導出幫助手冊
編輯?/etc/man.config?文件
添加一個?MANPATH?/usr/local/apache2/man
原創文章,作者:sjsir,如若轉載,請注明出處:http://www.178linux.com/38977
總結
以上是生活随笔為你收集整理的Linux软件包管理的知识点,Linux基础知识之软件包管理(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为p30有几个摄像头(华为技术有限公司
- 下一篇: linux挂载fat分区,[实例]用fs