Linux系統(tǒng)下軟件安裝與管理
目前成都創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、臨城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。一、二進(jìn)制(RPM)程序包概述
1、二進(jìn)制程序包的組成部分:
二進(jìn)制文件、庫(kù)文件、配置文件、幫助文件
[root@dayi123 ~]# rpm -qpl/mnt/cdrom/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm
/etc/httpd
/etc/httpd/conf #二進(jìn)制程序包組成部分配置文件
/etc/httpd/conf.d
……
/usr/sbin/httpd #二進(jìn)制程序包組成部分二進(jìn)制文件
……
/usr/lib64/httpd/modules/mod_access_compat.so
/usr/lib64/httpd/modules/mod_actions.so #二進(jìn)制程序包組成部分庫(kù)文件
……
/usr/share/man/man8/rotatelogs.8.gz #二進(jìn)制程序包組成部分幫助文件
/usr/share/man/man8/suexec.8.gz
……
2、二進(jìn)制程序包管理器
(1)debian:deb文件, dpkg包管理器
(2)redhat: rpm文件, rpm包管理器
3、二進(jìn)制程序包的命名:
如:httpd-2.4.6-40.el7.centos.x86_64.rpm
說(shuō)明:
http:軟件包名
2.4.6:軟件版本
40:軟件編譯版本
el7.centos:適合的硬件平臺(tái)
x86_64:適合的硬件平臺(tái)
.rpm:包擴(kuò)展名
4、rpm包的分類(lèi):
1)主包:Application-VERSION-ARCH.rpm
2)開(kāi)發(fā)子包:Application-devel-VERSION-ARCH.rpm
3)其他子包:Application-utils-VERSION-ARHC.rpm
4)其他子包:Application-libs-VERSION-ARHC.rpm
如httpd包:
[root@dayi123 ~]# ls /mnt/cdrom/Packages/httpd*
/mnt/cdrom/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm
/mnt/cdrom/Packages/httpd-devel-2.4.6-40.el7.centos.x86_64.rpm
/mnt/cdrom/Packages/httpd-manual-2.4.6-40.el7.centos.noarch.rpm
/mnt/cdrom/Packages/httpd-tools-2.4.6-40.el7.centos.x86_64.rpm
5、程序包之間的依賴(lài)關(guān)系
(1)依賴(lài)關(guān)系:二進(jìn)制程序包之間一般存在的依賴(lài)關(guān)系有:樹(shù)形依賴(lài),環(huán)形依賴(lài)及模塊依賴(lài)。
(2)查看庫(kù)文件及依賴(lài)關(guān)系:
1)查看二進(jìn)制程序所依賴(lài)的庫(kù)文件:ldd /PATH/TO/BINARY_FILE
2)顯示本機(jī)已經(jīng)緩存的所有可用庫(kù)文件名及文件路徑映射關(guān)系:/sbin/ldconfig -p
3)庫(kù)文件的配置文件(如果想添加新的庫(kù)文件,可在/etc/ld.so.conf.d下新建以.conf結(jié)尾的文件,在文件中添加庫(kù)文件路勁即可):/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
4)庫(kù)文件的緩存文件:/etc/ld.so.cache
[root@dayi123 ld.so.conf.d]# ldd /bin/ls #查看二進(jìn)制程序依賴(lài)的庫(kù)文件
linux-vdso.so.1=> (0x00007ffc17f8c000)
libselinux.so.1=> /lib64/libselinux.so.1 (0x00007f91c6e60000)
libcap.so.2 =>/lib64/libcap.so.2 (0x00007f91c6c5b000)
……
[root@dayi123 ld.so.conf.d]# /sbin/ldconfig –p #查看本機(jī)緩存的可用庫(kù)文件
302 libs found in cache `/etc/ld.so.cache'
p11-kit-trust.so(libc6,x86-64) => /lib64/p11-kit-trust.so
libzzipwrap-0.so.13 (libc6,x86-64) =>/lib64/libzzipwrap-0.so.13
libzzipmmapped-0.so.13 (libc6,x86-64) =>/lib64/libzzipmmapped-0.so.13
(3)解決依賴(lài)包的管理工具:
1)yum:rpm包管理器的前端工具
2)apt-get:deb包管理器前端工具
3)zypper: suse上的rpm前端管理工具
4)dnf: Fedora 18+ rpm包管理器前端管理工具
6、程序包管理器:
(1)功能:將編譯好的應(yīng)用程序的各組成文件打包一個(gè)或幾個(gè)程序包文件,從而方便快捷地實(shí)現(xiàn)程序包的安裝、卸載、查詢(xún)、升級(jí)和校驗(yàn)等管理操作
(2)包文件組成(每個(gè)包獨(dú)有)
RPM包內(nèi)的文件、RPM的元數(shù)據(jù)(如名稱(chēng),版本,依賴(lài)性,描述等)、安裝或卸載時(shí)運(yùn)行的腳本
(3)數(shù)據(jù)庫(kù)(公共):/var/lib/rpm
包含內(nèi)容:程序包名稱(chēng)及版本、程序包之間依賴(lài)關(guān)系、程序包功能說(shuō)明、包安裝后生成的各文件路徑及校驗(yàn)碼信息
二、RPM包管理
1、包名與包全名:
(1)包全名:操作的包時(shí)沒(méi)有安裝的rpm包時(shí),要使用包全名,而且要注意路徑
(2)包名:操作已經(jīng)安裝的軟件包時(shí),使用包名,是搜索/var/lib/rpm中的數(shù)據(jù)庫(kù)
2、通過(guò)rpm進(jìn)行軟件包的安裝:
(1)安裝:rpm {-i|--install} [install-options] PACKAGE_FILE…
選項(xiàng)說(shuō)明:-i(install):安裝
-v(verbose):顯示詳細(xì)信息
-h(hash):顯示進(jìn)度
(2)常用安裝選項(xiàng)
--test:測(cè)試安裝,但不真正執(zhí)行安裝,即dry run模式
--nodeps:忽略依賴(lài)關(guān)系
--replacepkgs實(shí)現(xiàn)軟件覆蓋安裝
--replacefiles對(duì)一個(gè)已經(jīng)存在的文件進(jìn)行覆蓋安裝
--nosignature:安裝時(shí)不檢查來(lái)源合法性
--nodigest:安裝時(shí)不檢查包完整性
--noscripts:安裝時(shí)不執(zhí)行程序包腳本
#用rpm安裝軟件
[root@dayi123 ld.so.conf.d]# rpm -ivh /mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7 ################################# [100%]
#安裝完成后在此安裝時(shí)提示已安裝
[root@dayi123 ld.so.conf.d]# rpm -ivh/mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
packagetree-1.6.0-10.el7.x86_64 is already installed
#實(shí)現(xiàn)覆蓋安裝
[root@dayi123 ld.so.conf.d]# rpm -ivh /mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm
--replacepkgs
Preparing... ################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7 ################################# [100%]
[root@dayi123 ld.so.conf.d]# rpm -ivh/mnt/cdrom/Packages/php-5.4.16
-36.el7_1.x86_64.rpm
error: Failed dependencies: #部分軟件安裝時(shí)需要安裝依賴(lài)軟件
php-common(x86-64) = 5.4.16-36.el7_1 is needed byphp-5.4.16-36.el7_1.x86_64
php-cli(x86-64) = 5.4.16-36.el7_1 is needed byphp-5.4.16-36.el7_1.x86_64
3、通過(guò)rpm進(jìn)行軟件包的升級(jí)
(1)升級(jí):如果原程序包的配置文件安裝后曾被修改,升級(jí)時(shí),新版本的提供的同一個(gè)配置文件并不會(huì)直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
1)升級(jí)方法
rpm{-U|--upgrade} [install-options] PACKAGE_FILE...(即:rpm –Uvh PACKAGE_FILE)
rpm{-F|--freshen} [install-options] PACKAGE_FILE...(即:rpm–Fvh PACKAGE_FILE)
2)兩種方法的區(qū)別:
upgrade:安裝有舊版程序包,則“升級(jí)”如果不存在舊版程序包,則“安裝”
freshen:安裝有舊版程序包,則“升級(jí)”如果不存在舊版程序包,則不執(zhí)行升級(jí)操作
(2)降級(jí):--oldpackage
(3)強(qiáng)制安裝(功能等同于覆蓋安裝):--force
rpm –ivh –force PACKAGE_FILE
#更新軟件
[root@dayi123 ~]# rpm -Uvh/mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7 #################################[100%]
#強(qiáng)制安裝軟件包
[root@dayi123 ~]# rpm -ivh --force/mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7 ################################# [100%]
(4)升級(jí)內(nèi)核(Linux支持多內(nèi)核,不建議升級(jí)內(nèi)核,直接安裝新內(nèi)核即可):
[root@dayi123 Packages]# uname –r #查看當(dāng)前的系統(tǒng)版本
2.6.32-642.el6.x86_64
[root@dayi123 Packages]# rpm -ivhkernel-2.6.32-696.el6.x86_64.rpm
error: Failed dependencies: #安裝內(nèi)核時(shí)提示需要安裝依賴(lài)包
kernel-firmware >= 2.6.32-696.el6 is needed bykernel-2.6.32-696.el6.x86_64
[root@dayi123 Packages]# rpm -ivhkernel-2.6.32-696.el6.x86_64.rpm kernel-firmware
-2.6.32-696.el6.noarch.rpm #同時(shí)安裝內(nèi)核和依賴(lài)包
Preparing... ########################################### [100%]
1:kernel-firmware ########################################### [ 50%]
2:kernel ###########################################[100%]
安裝完成后重啟系統(tǒng)生效,安裝完成后配置文件/etc/grub.conf中會(huì)多一個(gè)開(kāi)機(jī)啟動(dòng)選項(xiàng),重啟系統(tǒng)時(shí),也會(huì)多一個(gè)選項(xiàng)。主要配置文件如下:
default=0 #默認(rèn)啟動(dòng)那一項(xiàng)
timeout=5 #開(kāi)機(jī)時(shí)grub等待時(shí)間
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-696.el6.x86_64) #第0個(gè)啟動(dòng)項(xiàng)
root(hd0,0)
kernel/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=68b0f8ab-7ccc-4fc4-8bbc-a9
92f91e9847 rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MDSYSFONT=latarcyrheb
-sun16 c
rashkernel=auto KEYBOARDTYPE=pcKEYTABLE=us rd_NO_DM rhgb quiet
initrd/initramfs-2.6.32-696.el6.x86_64.img
title CentOS 6 (2.6.32-642.el6.x86_64) #第一個(gè)啟動(dòng)項(xiàng)
root(hd0,0)
kernel/vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=68b0f8ab-7ccc-4fc4-8bbc-a9
92f91e9847 rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MDSYSFONT=latarcyrheb
-sun16 c
4、通過(guò)rpm軟件包的查詢(xún)
(1)查詢(xún)命令:rpm {-q|--query} [select-options] [query-options]
(2)[select-options]
-a:所有包
-f:查看指定的文件由哪個(gè)程序包安裝生成
-p rpmfile:針對(duì)尚未安裝的程序包文件做查詢(xún)操作
--whatprovides:查詢(xún)指定的CAPABILITY(能力)由哪個(gè)包所提供
--whatrequires:查詢(xún)指定的CAPABILITY(能力)被哪個(gè)包所依賴(lài)
[root@dayi123 ~]# rpm -qf /bin/ls #查詢(xún)ls命令有哪個(gè)軟件包生成
coreutils-8.4-43.el6.x86_64
#查詢(xún)未安裝的軟件包的信息
[root@dayi123 ~]# rpm -qp/mnt/cdrom/Packages/php-5.3.3-49.el6.x86_64.rpm
php-5.3.3-49.el6.x86_64
#查詢(xún)bash所提供的能力被那些包所依賴(lài)
[root@dayi123 ~]# rpm -q --whatrequires /bin/bash
glibc-common-2.12-1.192.el6.x86_64
nss-softokn-freebl-3.14.3-23.el6_7.x86_64
groff-1.18.1.4-21.el6.x86_64
……
(3)[query-options]
--changelog:查詢(xún)r(jià)pm包的changelog
-c:查詢(xún)程序的配置文件
-d:查詢(xún)程序的文檔
-i:查詢(xún)軟件包信息
-l:查看指定的程序包安裝后生成的所有文件
--scripts:程序包自帶的腳本
--provides:列出指定程序包所提供的CAPABILITY
-R:查詢(xún)指定的程序包所依賴(lài)的CAPABILITY
#查看php安裝完成后生成的所有配置文件
[root@dayi123 ~]# rpm -qpl/mnt/cdrom/Packages/php-5.3.3-49.el6.x86_64.rpm
/etc/httpd/conf.d/php.conf
/usr/lib64/httpd/modules/libphp5.so
/var/lib/php/session
/var/www/icons/php.gif
#查詢(xún)已安裝的軟件包信息(只能查詢(xún)到通過(guò)rpm安裝的軟件包信息)
[root@dayi123 Packages]# rpm -qi tree
Name :tree Relocations:(not relocatable)
Version :1.5.3 Vendor: CentOS
Release :3.el6 Build Date:Wed 14 Jan 2015 08:21:02 PM
……
#查詢(xún)未安裝的軟件包的信息
[root@dayi123 ~]# rpm -qpi/mnt/cdrom/Packages/net-tools-1.60-114.el6.x86_64.rpm
Name :net-tools Relocations: (not relocatable)
Version :1.60 Vendor:CentOS
Release :114.el6 Build Date:Wed 22 Mar 2017 07:52:14
……
#查看vim的配置文件的信息
[root@dayi123 ~]# rpm -qc vim-common--5.el6_8.1.x86_64.rpm
/etc/vimrc
#查詢(xún)?yōu)榘惭b的軟件的配置信息
[root@dayi123 cdrom]# rpm -qpc/mnt/cdrom/Packages/php-5.3.3-49.el6.x86_64.rpm
/etc/httpd/conf.d/php.conf
[root@dayi123 cdrom]# rpm -qR tree #查詢(xún)已安裝的軟件包的依賴(lài)性
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
#查詢(xún)?yōu)榘惭b的軟件包的依賴(lài)性
[root@dayi123 cdrom]# rpm -qpR/mnt/cdrom/Packages/java-1.5.0-gcj-1.5.0.0
-29.1.el6.x86_64.rpm
……
/usr/bin/gij
/usr/bin/rebuild-gcj-db
/usr/bin/rebuild-gcj-db
/usr/lib64/security/classpath.security
……
5、rpm包校驗(yàn)
(1)校驗(yàn)方法:rpm –V 已安裝的包名
rpm –V指定RPM包中的文件
(2)校驗(yàn)的信息說(shuō)明:
1)S:文件大小是否改變
2)M:文件的類(lèi)型或文件的權(quán)限是否改變
3)5:md5校驗(yàn)和是否發(fā)生改變(即判斷文件內(nèi)容是否發(fā)生改變)
4)D:設(shè)備中的從代碼是否發(fā)生改變
5)L:文件路徑是否改變
6)U:文件的屬主是否發(fā)生改變
7)G:文件的屬組是否發(fā)生改變
8)T:文件的修改時(shí)間是否發(fā)生改變
[root@dayi123 cdrom]# rpm -V vim-common #校驗(yàn)vim包的信息
S.5...... c/etc/vimrc #大小和md5值發(fā)生改變
S.5...... c/etc/vimrc
6、rpm包中文件提取
(1)用法:rpm2cpio 包全名 | cpio -idv .文件絕對(duì)路徑
說(shuō)明:rpm2cpio:將rpm轉(zhuǎn)化為cpio格式的命令
cpio:穿件軟件檔案文件和從檔案文件中提取文件
(2)cpio選項(xiàng)說(shuō)明:
-i:還原
-d:還原時(shí)自動(dòng)新建目錄
-v:顯示還原過(guò)程
(3)刪除/bin/ls命令并進(jìn)行還原
[root@dayi123 Packages]# rpm -qf /bin/ls #查看/bin/ls屬于哪個(gè)軟件包
coreutils-8.4-43.el6.x86_64
[root@dayi123 Packages]# mv /bin/ls /tmp/ #將/bin/ls移走
[root@dayi123 Packages]# ls #ls命令不能正常使用
-bash: ls: command not found [root@dayi123 ~]# rpm2cpio/mnt/cdrom/Packages/coreutils
-8.4-46.el6.x86_64.rpm | cpio -idv ./bin/ls #提取ls命令到當(dāng)前的/bin/ls目錄下
./bin/ls
25240 blocks
[root@dayi123 ~]# cp ./bin/ls /bin/ #將當(dāng)前目錄ls命令復(fù)制到/bin/ls下
[root@dayi123 ~]# ll #ls命令可以正常使用
total 116
-rw-r--r--. 1 root root 3944 Apr 2 22:12 1.txt.Z
-rw-------. 1 root root 1057 Mar 30 16:07 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Apr 17 22:16 bin
7、rpm包中文件提取
(1)數(shù)據(jù)庫(kù)目錄:/var/lib/rpm
(2)數(shù)據(jù)庫(kù)初始化:
rpm{--initdb|--rebuilddb}:如果事先不存在數(shù)據(jù)庫(kù),則新建之,否則,不執(zhí)行任何操作。
rebuilddb:重建已安裝的包頭的數(shù)據(jù)庫(kù)索引目錄
三、YUM
1、yum概述
(1)作用:
1)可解決軟件包相關(guān)依賴(lài)性,可在多個(gè)庫(kù)之間定位軟件包
2)存儲(chǔ)了眾多rpm包,以及包的相關(guān)的元數(shù)據(jù)文件(放置于特定目錄repodata下)
(2)yum支持的文件服務(wù)器:ftp://,http://,file://
2、yum配置文件
(1)yum配置文件:
/etc/yum.conf:為所有倉(cāng)庫(kù)提供公共配置
/etc/yum.repos.d/*.repo:為倉(cāng)庫(kù)的指向提供配置
(2)yum配置文件中可用的變量:
$releasever:當(dāng)前OS的發(fā)行版的主版本號(hào)
$arch:平臺(tái),i386,i486,i586,x86_64等
$basearch:基礎(chǔ)平臺(tái);i386, x86_64
$YUM0-$YUM9:自定義變量
(3)自建yum配置文件:
需要將/etc/yum.repos.d/下所有文件注釋或刪除,自己新建”*.repo”yum配置文件,配置及說(shuō)明如下
[centos7] #進(jìn)行rpm包數(shù)字驗(yàn)證
name=CentOS-$releasever – Plus #容器的名稱(chēng)說(shuō)明
baseurl=http://172.18.0.1/cobbler/ks_mirror/$releasever/ #配置yum源地址
http://mirrors.aliyun.com/repo/ #可以指定多個(gè)yum源地址
gpgcheck=0 #是否對(duì)軟件包進(jìn)行數(shù)字簽名驗(yàn)證,是0則不驗(yàn)證,1則需要驗(yàn)證
#gpgcheck=1時(shí),需要制定公鑰地址
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1 #啟用yum倉(cāng)庫(kù)
[epel] #配置擴(kuò)展的yum倉(cāng)庫(kù)
baseurl=http://172.18.0.1/fedora-epel/$releasever/$arch/
gpgcheck=0
enabled=1
(4)配置本地光盤(pán)yum源
1)掛載光盤(pán)到指定目錄(或不掛載,自動(dòng)讓光盤(pán)掛載到/misc/cd目錄下,centos7下需要安裝”autofs”軟件,在使用光盤(pán)文件時(shí)自動(dòng)會(huì)將光盤(pán)掛載到/misc/cd目錄下)
[root@dayi123 cd]$yum install autofs –y #centos7安裝autofs軟件
[root@dayi123 cd]$systemctl start autofs #啟動(dòng)autofs軟件
[root@dayi123 cd]$systemctl enable autofs #設(shè)置autofs自啟動(dòng)
Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service
to /usr/lib/systemd/system/autofs.service.
[root@dayi123 cd]$cd /misc/cd #進(jìn)入/misc/cd目錄
[root@dayi123 cd]$df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 3.8G 14G 22% /
/dev/sda1 497M 118M 379M 24% /boot
tmpfs 98M 36K 98M 1% /run/user/1020
/dev/sr0 7.3G 7.3G 0 100% /misc/cd #當(dāng)使用光盤(pán)是自動(dòng)掛載到此目錄下
……
2)配置光盤(pán)yum源,
[root@dayi123 yum.repos.d]$cat test.repo #光盤(pán)yum源配置文件
[centosCD]
name=centos7
baseurl=file:///misc/cd
gpgcheck=1
gpgkey=file:////misc/cd/RPM-GPG-KEY-CentOS-7
[root@dayi123 yum.repos.d]$yum repolist #查看可用yum源
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
centosCD centos7_cdrom 9,007
repolist: 9,007
(5)國(guó)內(nèi)常用的yum地址:
阿里云:https://mirrors.aliyun.com/centos/$releasever/os/x86_64/S
阿里云(epel):https://mirrors.aliyun.com/epel/$releasever/x86_64
也可以將自己yum注釋掉,使用wget下載國(guó)內(nèi)yum源repo文件:
常用yum源repo文件地址:
網(wǎng)易yum源:
修改“vi /etc/yum/pluginconf.d/fastestmirror.conf” and set “enable=0″
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo wget http://mirrors.163.com/.help/CentOS
-Base-163.repo
yum makecache //生成緩存
搜狐yum地址:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
阿里yum源:
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
3、用命令生成.repo文件
(1)生成:yum-config-manager --add-repo=http://172.16.0.1/cobbler/ks_mirror/7/
(2)啟用與關(guān)閉yum倉(cāng)庫(kù):
禁用倉(cāng)庫(kù):yum-config-manager --disable “倉(cāng)庫(kù)名"
啟用倉(cāng)庫(kù):yum-config-manager --enable “倉(cāng)庫(kù)名”
備注:如果yum-config-manager命令不能使用,則需要安裝yum-utils包,即:yum –y install yum-utils
[root@dayi123 ~]# yum-config-manager--add-repo=http://172.16.0.1/cobbler/ks_mirror/7/
Loaded plugins: fastestmirror #生成yum源
adding repo from: http://172.16.0.1/cobbler/ks_mirror/7/
[172.16.0.1_cobbler_ks_mirror_7_]
name=added from: http://172.16.0.1/cobbler/ks_mirror/7/
baseurl=http://172.16.0.1/cobbler/ks_mirror/7/
enabled=1
[root@dayi123 ~]# yum-config-manager --disable centos7 #關(guān)閉名名稱(chēng)為centos的源
Loaded plugins: fastestmirror
repo:centos7 ============================================
[centos7]
……
[root@dayi123 ~]# yum repolist all #查看所有的yum源列表
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
172.16.0.1_cobbler_ks_mirror_7_ added from: http://172.16.0.1/cobbler/ks_mirror/7
/ enabled: 9,007 #剛生成的yum源
centos7/7 centos7 disabled
!epel/7 centosepel enabled: 11,349
repolist: 20,356
4、yum命令:
(1)yum命令用法:
yum [options] [command] [package ...]
(2)常用的yum命令:
1)顯示倉(cāng)庫(kù)列表:yum repolist [all|enabled|disabled]
[root@dayi123 ~]# yum repolist #只顯示可用的yum倉(cāng)庫(kù)列表
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
172.16.0.1_cobbler_ks_mirror_7_ added from:http://172.16.0.1/cobbler/ks_mirr 9,007
!epel/7 centosepel 11,349
repolist: 20,356
2)顯示程序包:
yumlist
yumlist [all | glob_exp1] [glob_exp2] [...]
yumlist {available|installed|updates} [glob_exp1] [...]
3)安裝程序包:
yuminstall package1 [package2] [...]
yumreinstall package1 [package2] [...] (重新安裝)
[root@dayi123 ~]# yum install remove telnet #同時(shí)安裝多個(gè)程序包
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
……
[root@dayi123 ~]# yum install telnet vim #重新安裝程序包
Loaded plugins: fastestmirror
……
4)升級(jí)程序包:
yumupdate [package1] [package2] [...]
yumdowngrade package1 [package2] [...] (降級(jí))
5)檢查那些程序包可以升級(jí):
yumcheck-update
6)卸載程序包:
yumremove | erase package1 [package2] [...]
(3)yum命令的查看功能:
1)yum info [包名] 查看程序信息
2)查看指定的特性(可以是某文件)是由哪個(gè)程序包所提供:
yumprovides | whatprovides [feature1]……
3)清理本地緩存(清除的是/var/cache/yum/$basearch/$releasever緩存):
yumclean all
構(gòu)建緩存:yum makecache
[root@dayi123 ~]# yum clean all #清理所有的緩存
Loaded plugins: fastestmirror
Cleaning repos: centos7 epel
Cleaning up everything
Cleaning up list of fastest mirrors
[root@dayi123 ~]# ll -dh /var/cache/yum/x86_64/7/ #查看清理后緩存大小
drwxr-xr-x. 9 root root 4.0K Apr 15 13:07/var/cache/yum/x86_64/7/
4)以指定的關(guān)鍵字搜索程序包名及命令所在的包
[root@dayi123 yum.repos.d]# yum search ifconfig #查看ifconfg屬于哪個(gè)包
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
……
moreutils.x86_64 : Additional unix utilities
net-tools.x86_64 : Basic networking tools
python-psutil.x86_64 : A process and system utilitiesmodule for Python
5)查看指定包所依賴(lài)的capabilities:
[root@dayi123 yum.repos.d]# yum deplist net-tools #查看net-tools包所依賴(lài)的功能
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
package: net-tools.x86_64 2.0-0.17.20131004git.el7
dependency:/bin/sh
provider:bash.x86_64 4.2.46-19.el7
dependency:libc.so.6(GLIBC_2.14)(64bit)
provider:glibc.x86_64 2.17-105.el7
6)查看yum事務(wù)歷史:
yumhistory [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yumhistory
yumhistory info 6
yumhistory undo 6
[root@dayi123 yum.repos.d]# yum history #查看yum安裝歷史記錄
Loaded plugins: fastestmirror
ID | Commandline | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
23 | reinstallvim | 2017-04-15 12:49 |Reinstall | 1
22 | removetelnet | 2017-04-15 12:48 |Erase | 1
21 | -y install yum-utils | 2017-04-15 12:31 | Install | 3
……
[root@dayi123 yum.repos.d]# yum history info 23 #查看yum23歷史記錄中安裝信息
Loaded plugins: fastestmirror
Transaction ID : 23
Begin time :Sat Apr 15 12:49:42 2017
Begin rpmdb :478:4a514a26dbb81641679e760948d0b5dfb41560ec
End time : 12:49:43 2017 (1seconds)
#撤銷(xiāo)歷史記錄中第六條操作(即卸載第六條記錄中安裝的軟件)
[root@dayi123 yum.repos.d]# yum history undo 6
Loaded plugins: fastestmirror
Undoing transaction 6, from Wed Mar 29 11:46:39 2017
Install nano-2.3.1-10.el7.x86_64@c7-media
[root@dayi123 yum.repos.d]# yum history undo 24 #撤銷(xiāo)剛才操作,即安裝該軟件
Loaded plugins: fastestmirror
Undoing transaction 24, from Sat Apr 15 13:34:03 2017
Erasenano-2.3.1-10.el7.x86_64 @c7-media
7)yum日志文件:/var/log/yum.log
5、yum包組管理命令
(1)查看組:yum grouplist [hidden] [groupwildcard] [...]
[root@dayi123 yum.repos.d]# yum grouplist #查看yum組列表
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Available Environment Groups:
Minimal Install
Compute Node
(2)安裝組包:yum groupinstall group1 [group2] [...]
(3)更新組包:yum groupupdate group1 [group2] [...]
(4)刪除組包:yum groupremove group1 [group2] [...]
(5)查看組信息yum groupinfo group1 [...]
Centos7.2最小化安裝后安裝桌面:
[root@dayi123 yum.repos.d]# history
1047 yummakecache #新建緩存
1048 yumgrouplist #查看可用的包組
1049 yumgroupinstall "GNOME Desktop" #安裝桌面
#建立鏈接文件,開(kāi)機(jī)自動(dòng)啟動(dòng)桌面
1050 ln -sf/lib/systemd/system/graphical.target /etc/systemd/system/default.target
[root@dayi123 yum.repos.d]# reboot #重啟系統(tǒng),即可進(jìn)入桌面
6、yum的命令行選項(xiàng):
(1)--nogpgcheck:禁止進(jìn)行g(shù)pgcheck,即安裝不進(jìn)行軟件包的校驗(yàn)
(2)-y: 自動(dòng)回答為“yes”,不用輸入“y”確認(rèn)
(3)-q:靜默模式,安裝時(shí)沒(méi)有輸出
(4)--disablerepo=repoidglob:臨時(shí)禁用此處指定的repo
(5)--enablerepo=repoidglob:臨時(shí)啟用此處指定的repo
(7)--noplugins:禁用所有插件
7、搭建yum倉(cāng)庫(kù)
有些時(shí)候,使用網(wǎng)絡(luò)yum源或者光盤(pán)yum不方便,或者要使用yum安裝自己制作的rpm包,此時(shí),可以自己搭建yum源,將需要的軟件放入yum倉(cāng)庫(kù)中。
(1)安裝前準(zhǔn)備工作:
1)安裝vsftpd軟件(fpt服務(wù)端軟件)
CentOS7中:
[root@dayi123 ~]$yum install vsftpd –y #安裝vsftpd軟件
Loaded plugins: fastestmirror, langpacks
……
[root@dayi123 ~]$systemctl start vsftpd #啟動(dòng)vsftpd
[root@dayi123 ~]$systemctl enable vsftpd #設(shè)置vsftpd開(kāi)機(jī)自啟動(dòng)
CentOS6中:
[root@dayi123 ~]$yum install vsftpd –y
[root@dayi123 ~]$/etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@dayi123 ~]$chkconfig vsftpd on
2)關(guān)閉防火墻(為了能夠訪(fǎng)問(wèn)防火墻服務(wù),需要在iptables中添加規(guī)則或關(guān)閉iptables)
CentOS7中:
[root@dayi123 ~]$systemctl stop firewalld
[root@dayi123 ~]$systemctl disable firewalld
CentOS6中:
[root@dayi123 ~]$/etc/init.d/iptables stop
[root@dayi123 ~]$chkconfig iptables off
3)安裝完成并關(guān)閉防火墻后可通過(guò)網(wǎng)頁(yè)測(cè)試ftp,能正常打開(kāi),則表示ftp服務(wù)搭建成功(如下圖所示)
(2)配置yum源
1)配置yum倉(cāng)庫(kù)
Vsftpd安裝成功之后,會(huì)自動(dòng)在創(chuàng)建目錄/var/ftp/pub目錄用于存放fpt共享文件,我們還需要在此目錄下創(chuàng)建存放rpm包的目錄及repodate文件,然后將需要的包拷貝到y(tǒng)um倉(cāng)庫(kù)中即可
[root@dayi123 ~]$mkdir /var/ftp/pub/CentOS7 –p #創(chuàng)建存yum倉(cāng)庫(kù)目錄
[root@dayi123 ~]$mkdir /var/ftp/pub/CentOS7/Packages #常見(jiàn)用于存放rpm包的目錄
#拷貝rpm文件到y(tǒng)um倉(cāng)庫(kù)中
[root@dayi123 ~]$cp /mnt/cdrom/java.* /var/ftp/pub/CentOS7/Packages/
[root@dayi123 ~]$createrepo /var/ftp/pub/CentOS7/ #生成repodate文件
Spawning worker 0 with 43 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@dayi123 ~]$ll /var/ftp/pub/CentOS7/
total 4
drwxr-xr-x. 2 root root 4096 Apr 19 07:48 repodata
2)在客戶(hù)端配置yum源:
[root@dayi123 ~]$cat /etc/yum.repos.d/test.repo #客戶(hù)端配置文件
[centos7.2]
name=centos7.2
baseurl=ftp://172.16.250.102/pub/CentOS7/
gpgcheck=1
gpgkey=file:////misc/cd/RPM-GPG-KEY-CentOS-7
[root@dayi123 ~]$yum repolist #查看生成yum源信息
Loaded plugins: fastestmirror, langpacks
Repository 'app' is missing name in configuration, usingid
Loading mirror speeds from cached hostfile
repo id repo name status
centos7.2 centos7.2 43
repolist: 43
四、編譯安裝軟件(以安裝httpd服務(wù)為例)
1、編譯安裝前準(zhǔn)備工作:
(1)安裝gcc、及Development and Creative Workstation(cnetos6為Development tools)等編譯環(huán)境
(2)去相應(yīng)官方網(wǎng)站下載源碼包到指定目錄并解壓。
[root@dayi123 Package]$cd /data/Package
[root@dayi123 Package]$ wget http://apache.fayea.com//httpd/httpd-2.2.32.tar.bz2
[root@dayi123 Package]$tar -xvf httpd-2.2.32.tar.bz2
[root@dayi123 Package]$cd httpd-2.2.32
[root@dayi123 httpd-2.2.32]$ls
ABOUT_APACHE CMakeLists.txt INSTALL NWGNUmakefile
acinclude.m4 config.layout InstallBin.dsp os
Apache-apr2.dsw configure LAYOUT README
Apache.dsw configure.in libhttpd.dep READMENaNake
apache_probes.d docs libhttpd.dsp README.platforms
ap.d emacs-style libhttpd.mak ROADMAP
build httpd.dep LICENSE server
BuildAll.dsp httpd.dsp Makefile.in srclib
BuildBin.dsp httpd.mak Makefile.win support
buildconf httpd.spec modules test
CHANGES include NOTICE VERSIONING
注:在編譯安裝前需要查看INSTALL和README文件,里面有安裝信息
2、編譯安裝
(1)在軟件解壓目錄下執(zhí)行:./configure
執(zhí)行./configure時(shí)有很多選項(xiàng),可通過(guò)./configure –help查看,常用的選項(xiàng)有:
--prefix=/PATH:指定默認(rèn)安裝位置,默認(rèn)為/usr/local/
--sysconfdir=/PATH:配置文件安裝位置
System types:支持交叉編譯
執(zhí)行./configure的作用:
1)通過(guò)選項(xiàng)傳遞參數(shù),指定啟用特性、安裝路徑等;執(zhí)行時(shí)會(huì)參考用戶(hù)的指定以及makefile.in文件生成makefile
2)檢查依賴(lài)到的外部環(huán)境,如依賴(lài)的軟件包
[root@dayi123 httpd-2.2.32]$./configure –help #查看選項(xiàng)及幫助信息
`configure' configures this package to adapt to manykinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...),specify them as
VAR=VALUE. Seebelow for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to thispackage
--help=recursive display theshort help of all the included packages
-V,--version display versioninformation and exit
-q, --quiet,--silent do not print `checking ...'messages
#執(zhí)行./configure
[root@dayi123 httpd-2.2.32]$./configure --prefix=/data/httpd --sysconfdir=/etc/httpd
checking for chosen layout... Apache
checking for working mkdir -p... yes
……
注:在執(zhí)行的過(guò)程中,某些依賴(lài)包沒(méi)有安裝會(huì)報(bào)錯(cuò),需要通過(guò)yum安裝后再執(zhí)行./configure
checking for APR... no
configure: error: APR not found. Please read the documentation.
#提示沒(méi)有ARP
[root@dayi123 httpd-2.2.32]$yum search apr
#可通過(guò)yum查看apr屬于哪個(gè)包,一般為提示的信息-devel包
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
apr-devel.i686 : APR library development kit
apr-devel.x86_64 : APR library development kit
……
[root@dayi123 httpd-2.2.32]$yum install apr-util-devel –y #安裝apr-util-devel包
#安裝完成后繼續(xù)
[root@dayi123 httpd-2.2.32]$./configure --prefix=/data/httpd --sysconfdir=/etc/httpd
(2)執(zhí)行make
作用:根據(jù)makefile文件,構(gòu)建應(yīng)用程序
(3)執(zhí)行make install
作用:復(fù)制文件到相應(yīng)的路勁
[root@dayi123 httpd-2.2.32]$make install #執(zhí)行make install
Making install in srclib
make[1]: Entering directory`/data/Package/httpd-2.2.32/srclib'
Making install in pcre
make[2]: Entering directory`/data/Package/httpd-2.2.32/srclib/pcre'
#執(zhí)行make install完成后會(huì)在指定的目錄生成相應(yīng)的文件
[root@dayi123 httpd-2.2.32]$ls /data/httpd/ /etc/httpd/
/data/httpd/:
bin build cgi-bin error htdocs icons include logs man manual modules
/etc/httpd/:
extra httpd.conf magic mime.types original
3、安裝編譯完成后的操作
(1)二進(jìn)制程序目錄導(dǎo)入至PATH環(huán)境變量中:
編輯文件/etc/profile.d/NAME.sh加入exportPATH=/PATH/TO/BIN:$PATH
[root@dayi123 ~]$cat /etc/profile.d/httpd.sh #在PATH變量中增加httpd啟動(dòng)路徑
export PATH=$PATH:/data/httpd/bin/
[root@dayi123 ~]$. /etc/profile.d/httpd.sh #使配置生效
[root@dayi123 ~]$apachectl start #啟動(dòng)httpd服務(wù)
(2)導(dǎo)入庫(kù)文件路徑
編輯/etc/ld.so.conf.d/NAME.conf,添加新的庫(kù)文件所在目錄至此文件中
讓系統(tǒng)重新生成緩存:ldconfig[-v]
(3)導(dǎo)入幫助手冊(cè)
編輯/etc/man.config|man_db.conf文件,添加一個(gè)MANPATH
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站欄目:Linux系統(tǒng)下軟件安裝與管理-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://m.rwnh.cn/article10/ddsddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、建站公司、搜索引擎優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、定制網(wǎng)站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容