linux程序包管理yum的使用

2016年10月21日17:35:47 發表評論 3,768 ℃

centos:yum ,dnf

URL :ftp://172.12.01.2/pub/

YUM:yellow dog ,yellowgod Update Modifier

yum repository: yum repo

c存儲了眾多rmp包,以及包的相關的元數據文件(放置于特定目錄下:repodata):

文件服務器:

ftp://

http://

nfs://

file:///

yum客戶端:

配置文件:

/etc/yum.conf:為所有倉庫提供公共配置

/etc/yum.repos.d/*.repo:為倉庫的指向提供配置

[aliyun]

name=Centos epel

baseurl=http://mirrors.aliyun.com/epel/$releasever/$basearch/

gpgcheck=0

倉庫的定義:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}表示這個repo中定義的源是啟用的,0為禁用

gpgcheck={1|0}表示這個repo中下載的rpm將進行gpg的校驗,已確定rpm包的來源是有效和安全的

gpgkey=URL

enablegroups={1|0}

faillovermcthod={roundrobin|priority}

默認為:roundrobin,意為隨機挑選

cost=

默認為1000

yum倉庫中的元數據文件:

primary.xml.gz

所有RPM包的列表

依賴關系:

每個RPM安裝生成的文件列表:

filelists.xml.gz

當前倉庫中所有RPM包的所有文件列表

other.xml.gz

額外信息,RPM包的修改日志

repomd.xml

記錄的是上面三個文件的時間戳和校驗和

yum 命令的用法:

yum [options] [command] [package ...]

顯示倉庫列表:(顯示repo 列表及其簡要信息)

repolist [all|enabled(默認)|disabled]

顯示程序包:(支持glob)

list

yum list [all | glob_exp1] [glob_exp2] [...]

yum list {updates(可用的升級)|available(可用的,倉庫中有但尚未安裝)|installed(已經安裝的)} [glob_exp1] [...]

安裝程序包:

install package1 [package2] [...]

reinstall package1 [package2] [...] 重新安裝

升級程序包:

update [package1] [package2] [...]

downgrade package1 [package2] [...] 降級安裝

檢查可用升級:

check-update

卸載程序包:

remove | erase package1 [package2] [...]

查看程序包信息

info [...]

查看指定的特性(可以是某文件)是由哪個包提供

provides | whatprovides feature1 [feature2] [...]

清理本地緩存:

clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

構建緩存:

makecache

搜索:

search string1 [string2] [...]

以指定的關鍵詞搜索程序包名及sumary信息

查看指定包所依賴的capabilities

deplist package1 [package2] [...]

查看yum事務歷史

history [info|list|packages-list|packages-inifo|summary|addon-info|redo|undo|rollback|new|sync|stats]

安裝及升級本地程序包

localinstall rpmfile1 [rpmfile2] [...]

 (maintained for legacy reasons only - use install)

        localupdate rpmfile1 [rpmfile2] [...]

包組管理的相關命令

 * groupinstall group1 [group2] [...]
 * groupupdate group1 [group2] [...]
 * grouplist [hidden] [groupwildcard] [...]
 * groupremove group1 [group2] [...]
 * groupinfo group1 [...]

如何使用光盤當做本地yum倉庫:

(1)掛載光盤至某目錄,例如/media/cdrom

#mount -r -t iso9660 /dev/cdrom /media/cdrom

(2)創建配置文件

[Centos7]

name=

baseurl=

gpgcheck=

enabled=

yum的命令行選項:

--nogpgcheck:禁止進行gpg check

yum --nogpgcheck localinstall *.rpm -y 安裝本地rpm包,自動解決依賴關系

-y:自動回答為“yes”

-q:靜默模式;

--disablerepo=repoidglob:臨時禁用此處指定的repo

--enablerepo=repoidglob:臨時啟用此處指定的repo

--noplugins:禁用所有插件

yum的repo配置文件中可用的變量:

$releasever:當前OS的發現版的主版本號

$arch:平臺

$basearch:基礎平臺

$YUM0-$YUM9

創建yum倉庫:

createrepo [options]<directory>

程序包編譯安裝:

testapp-VERSION-release.src.rpm-->安裝后,使用rpmbuild命令制作為二進制格式的rpm包,而后再安裝

源代碼-->預處理-->編譯(gcc)-->匯編-->鏈接-->執行

源代碼組織格式:

多文件:文件中的代碼之間,很可能存在跨文件依賴關系;

C、C++:make(configure-->makefile.in-->makefile)

java:maven

編譯安裝三步驟:

./configure

(1)通過選項傳遞參數,指定啟用特性、安裝路徑;執行時會參考用戶的指定以及Makefile.in文件生成makefile;

(2)檢查依賴到的外部環境;

make

根據makefile文件,構建應用程序

make install

開發工具:

autoconf:生成configure文件

automake:生成Makefile.in

建議:安裝前參考INSTALL,README

開源程序源代碼的獲取:

官方自建站點:

apache.org

mariadb.org

代碼托管:

SourceForge

Github.com

code.google.com

c/c++:gcc(GUN C Complier)

編譯C源代碼:

前提:提供開發工具及開發環境

開發工具:make,gcc等

開發環境:開發庫,頭文件

glibc:標準庫

通過“包組”提供開發組件

CentOS 6:“Development Tool”,"Server Platform Development"

第一步:configure腳本

選項:指定安裝位置、指定啟用的特性

--help:獲取其直系使用的選項

選項分類:

安裝路徑設定

--prefix=/PATH/TO/SOMEWHERE:指定默認安裝位置:默認為/usr/local/

--sysc>System types:
Optional Features:可選特性

--disable-FEATURE

--enable-FEATURE[=ARG]

OPtional Packages:可選包

--with-PACKAGE[=ARG]

--without-PACKAGE

第二步:make

第三步:make install

安裝后的配置:

(1)導出二進制程序目錄至PATH環境變量中:

a.編輯文件/etc/profile.d/NAME.sh

export PATH=/PATH/TO/BIN:$PATH

b.修改/etc/profile文件

(2)導出庫文件路徑

默認情況下,系統會搜索庫文件的路徑/lib ,/usr/lib;要增添額外的搜索路徑

編輯/etc/ld.so.conf.d/NAME.conf

添加新的庫文件所在目錄至此文件中:

例如:/user/local/apache2/lib

讓系統重新重新生成緩存文件:

ldconfig 通知系統重新搜尋庫文件

 -v 顯示重新搜尋的過程

(3)導出頭文件

基于鏈接的方式實現:ln -sv

默認:/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)導出幫助手冊

man文件路徑:安裝在--prefix指定的目錄下的man目錄:/usr/share/man

1、編輯/etc/man.config文件

添加一個MANPATH

2、man -M /PATH/TO/MAN_DIR COMMAND

【騰訊云】云服務器、云數據庫、COS、CDN、短信等云產品特惠熱賣中

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: