1. 程式人生 > >yum更換國內源、利用yum下載rpm包以及源碼包安裝

yum更換國內源、利用yum下載rpm包以及源碼包安裝

國內源 yum下載rpm包 安裝源碼包

有時候我們自帶的yum源不太好用,這是因為這個源主要都是國外的網站資源,這回給我們帶來一些麻煩,所以可以將yum源更換成國內的源。

首先,把之前備份的文件都恢復,刪除本地的dvd庫
[root@localhost yum.repos.d]# \rm dvd.repo
然後將剛才拷貝的文件在拷貝回去
[root@localhost yum.repos.d]# cp ../yum.repos.d.bak/* .
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo

然後將剛才拷貝的文件中的CentOS-Base.repo 刪除掉,然後將源換成國內163的源,用curl -O這個命令下載。
[root@localhost yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1572 100 1572 0 0 15975 0 --:--:-- --:--:-- --:--:-- 16040
然後我們查詢一下
[root@localhost yum.repos.d]# ll
總用量 28
-rw-r--r--. 1 root root 1572 2月 16 13:44 CentOS7-Base-163.repo(這就是我們剛下載好的國內源)
-rw-r--r--. 1 root root 1309 2月 16 13:26 CentOS-CR.repo
-rw-r--r--. 1 root root 649 2月 16 13:26 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 2月 16 13:26 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 2月 16 13:26 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 2月 16 13:26 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 2月 16 13:26 CentOS-Vault.repo
這時候我們就已經成功的更換了yum源。
下載yum源有兩種方法,一種就是wget,另一種就是curl -O,這兩者後面都要接下載源的地址。

安裝擴展源
有時候我們只有個163Bash會不夠用,有些rpm包沒有,所以我們要用yum來安裝擴展源epel-release。
首先來查看一下當前目錄下都有那些文件
[root@localhost yum.repos.d]# ll
總用量 28
-rw-r--r--. 1 root root 1572 2月 16 13:44 CentOS7-Base-163.repo
-rw-r--r--. 1 root root 1309 2月 16 13:26 CentOS-CR.repo
-rw-r--r--. 1 root root 649 2月 16 13:26 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 2月 16 13:26 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 2月 16 13:26 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 2月 16 13:26 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 2月 16 13:26 CentOS-Vault.repo
當前目錄下有7個文件,然後我們安裝epel-release。
[root@localhost yum.repos.d]# yum install -y epel-release
然後我們再查看一下當前目錄下的文件
[root@localhost yum.repos.d]# ll
總用量 36
-rw-r--r--. 1 root root 1572 2月 16 13:44 CentOS7-Base-163.repo
-rw-r--r--. 1 root root 1309 2月 16 13:26 CentOS-CR.repo
-rw-r--r--. 1 root root 649 2月 16 13:26 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 2月 16 13:26 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 2月 16 13:26 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 2月 16 13:26 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 2月 16 13:26 CentOS-Vault.repo
-rw-r--r--. 1 root root 957 12月 28 2016 epel.repo
-rw-r--r--. 1 root root 1056 12月 28 2016 epel-testing.repo
這時我們發現最後多出了兩個文件,其中epel.repo是核心。
然後我們再打開yum列表
[root@localhost yum.repos.d]#yum list
zinnia-doc.noarch 0.06-22.el7 epel
zinnia-perl.x86_64 0.06-22.el7 epel
zinnia-python.x86_64 0.06-22.el7 epel
zinnia-tomoe-ja.x86_64 0.06-22.el7 epel
zinnia-tomoe-zh_CN.x86_64 0.06-22.el7 epel
zinnia-utils.x86_64 0.06-22.el7 epel
zipios++.x86_64 0.1.5.9-9.el7 epel
這時我們發現已經有許多的epel存在,這就是我們剛才安裝的擴展包。

yum下載rpm包
網上的rpm包有很多,雖然我們可以在本地的光盤裏找到,但是epel在本地是找不到的,但是我還想把它下載到本地,供其他電腦使用,省的再下載浪費時間,
首先我們先要確認我們下載的rpm報是否已經安裝過了,如果安裝過了的話,在我們在使用這個方法他就是提示這個包已經安裝過了。
我們試著下載一個程序
[root@localhost yum.repos.d]# yum install zvbi --downloadonly(這裏的downkandonly是一個yum的插件,他的作用是只下載,不安裝)
然後我們查看一下它將包下載到哪裏
[root@localhost yum.repos.d]# ls /var/cache/yum/x86_64/7/epel/packages/
zvbi-0.2.35-1.el7.x86_64.rpm
通過查看我們知道,它將包下載到了/var/cache/yum/x86_64/7/epel/packages/ 這裏,其實這也不是絕對的,因為這跟文件的源源有關系,如果文件的源是Bask那麽我們就要將packages前面的epel更換成Bash,packages 前面都是包的源,所以在我們查看的時候一定要輸入包源才能看到包是否被下載。
但是這個查看比較麻煩,我們也可以指定路徑下載,只要在後面加參數--downloaddir=絕對路徑就可以。比如我們放到tmp下。
[root@localhost yum.repos.d]# yum install zvbi --downloadonly --downloaddir=/tmp/
然後查看
[root@localhost yum.repos.d]# ll /tmp
-rw-r--r--. 1 root root 425256 2月 17 2016 zvbi-0.2.35-1.el7.x86_64.rpm
這時我們已經可以在tmp下看到我們剛下載的包了。

如果我們想下載一個已經安裝好了的包,但是這樣操作系統會提示我們不可行,我們可以用vim來試一下
[root@localhost yum.repos.d]# yum install vim-enhanced --downloadonly --downloaddir=/tmp/
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile

  • epel: mirrors.ustc.edu.cn
    軟件包 2:vim-enhanced-7.4.160-2.el7.x86_64 已安裝並且是最新版本
    無須任何處理。
    在這種情況下,我們可以用這個參數,yum reinstall來重新安裝,就可以解決問題
    [root@localhost yum.repos.d]# ll /tmp
    -rw-r--r--. 1 root root 1085368 8月 11 2017 vim-enhanced-7.4.160-2.el7.x86_64.rpm
    這時我們就可以在tmp先發現這個包了。

安裝源碼包
還有最後一種方法,就是安裝源碼包。首先我們要先去下載一個源碼包,下載什麽,去哪裏下載,這都要根據我們的實際需求。
我們可以形成一個習慣,將源碼包全部放到/usr/local/src這裏,方便我們找,也方便管理。
我們先下載一個apache

[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.32.tar.gz
--2018-02-16 15:04:13-- http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.32.tar.gz
正在解析主機 mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.178, 2402:f000:1:416:101:6:6:178
正在連接 mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.178|:80... 已連接。
已發出 HTTP 請求,正在等待回應... 404 Not Found
2018-02-16 15:04:13 錯誤 404:Not Found。
如果我們發現這個網站找不到,那麽我們可以去r.aminglinux.com中去找我們需要的東西下載。
我們換個源後繼續下載,然後查看
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
--2018-02-16 15:09:50-- http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
正在解析主機 mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.178, 2402:f000:1:416:101:6:6:178
正在連接 mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.178|:80... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:8638793 (8.2M) [application/octet-stream]
正在保存至: “httpd-2.4.29.tar.gz”

100%[============================================================================================================>] 8,638,793 1.50MB/s 用時 5.6s

2018-02-16 15:09:56 (1.48 MB/s) - 已保存 “httpd-2.4.29.tar.gz” [8638793/8638793])
[root@localhost src]# ll
總用量 8440
-rw-r--r--. 1 root root 8638793 10月 21 03:39 httpd-2.4.29.tar.gz
我們發現已經將我們需要的包現在好了。然後我麽解壓這個包,然後查看。
[root@localhost src]# tar jxvf httpd-2.4.29.tar.gz
[root@localhost src]# ls
httpd-2.4.29 httpd-2.4.29.tar.gz
然後我們進入剛才解壓完後得到的那個目錄,再查看
[root@localhost src]# cd httpd-2.4.29
[root@localhost httpd-2.4.29]# ls
ABOUT_APACHE ap.d CHANGES docs httpd.spec libhttpd.dep Makefile.win README srclib
acinclude.m4 build CMakeLists.txt emacs-style include libhttpd.dsp modules README.cmake support
Apache-apr2.dsw BuildAll.dsp config.layout httpd.dep INSTALL libhttpd.mak NOTICE README.platforms test
Apache.dsw BuildBin.dsp configure httpd.dsp InstallBin.dsp LICENSE NWGNUmakefile ROADMAP VERSIONING
apache_probes.d buildconf configure.in httpd.mak LAYOUT Makefile.in os server
每一個源碼包都會有一個說明文檔。比如這個包中就有一個README(自述文檔),還有一個常用的就是install(安裝文檔)。
我們每安裝一個源碼包最好都要讀一下他的安裝文檔,比如apache這個安裝文檔
$ ./configure --prefix=PREFIX
$ make
$ make install
前三步是apache的安裝步驟。
$ PREFIX/bin/apachectl start
最後一步是啟動程序。
後續還還有很多的源碼包都是這樣安裝的。

現在我們來安裝一下apace2
[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/apache2(首先確定路徑)
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found. Please read the documentation.
到這裏我們發現安裝報錯了,這裏有一個小技巧,如果我們看不出上一條命令是否對,那麽我們就用echo $?來查看
[root@localhost httpd-2.4.29]# echo $?
1
如果是非0的,那就說明我們上一條命令是錯的,所以我們上一條的命令是錯的
還有一個技巧,就是在我們安裝時,如果報錯checking for xxx... no,就說明這個程序沒有安裝,從上面可以看到checking for APR... no這個程序沒有被安裝,那我們就先用yum安裝apr這個包。
[root@localhost httpd-2.4.29]# yum install -y apr
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile

  • epel: mirrors.ustc.edu.cn
    軟件包 apr-1.4.8-3.el7_4.1.x86_64 已安裝並且是最新版本
    無須任何處理
    這裏提示我們的apr安裝包已經安裝,但是安裝依然不成功
    [root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/apache2
    checking for chosen layout... Apache
    checking for working mkdir -p... yes
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking build system type... x86_64-pc-linux-gnu
    checking host system type... x86_64-pc-linux-gnu
    checking target system type... x86_64-pc-linux-gnu
    configure:
    configure: Configuring Apache Portable Runtime library...
    configure:
    checking for APR... no
    所以我們要從新下載這個包,用wget來下載,用法是wget+下載的網址,下載完成後後我們將它解壓安裝,安裝的步驟和apache一樣,首先都要確實路徑,比如我們將apr安裝到/usr/src/下
    [root@localhost httpd-2.4.29]# ./configure --prefix=/usr/src/apr
    然後make && make install
    然後我們安裝apr-util,但是這時我們要在./configure --prefix=/usr/src/apr-util 後面添加一行字符串 --with-apr=/usr/apr ,才能順利安裝,步驟和上面一樣,但是我們安裝這裏的時候需要安裝一個gcc包
    [root@localhost httpd-2.4.29]# yum install -y gcc
    然後我們繼續安裝apr-util,步驟和上面一樣。
    然後我們繼續回到apache安裝,但是它還可能報錯缺少pcre,然後我們繼續按照上面的方法安裝,這時後面要加兩個--with,然後接上剛才安裝的apr和apr-uilt 的安裝絕對路徑,這樣就可以繼續安裝了。詳情可以參考這裏http://blog.csdn.net/moqiang02/article/details/19606019
    當這三部全部完成後,我們還是回到apache,繼續安裝,後面還是接apr和apr-uilt。
    每一步安裝完成後我們用echo $?來查看是否出錯,一般前兩部沒有錯的話第三部都不回出錯的。

安裝完成後,我們可以得到很多的目錄
[root@localhost httpd-2.4.29]# ls /usr/local/apache2
bin build cgi-bin conf error htdocs icons include logs man manual modules
用rpm包安裝時他會有幾個文件或者幾個目錄,而且要把這幾個文件和目錄分撒到各個目錄下。而我們安裝源碼包時可以指定目錄,那就意味如果我麽們不想要卸載這個包就直接刪除這個目錄就可以。還有一點我們要註意的是如果我們要下載源碼包,一定要去官方或者可信的地方去下載,如r.aminglinux.com。其他站點的源碼包容易出現木馬病毒,所以一定要謹慎下載。

yum更換國內源、利用yum下載rpm包以及源碼包安裝