Linux程序包管理的實現、rpm包管理器node
rpm命令實現程序管理c++
安裝:-ivh,--nodeps,--replacepkgs數據庫
卸載:-e,--nodepsapache
升級:-Uvh,-Fvh,--nodeps,--oldpackagecentos
查詢:,-q,-qa,-qf,-qi,-qd,-qc,-q --changlog,-q --provide,-q --requires緩存
j校驗:-V服務器
導入GPG密鑰:--import,-K,--nodigest,--nosignatureapp
數據庫重建:--inittab,--rebuilddbmaven
Linux程序包管理(2)ide
Centos: yum ,dnf
URL:統一資源配位符
yum主機,http,ftp
creatrepo
存儲了衆多rpm包,以及包的相關的元數據文件(放置於特定目錄下:repodata)
文件服務器:
ftp://
http://
nfs://
yum客戶端:
配置文件
:/etc/yum.conf :爲全部倉庫提供公共配置
/etc/yum.repos.d/*.repo :爲倉庫的指向提供配置
倉庫指向的定義:
[repositoryID]
Name:some name for this repository
Baseurl=url://path/to/repository
Enabled={1|0}
Gpgcheck={1|0}
Gpgkey=URL
Enablegroups={1|0}
Failovermethod={roundrobin|priority}默認爲:roundrobin
Keepalive
username、password
cost:1000(默認值),開銷
----------------------------------------------------------------------------------
yum [OPTIONS] [COMMAND] [PACNKAGE]
顯示倉庫列表:
repolist [all|enabled|disabled]
顯示程序包:
list
~]#yum list [all |glob_exp1] [glob_exp2] [...]
~]#yum list {available|installed|availabble} [glob_exp1] [...]
安裝程序包:
install package1 [package2] [...]
升級程序包:
update [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] [...] (已指定的關鍵字搜索程序包名及summary信息)
升降級程序包:
update [package1] [package2] [...]
downgrate package1 [package2] [...]
查看指定包所依賴的capabilities:
deplist package1 [package2] [...]
查看yum事務歷史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stat]
安裝及升級本地程序包:
localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only -use install)
localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only -use update)
包組管理的相關命令
groupinstall group1 [group2] [...]
groupupdate group1 [group2] [...]
grouplist [hidden] [groupwildcard] [...]
groupremove group1 [group2] [...]
groupinfo group1 [group2] [...]
如何使用光盤當作本地yum倉庫
1)掛載光盤至某個目錄,例如media/cdrom
~]#mount -r -t iso 9660 /dev/cdrom /media/cdrom
2)建立配置文件
{centos7}
Name=
Baseurl=
Gpgcheck=
Enabled=
yum的命令行選項:
--nogpgcheck:禁止進行gpg check
-y:自動回答爲「yes」
-q:靜默模式
--disablerepo=repoidglob:臨時禁用此處指定的repo
--enablerepo=repoidglob:臨時啓用此處指定的repo
--noplugins:禁用全部插件
yum的repo的配置文件中可用的變量
$releasever:當前OS的發行版的主版本號
$arch:平臺
$basearch:基礎平臺
¥YUM0-$YUM9
http://mirrors.mageedu.com/centos/$releasever/$basearch/os
如何建立yum倉庫
Create [OPTIONS] <directory>
程序包編譯安裝
testapp-VERSION-release.src.rpm --> 安裝後,使用rpmbuild命令製成二進制格式的rpm包,然後再安裝、
源代碼-->預處理-->編譯(gcc)-->彙編-->連接-->執行
源代碼組織格式:
多文件:文件中的代碼之間,極可能存在跨文件依賴關係
項目管理器
C/C++:make (configure-->makefile.in (模板)-->Makefile)
Java:maven
編譯安裝三步:
./configure
1)經過選項傳遞參數,指定啓用特性、安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成makfile
2)檢查依賴到的外部環境
Make :
根據Makefile文件,構建應用程序
Make install
:
開放工具:
Autoconf:生成configure腳本
automake:生成Makefile.in
建議:安裝前查看install文檔,README
開源程序源代碼的獲取:
官方自建站點;
apache.org(AFS)
Mariadb.org
代碼託管:
SourceForge
Github.com
code.google.com
c/c++:gcc(GNU C Complier)
編譯C源代碼:
前提:提供開發工具及開發環境
開發工具:make,gcc等
開發環境:開發庫,頭文件
glibc:標準庫
經過 「包組」提供開發組件
Centos6:「development tools」"server platform development"
第一步:configure腳本
選項:指定安裝位置,指定啓用的特性
--help:獲取其支持使用的選項
選項分類;
安裝路徑設定:
--prefix=/PATH/TO/SOMEWHERE:指定默認安裝位置:默認爲、/usr/local
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置
System types
Optional features:
--disable-FEATURE
--enable-feature[=ARG]
optional packages:可選包
--with-PACKAGE[=ARG]
--without-PACKAGE
Some influential environment variables
第二步:makestall
第三步:
安裝後的配置:
1)導出二進制程序目錄至 PATH環境 變量中
編輯文件、
/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
2)導出庫文件路徑
編輯/etc/ld.so.conf.d/NAME.conf
添加新的庫文件所在的目錄至此文件中;
讓系統從新生成緩存:
ldconfig [-v]
3)導出頭文件
建立連接,基於連接的方式實現
ln -sv
4)導出幫助手冊
編輯/etc/man.config文件
添加一個MANPATH