2019独角兽企业重金招聘Python工程师标准>>>
更换国内yum源
我们的Linux中默认的yum源是国外的,有的时候网络不好,而我么需要下载的包过大的时候更换成国内的yum源,安装的效率就会提升很多,接下来就讲一下怎么更换yum源。
- 前一天做过了本地yum源,光盘中的包并不是那么全,也不一定是最新的版本,所以今天就把本地yum源给删掉,并把之前备份的yum源还原
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
dvd.repo
[root@localhost yum.repos.d]# rm -f dvd.repo
[root@localhost etc]# mv /tmp/yum.repos.d.bak/ /etc/yum.repos.d
[root@localhost etc]# cd yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Vault.repo
如果没做过本地yum源可以忽略这一步。
- 删除掉yum源的核心文件 CentOS-Base.repo
[root@localhost yum.repos.d]# rm CentOS-Base.repo
rm:是否删除普通文件 "CentOS-Base.repo"?y
- 获取yum源(yum源地址是已知的)wget http://mirrors.163.com/.help/CentOS7-Base-163.repo (如果系统没有wget,而且这个时候删除了yum源的核心文件了,是安装不了的,可以使用curl-O(这是个大写的O) http://mirrors.163.com/.help/CentOS7-Base-163.repo 代替)
[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 6437 0 --:--:-- --:--:-- --:--:-- 6469
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Vault.repo
- 可以使用vim /etc/yum.repos.d/CentOS7-Base-163.repo 看一下它的镜像地址
- yum clean all 生成新的缓存,使用yum list 验证是否生效,可以安装一下wget
[root@localhost yum.repos.d]# yum list | more
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
已安装的软件包
ModemManager-glib.x86_64 1.1.0-6.git20130913.el7 @anaconda
NetworkManager.x86_64 1:0.9.9.1-13.git20140326.4dba720.el7
@anaconda
NetworkManager-glib.x86_64 1:0.9.9.1-13.git20140326.4dba720.el7
@anaconda
NetworkManager-tui.x86_64 1:0.9.9.1-13.git20140326.4dba720.el7
@anaconda
acl.x86_64 2.2.51-12.el7 @anaconda
aic94xx-firmware.noarch 30-6.el7 @anaconda
alsa-firmware.noarch 1.0.27-2.el7 @anaconda
[root@localhost yum.repos.d]# yum install -y wget
更换yum源已经生效了。
安装扩展源
有些时候有些包国内的源站不具备,这个时候可以安装一个扩展yum源,扩展源中的包比较全面。yum install -y epel-release 安装完之后可以使用yum list | grep epel | more 分屏查看扩展源提供了哪些包
[root@localhost yum.repos.d]# yum install -y epel-release
[root@localhost yum.repos.d]# yum list | grep epel | more
* epel: mirrors.tuna.tsinghua.edu.cn
epel-release.noarch 7-11 @extras
0ad.x86_64 0.0.22-1.el7 epel
0ad-data.noarch 0.0.22-1.el7 epel
0install.x86_64 2.11-1.el7 epel
2048-cli.x86_64 0.9.1-1.el7 epel
2048-cli-nocurses.x86_64 0.9.1-1.el7 epel
2ping.noarch 3.2.1-2.el7 epel
389-admin.x86_64 1.1.46-1.el7 epel
389-admin-console.noarch 1.1.12-1.el7 epel
389-admin-console-doc.noarch 1.1.12-1.el7 epel
389-adminutil.x86_64 1.1.21-2.el7 epel
389-adminutil-devel.x86_64 1.1.21-2.el7 epel
389-console.noarch 1.1.18-1.el7 epel
389-ds.noarch 1.2.2-6.el7 epel
389-ds-console.noarch 1.2.16-1.el7 epel
389-ds-console-doc.noarch 1.2.16-1.el7 epel
389-dsgw.x86_64 1.1.11-5.el7 epel
3proxy.x86_64 0.7-1.el7 epel
3proxy-sysvinit.x86_64 0.7-1.el7 epel
4diac-forte.x86_64 1.9.0-0.1.M3.el7 epel
90-Second-Portraits.noarch 1.01b-3.el7 epel
Agda.x86_64 2.3.2.2-5.el7 epel
AntTweakBar.x86_64 1.16-2.el7 epel
AntTweakBar-devel.x86_64 1.16-2.el7 epel
BEDTools.x86_64 2.26.0-1.el7 epel
BackupPC.x86_64 3.3.1-5.el7 epel
yum 下载rpm包
当我们需要一个rpm包,但是不安装在当前机器上时可以使用yum install 包名 --downloadonly命令。 默认下载的rpm包放在/var/cache/yum/x86_64/7/Base/packges下,不一定是Base/packages ,得看包是来源哪个yum源,也就是下面代码中的源
[root@localhost ~]# yum install CBFlib --downloadonly
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.tuna.tsinghua.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 CBFlib.x86_64.0.0.9.5.1-1.el7 将被 安装
--> 正在处理依赖关系 libgfortran.so.3(GFORTRAN_1.0)(64bit),它被软件包 CBFlib-0.9.5.1-1.el7.x86_64 需要
--> 正在处理依赖关系 libquadmath.so.0()(64bit),它被软件包 CBFlib-0.9.5.1-1.el7.x86_64 需要
--> 正在处理依赖关系 libhdf5.so.8()(64bit),它被软件包 CBFlib-0.9.5.1-1.el7.x86_64 需要
--> 正在处理依赖关系 libgfortran.so.3()(64bit),它被软件包 CBFlib-0.9.5.1-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 hdf5.x86_64.0.1.8.12-10.el7 将被 安装
--> 正在处理依赖关系 libsz.so.2()(64bit),它被软件包 hdf5-1.8.12-10.el7.x86_64 需要
---> 软件包 libgfortran.x86_64.0.4.8.5-28.el7_5.1 将被 安装
---> 软件包 libquadmath.x86_64.0.4.8.5-28.el7_5.1 将被 安装
--> 正在检查事务
---> 软件包 libaec.x86_64.0.1.0.2-1.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===============================================================================================================================================================================================
Package 架构 版本 源 大小
===============================================================================================================================================================================================
正在安装:
CBFlib x86_64 0.9.5.1-1.el7 epel 349 k
为依赖而安装:
hdf5 x86_64 1.8.12-10.el7 epel 1.6 M
libaec x86_64 1.0.2-1.el7 epel 33 k
libgfortran x86_64 4.8.5-28.el7_5.1 updates 299 k
libquadmath x86_64 4.8.5-28.el7_5.1 updates 188 k
事务概要
===============================================================================================================================================================================================
安装 1 软件包 (+4 依赖软件包)
总下载量:2.4 M
安装大小:11 M
Background downloading packages, then exiting:
警告:/var/cache/yum/x86_64/7/epel/packages/CBFlib-0.9.5.1-1.el7.x86_64.rpm.2480.tmp: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY ] 0.0 B/s | 0 B --:--:-- ETA
CBFlib-0.9.5.1-1.el7.x86_64.rpm.2480.tmp 的公钥尚未安装
(1/5): CBFlib-0.9.5.1-1.el7.x86_64.rpm | 349 kB 00:00:00
(2/5): hdf5-1.8.12-10.el7.x86_64.rpm | 1.6 MB 00:00:00
(3/5): libaec-1.0.2-1.el7.x86_64.rpm | 33 kB 00:00:00
(4/5): libquadmath-4.8.5-28.el7_5.1.x86_64.rpm | 188 kB 00:00:00
(5/5): libgfortran-4.8.5-28.el7_5.1.x86_64.rpm | 299 kB 00:00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 1.3 MB/s | 2.4 MB 00:00:01
exiting because "Download Only" specified
[root@localhost ~]# cd /var/cache/yum/x86_64/7/epel/
[root@localhost epel]# ls
15dc600c8998af6bdd140f116f907c7ba300b57a0f9e694478b8e614da1e568c-primary.xml.gz gen
197befceaa417137427a2acb762989b9678018468f8ed87cd09c15ccf26aa416-updateinfo.xml.bz2 metalink.xml
cachecookie packages
e3bc6715aed495af6183f53de6a1559908aa315c8fdad84cb8b4281f559e0d71-comps-Everything.x86_64.xml.gz repomd.xml
[root@localhost epel]# cd packages/
[root@localhost packages]# ls 可以看到我们下载的rpm包在这里(它会下载很多有依赖关系的包,不一定只在一个目录下)
CBFlib-0.9.5.1-1.el7.x86_64.rpm hdf5-1.8.12-10.el7.x86_64.rpm libaec-1.0.2-1.el7.x86_64.rpm
还可以指定路径yum install 包名 --downloadonly --downloaddir=/tmp/ 如果要下载的包已经安装过了会提示nothing to do ,可以将命令中的install改成reinstall,并且可以在命令后面加--downloaddir来指定下载的目录
[root@localhost packages]# yum install vim-enhanced --downloadonly
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.tuna.tsinghua.edu.cn
软件包 2:vim-enhanced-7.4.160-4.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost packages]# yum reinstall vim-enhanced --downloadonly --downloaddir=/tmp/
[root@localhost packages]# cd /tmp
[root@localhost tmp]# ls
1.txt 222 3.txt dabao.tar test test3.zip vim-enhanced-7.4.160-4.el7.x86_64.rpm yum_save_tx.2018-06-28.08-05.BUHLOs.yumtx
1.txt.bz2 2.txt 44.txt form154853.pdf test1.zip test.zip yum_save_tx.2018-06-28.07-48.9Lb2Kb.yumtx
可以看到虽然vim-enhanced这个包我们安装过了,但是使用reinstall还是可以成功的把它下载到指定目录的。
源码包安装
首先要根据自己的实际需求下载源码包 约定:源码包下载到/usr/local/src下 例子:安装Apache
- 下载源码包,wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.32.tar.gz 如果该链接不能用了可以在浏览器输入r.aminglinux.com进入阿铭的码市选取自己需要的源码包链接
[root@localhost ~]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz
--2018-06-28 08:21:41-- http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz
正在解析主机 mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
正在连接 mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.8.193|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9076901 (8.7M) [application/octet-stream]
正在保存至: “httpd-2.4.33.tar.gz”
100%[=====================================================================================================================================================>] 9,076,901 5.58MB/s 用时 1.6s
2018-06-28 08:21:43 (5.58 MB/s) - 已保存 “httpd-2.4.33.tar.gz” [9076901/9076901])
2 . 安装完之后需要解压,tar -zxvf apache-2.4.33.tar.gz,解压完了之后可以进入apache-2.4.33目录下看一下说明README 和安装手册INSTALL
[root@localhost src]# ls
httpd-2.4.33 httpd-2.4.33.tar.gz
[root@localhost src]# cd httpd-2.4.33
[root@localhost httpd-2.4.33]# ls
ABOUT_APACHE apache_probes.d BuildBin.dsp config.layout emacs-style httpd.spec LAYOUT LICENSE NOTICE README.cmake srclib
acinclude.m4 ap.d buildconf configure httpd.dep include libhttpd.dep Makefile.in NWGNUmakefile README.platforms support
Apache-apr2.dsw build CHANGES configure.in httpd.dsp INSTALL libhttpd.dsp Makefile.win os ROADMAP test
Apache.dsw BuildAll.dsp CMakeLists.txt docs httpd.mak InstallBin.dsp libhttpd.mak modules README server VERSIONING
3 . 运行./configure --prefix=/usr/lacal/pache2来指定安装目录 在安装的时候可能会遇到很多种报错
configure: error: APR not found. Please read the documentation.
提示这个报错是因为没有安装apr包,需要下载并安装apr wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
[root@localhost src]# ls
apr-1.6.3.tar.gz httpd-2.4.33 httpd-2.4.33.tar.gz
[root@localhost src]# tar -zxf apr-1.6.3.tar.gz
[root@localhost src]# ls
apr-1.6.3 apr-1.6.3.tar.gz httpd-2.4.33 httpd-2.4.33.tar.gz
[root@localhost src]# cd apr-1.6.3
[root@localhost apr-1.6.3]# ./configure --prefix=/usr/local/apr
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
Configuring APR library
Platform: x86_64-pc-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.6.3
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/local/src/apr-1.6.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
-
发现在装这个apr的时候出现了一个错误checking gcc....0 ,这里就需要yum install -y gcc 安装一下gcc
-
当执行完一个指令后,我们不知道是不是执行成功了,可以使用echo $?来查看,当输出的是非0的数值时说明我们的上一条指令是有问题的。
-
再使用./configure命令检查,没问题之后运行make命令编译,编译完之后运行echo $?查看编译有没有问题
-
编译完之后就使用make install安装到之前指定的路径prefix=/usr/local/apr
-
安装完之后发现还是不能安装Apache,这是因为还需要安装一个apr-util包 wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2 下载解压并安装
[root@localhost src]# tar -jxf apr-util-1.6.1.tar.bz2
[root@localhost src]# ls
apr-1.6.3 apr-1.6.3.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.bz2 httpd-2.4.33 httpd-2.4.33.tar.gz
[root@localhost src]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/src/apr-1.6.3
同样的步骤,检查,编译,安装
- 在编译的过程中会出现这样一个错误
xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
这是因为没有expat,运行yum install expat-devel命令来安装,之后再编译就没有问题了。然后make install 安装。
4 。 安装完之后就该安装Apache了,在安装的时候时需要指定apr和apr-util的安装目录的路径的。
[root@localhost httpd-2.4.33]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr-1.6.3 --with-apr-util=/usr/local/apr-util-1.6.1
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... yes
setting CC to "gcc"
setting CPP to "gcc -E"
setting CFLAGS to " -g -O2 -pthread"
setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
setting LDFLAGS to " "
configure:
configure: Configuring Apache Portable Runtime Utility library...
configure:
checking for APR-util... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C99... -std=gnu99
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
[root@localhost httpd-2.4.33]# echo $?
1
- 发现还是报错
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
这是因为还需要安装一个pcre的包,这个包可以使用yum安装 yum install pcre-devel 这个包安装完之后再执行./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/src/apr-1.6.3 --with-apr-util=/usr/local/src/apr-util-1.6.1
就可以看到Apache的检查过程了
4 . 使用make命令来编译,在编译的过程中又发生报错了
make[2]: *** [exports.lo] Error 1
make[2]: Leaving directory `/usr/local/src/httpd-2.4.7/server'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/httpd-2.4.7/server'
make: *** [all-recursive] Error 1
要解决这个故障需要返回头去
# cd /usr/local/src/
# cp -r apr-1.6.3 /usr/local/src/httpd-2.4.33/srclib/apr
# cp -r apr-util-1.6.1 /usr/local/src/httpd-2.4.33/srclib/apr-util
然后再重新configure,使用./configure --with-included-apr命令就不会报错了 ,然后再make编译,make install安装就OK了。 目前在安装过程中遇到并解决掉的问题就这些。