centos:yum ,dnf
URL :ftp://172.12.01.2/pub/
YUM:yellow dog ,yellowgod Update Modifier
yum repository: yum repo
c存儲(chǔ)了眾多rmp包,以及包的相關(guān)的元數(shù)據(jù)文件(放置于特定目錄下:repodata):
文件服務(wù)器:
ftp://
http://
nfs://
file:///
yum客戶端:
配置文件:
/etc/yum.conf:為所有倉(cāng)庫(kù)提供公共配置
/etc/yum.repos.d/*.repo:為倉(cāng)庫(kù)的指向提供配置
[aliyun]
name=Centos epel
baseurl=http://mirrors.aliyun.com/epel/$releasever/$basearch/
gpgcheck=0
倉(cāng)庫(kù)的定義:
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}表示這個(gè)repo中定義的源是啟用的,0為禁用
gpgcheck={1|0}表示這個(gè)repo中下載的rpm將進(jìn)行g(shù)pg的校驗(yàn),已確定rpm包的來源是有效和安全的
gpgkey=URL
enablegroups={1|0}
faillovermcthod={roundrobin|priority}
默認(rèn)為:roundrobin,意為隨機(jī)挑選
cost=
默認(rèn)為1000
yum倉(cāng)庫(kù)中的元數(shù)據(jù)文件:
primary.xml.gz
所有RPM包的列表
依賴關(guān)系:
每個(gè)RPM安裝生成的文件列表:
filelists.xml.gz
當(dāng)前倉(cāng)庫(kù)中所有RPM包的所有文件列表
other.xml.gz
額外信息,RPM包的修改日志
repomd.xml
記錄的是上面三個(gè)文件的時(shí)間戳和校驗(yàn)和
yum 命令的用法:
yum [options] [command] [package ...]
顯示倉(cāng)庫(kù)列表:(顯示repo 列表及其簡(jiǎn)要信息)
repolist [all|enabled(默認(rèn))|disabled]
顯示程序包:(支持glob)
list
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {updates(可用的升級(jí))|available(可用的,倉(cāng)庫(kù)中有但尚未安裝)|installed(已經(jīng)安裝的)} [glob_exp1] [...]
安裝程序包:
install package1 [package2] [...]
reinstall package1 [package2] [...] 重新安裝
升級(jí)程序包:
update [package1] [package2] [...]
downgrade package1 [package2] [...] 降級(jí)安裝
檢查可用升級(jí):
check-update
卸載程序包:
remove | erase package1 [package2] [...]
查看程序包信息
info [...]
查看指定的特性(可以是某文件)是由哪個(gè)包提供
provides | whatprovides feature1 [feature2] [...]
清理本地緩存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
構(gòu)建緩存:
makecache
搜索:
search string1 [string2] [...]
以指定的關(guān)鍵詞搜索程序包名及sumary信息
查看指定包所依賴的capabilities
deplist package1 [package2] [...]
查看yum事務(wù)歷史
history [info|list|packages-list|packages-inifo|summary|addon-info|redo|undo|rollback|new|sync|stats]
安裝及升級(jí)本地程序包
localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
localupdate rpmfile1 [rpmfile2] [...]
包組管理的相關(guān)命令
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]如何使用光盤當(dāng)做本地yum倉(cāng)庫(kù):
(1)掛載光盤至某目錄,例如/media/cdrom
#mount -r -t iso9660 /dev/cdrom /media/cdrom
(2)創(chuàng)建配置文件
[Centos7]
name=
baseurl=
gpgcheck=
enabled=
yum的命令行選項(xiàng):
--nogpgcheck:禁止進(jìn)行g(shù)pg check
yum --nogpgcheck localinstall *.rpm -y 安裝本地rpm包,自動(dòng)解決依賴關(guān)系
-y:自動(dòng)回答為“yes”
-q:靜默模式;
--disablerepo=repoidglob:臨時(shí)禁用此處指定的repo
--enablerepo=repoidglob:臨時(shí)啟用此處指定的repo
--noplugins:禁用所有插件
yum的repo配置文件中可用的變量:
$releasever:當(dāng)前OS的發(fā)現(xiàn)版的主版本號(hào)
$arch:平臺(tái)
$basearch:基礎(chǔ)平臺(tái)
$YUM0-$YUM9
創(chuàng)建yum倉(cāng)庫(kù):
createrepo [options]<directory>
程序包編譯安裝:
testapp-VERSION-release.src.rpm-->安裝后,使用rpmbuild命令制作為二進(jìn)制格式的rpm包,而后再安裝
源代碼-->預(yù)處理-->編譯(gcc)-->匯編-->鏈接-->執(zhí)行
源代碼組織格式:
多文件:文件中的代碼之間,很可能存在跨文件依賴關(guān)系;
C、C++:make(configure-->makefile.in-->makefile)
java:maven
編譯安裝三步驟:
./configure
(1)通過選項(xiàng)傳遞參數(shù),指定啟用特性、安裝路徑;執(zhí)行時(shí)會(huì)參考用戶的指定以及Makefile.in文件生成makefile;
(2)檢查依賴到的外部環(huán)境;
make
根據(jù)makefile文件,構(gòu)建應(yīng)用程序
make install
開發(fā)工具:
autoconf:生成configure文件
automake:生成Makefile.in
建議:安裝前參考INSTALL,README
開源程序源代碼的獲?。?/p>
官方自建站點(diǎn):
apache.org
mariadb.org
代碼托管:
SourceForge
Github.com
code.google.com
c/c++:gcc(GUN C Complier)
編譯C源代碼:
前提:提供開發(fā)工具及開發(fā)環(huán)境
開發(fā)工具:make,gcc等
開發(fā)環(huán)境:開發(fā)庫(kù),頭文件
glibc:標(biāo)準(zhǔn)庫(kù)
通過“包組”提供開發(fā)組件
CentOS 6:“Development Tool”,"Server Platform Development"
第一步:configure腳本
選項(xiàng):指定安裝位置、指定啟用的特性
--help:獲取其直系使用的選項(xiàng)
選項(xiàng)分類:
安裝路徑設(shè)定
--prefix=/PATH/TO/SOMEWHERE:指定默認(rèn)安裝位置:默認(rèn)為/usr/local/
--sysc>System types:
Optional Features:可選特性--disable-FEATURE
--enable-FEATURE[=ARG]
OPtional Packages:可選包
--with-PACKAGE[=ARG]
--without-PACKAGE
第二步:make
第三步:make install
安裝后的配置:
(1)導(dǎo)出二進(jìn)制程序目錄至PATH環(huán)境變量中:
a.編輯文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
b.修改/etc/profile文件
(2)導(dǎo)出庫(kù)文件路徑
默認(rèn)情況下,系統(tǒng)會(huì)搜索庫(kù)文件的路徑/lib ,/usr/lib;要增添額外的搜索路徑
編輯/etc/ld.so.conf.d/NAME.conf
添加新的庫(kù)文件所在目錄至此文件中:
例如:/user/local/apache2/lib
讓系統(tǒng)重新重新生成緩存文件:
ldconfig 通知系統(tǒng)重新搜尋庫(kù)文件
-v 顯示重新搜尋的過程
(3)導(dǎo)出頭文件
基于鏈接的方式實(shí)現(xiàn):ln -sv
默認(rèn):/usr/include
/usr/local/tengine/include /usr/include
ln -s /usr/local/tengine/include/* /usr/include 或
ln -s /usr/local/tengine/include /usr/include/tengine
(4)導(dǎo)出幫助手冊(cè)
man文件路徑:安裝在--prefix指定的目錄下的man目錄:/usr/share/man
1、編輯/etc/man.config文件
添加一個(gè)MANPATH
2、man -M /PATH/TO/MAN_DIR COMMAND