有时候我们自带的 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 其他站点的源码包容易出现木马病毒, 所以一定要谨慎下载
来源: http://www.bubuko.com/infodetail-2516725.html