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,意為隨機挑選;
cost=
默認為1000
yum命令的用法:
yum [options] [command] [package …]
check 檢查 RPM 數據庫問題
check-update 檢查是否有可用的軟件包更新
clean 刪除緩存數據
deplist 列出軟件包的依賴關系
distribution-synchronization 已同步軟件包到最新可用版本
downgrade 降級軟件包
erase 從系統中移除一個或多個軟件包
fs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots.
groups 顯示或使用、組信息
help 顯示用法提示
history 顯示或使用事務歷史
info 顯示關于軟件包或組的詳細信息
install 向系統中安裝一個或多個軟件包
list 列出一個或一組軟件包
load-transaction 從文件名中加載一個已存事務
makecache 創建元數據緩存
provides 查找提供指定內容的軟件包
reinstall 覆蓋安裝軟件包
repo-pkgs 將一個源當作一個軟件包組,這樣我們就可以一次性安裝/移除全部軟件包。
repolist 顯示已配置的源
search 在軟件包詳細信息中搜索指定字符串
shell 運行交互式的 yum shell
swap Simple way to swap packages, instead of using shell
update 更新系統中的一個或多個軟件包
update-minimal Works like upgrade, but goes to the ‘newest’ package match which fixes a problem that affects your system
updateinfo Acts on repository update information
upgrade 更新軟件包同時考慮軟件包取代關系
version 顯示機器和/或可用的源版本。
* check
* help [command]
顯示倉庫列表:
repolist [all|enabled|disabled]
顯示程序包:
list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1] […]
例一:顯示程序可安裝的程序包
[root@localhost ~]# yum list php* 已加載插件:fastestmirror file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml" 正在嘗試其它鏡像。 Loading mirror speeds from cached hostfile 可安裝的軟件包 php.x86_64 5.4.16-42.el7 test php-bcmath.x86_64 5.4.16-42.el7 test php-cli.x86_64 5.4.16-42.el7 test php-common.x86_64 5.4.16-42.el7
安裝程序包:
install package1 [package2] […]
例一:安裝程序包
[root@localhost ~]# yum install php-common
reinstall package1 [package2] [...] (重新安裝)升級程序包:
update [package1] [package2] […]
downgrade package1 [package2] […] (降級)
檢查可用升級:
check-update
卸載程序包:
remove | erase package1 [package2] […]
查看程序包information:
info […]
例一:查看程序包信息
[root@localhost ~]# yum info gcc 已加載插件:fastestmirror file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml" 正在嘗試其它鏡像。 Loading mirror speeds from cached hostfile 可安裝的軟件包 名稱 :gcc 架構 :x86_64 版本 :4.8.5 發布 :11.el7 大小 :16 M 源 :test 簡介 : Various compilers (C, C++, Objective-C, Java, ...) 網址 :http://gcc.gnu.org 協議 : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD 描述 : The gcc package contains the GNU Compiler Collection version 4.8. : You'll need this package in order to compile C code.
查看指定的特性(可以是某文件)是由哪個程序包所提供:
provides | whatprovides feature1 [feature2] […]
例一:查看特性
[root@localhost ~]# yum provides gcc 已加載插件:fastestmirror file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml" 正在嘗試其它鏡像。 Loading mirror speeds from cached hostfile gcc-4.8.5-11.el7.x86_64 : Various compilers (C, C++, Objective-C, Java, ...) 源 :tes
清理本地緩存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
例一:清理本地緩存 ,記得清除Yum源
[root@localhost yum.repos.d]# yum clean all
構建緩存:
makecache
搜索:
search string1 [string2] […]
以指定的關鍵字搜索程序包名及summary信息;
例一:搜索summary
[root@localhost ~]# yum search bash 已加載插件:fastestmirror file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml" 正在嘗試其它鏡像。 Loading mirror speeds from cached hostfile ================================================= N/S matched: bash ================================================== bash-completion.noarch : Programmable completion for Bash bash-doc.x86_64 : Documentation files for bash libguestfs-bash-completion.noarch : Bash tab-completion scripts for libguestfs tools pcp-pmda-bash.x86_64 : Performance Co-Pilot (PCP) metrics for the Bash shell bash.x86_64 : The GNU Bourne Again shell
查看指定包所依賴的capabilities:
deplist package1 [package2] […]
例一:依賴那些包
[root@localhost ~]# yum deplist gcc 已加載插件:fastestmirror file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml" 正在嘗試其它鏡像。 Loading mirror speeds from cached hostfil 軟件包:gcc.x86_64 4.8.5-11.el7 依賴:/bin/sh provider: bash.x86_64 4.2.46-20.el7_2 依賴:/sbin/install-info provider: info.x86_64 5.1-4.el7 依賴:binutils >= 2.20.51.0.2-12 provider: binutils.x86_64 2.25.1-22.base.el7 依賴:cpp = 4.8.5-11.el7 provider: cpp.x86_64 4.8.5-11.el7 依賴:glibc-devel >= 2.2.90-12 provider: glibc-devel.x86_64 2.17-157.el7 provider: glibc-devel.i686 2.17-157.el7 依賴:ld-linux-x86-64.so.2()(64bit) provider: glibc.x86_64 2.17-157.el7
查看yum事務歷史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
例一:查看yum事務歷史:
[root@localhost ~]# yum history 已加載插件:fastestmirror ID | 登錄用戶 | 日期和時間 | 操作 | 變更數 ------------------------------------------------------------------------------- 3 | root <root> | 2017-05-06 12:56 | Install | 31 2 | root <root> | 2017-05-06 12:56 | Install | 1 1 | 系統 <空> | 2017-05-05 06:23 | Install | 357
警告:RPM 數據庫已被非 yum 程序修改。
安裝及升級本地程序包:
* 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 […]
例一:查看那些可以批量安裝那些包
[root@localhost yum.repos.d]# yum grouplist 已加載插件:fastestmirror 沒有安裝組信息文件 Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile 可用的環境分組: 最小安裝 基礎設施服務器 計算節點 文件及打印服務器 基本網頁服務器 虛擬化主機 帶 GUI 的服務器 GNOME 桌面 KDE Plasma Workspaces 開發及生成工作站 可用組: 傳統 UNIX 兼容性
如何使用光盤當作本地yum倉庫:
(1) 掛載光盤至某目錄,例如/media/cdrom
# mount -r -t iso9660 /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.magedu.com/centos/$releasever/$basearch/os
創建yum倉庫:
createrepo [options] <directory>
例一:建立yum倉庫
[root@localhost yum.repos.d]# yum install createrepo 已加載插件:fastestmirror Loading mirror speeds from cached hostfile 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 createrepo.noarch.0.0.9.9-26.el7 將被 安裝 --> 正在處理依賴關系 python-deltarpm,它被軟件包 createrepo-0.9.9-26.el7.noarch 需要 --> 正在處理依賴關系 libxml2-python,它被軟件包 createrepo-0.9.9-26.el7.noarch 需要 --> 正在處理依賴關系 deltarpm,它被軟件包 createrepo-0.9.9-26.el7.noarch 需要 --> 正在檢查事務 ---> 軟件包 deltarpm.x86_64.0.3.6-3.el7 將被 安裝 ---> 軟件包 libxml2-python.x86_64.0.2.9.1-6.el7_2.3 將被 安裝 ---> 軟件包 python-deltarpm.x86_64.0.3.6-3.el7 將被 安裝 --> 解決依賴關系完成 依賴關系解決
程序包編譯安裝:
testapp-VERSION-release.src.rpm –> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝;
源代碼 –> 預處理 –> 編譯(gcc) –> 匯編 –> 鏈接 –> 執行
源代碼組織格式:
多文件:文件中的代碼之間,很可能存在跨文件依賴關系;
C、C++: make (configure –> Makefile.in –> makefile)
java: maven
C代碼編譯安裝三步驟:
./configure:
(1) 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成makefile;
(2) 檢查依賴到的外部環境;
make:
根據makefile文件,構建應用程序;
(3)make install
開發工具:
autoconf: 生成configure腳本
automake:生成Makefile.in
建議:安裝前查看INSTALL,README
開源程序源代碼的獲?。?/strong>
官方自建站點:
apache.org (ASF)
mariadb.org
…
代碼托管:
SourceForge
Github.com
code.google.com
c/c++: gcc (GNU C Complier)
編譯C源代碼:
前提:提供開發工具及開發環境
開發工具:make, gcc等
開發環境:開發庫,頭文件
glibc:標準庫
通過“包組”提供開發組件
CentOS 6: “Development Tools”, “Server Platform Development”,
第一步:configure腳本
選項:指定安裝位置、指定啟用的特性
–help: 獲取其支持使用的選項
選項分類:
安裝路徑設定:
–prefix=/PATH/TO/SOMEWHERE: 指定默認安裝位置;默認為/usr/local/
–sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置;
例一:指定configure腳本位置
[root@localhost apache2]#./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2
System types:
Optional Features: 可選特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可選包
–with-PACKAGE[=ARG]
–without-PACKAGE
第二步:make
[root@localhost apache2]# make
第三步:make install
[root@localhost apache2]# make install
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/76803