linux 学习笔记-022-yum 更换国内源和下载 rpm 包,源码包安装

发布于 2018-01-30  577 次阅读


yum 更换国内源

下载 163 的 yum 源,如果 yum 无法使用,可以用 curl -O

[root@aming-01 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@aming-01 yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
-bash: wget: 未找到命令
[root@aming-01 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 6874 0 --:--:-- --:--:-- --:--:-- 6894
[root@aming-01 yum.repos.d]# ls
CentOS7-Base-163.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-Base.repo.bak CentOS-Debuginfo.repo CentOS-Sources.repo

测试 1:

更换 yum 源为 163 源之后,可以正常使用 yum

[root@aming-01 yum.repos.d]# yum install zsh
已加载插件:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
………………省略部分输出信息………………
可安装的软件包
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 zsh.x86_64.0.5.0.2-28.el7 将被 安装
--> 解决依赖关系完成
………………省略部分输出信息………………
可安装的软件包
正在安装:
zsh x86_64 5.0.2-28.el7 base 2.4 M
………………省略部分输出信息………………
可安装的软件包
安装 1 软件包
总下载量:2.4 M
安装大小:5.6 M
Is this ok [y/d/N]: n
Exiting on user command
您的事务已保存,请执行:
yum load-transaction /tmp/yum_save_tx.2018-01-03.22-11.VpPPz2.yumtx 重新执行该事务

测试 2:

把 163 的源改名后,无法识别 yum 源

[root@aming-01 yum.repos.d]# mv CentOS7-Base-163.repo CentOS7-Base-163.repo.bak
[root@aming-01 yum.repos.d]# yum install wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
没有已启用的源。
执行 "yum repolist all" 查看您拥有的源。
您可以用 yum-config-manager --enable <源名> 来启用源
[root@aming-01 yum.repos.d]# yum repolist all
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
C7.0.1406-base/x86_64 CentOS-7.0.1406 - Base 禁用
C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 - CentOSPlus 禁用
C7.0.1406-extras/x86_64 CentOS-7.0.1406 - Extras 禁用
C7.0.1406-fasttrack/x86_64 CentOS-7.0.1406 - CentOSPlus 禁用
C7.0.1406-updates/x86_64 CentOS-7.0.1406 - Updates 禁用
base-debuginfo/x86_64 CentOS-7 - Debuginfo 禁用
base-source/7 CentOS-7 - Base Sources 禁用
centosplus-source/7 CentOS-7 - Plus Sources 禁用
cr/7/x86_64 CentOS-7 - cr 禁用
extras-source/7 CentOS-7 - Extras Sources 禁用
fasttrack/7/x86_64 CentOS-7 - fasttrack 禁用
updates-source/7 CentOS-7 - Updates Sources 禁用
repolist: 0

yum 下载 rpm 包

安装并测试 epel 源:

[root@aming-01 yum.repos.d]# yum install -y epel-release
[root@aming-01 yum.repos.d]# yum list | grep "epel"
yum 下载 rpm 包,但不安装:
[root@aming-01 yum.repos.d]# yum install zsh --downloadonly
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.shuosc.org
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 zsh.x86_64.0.5.0.2-28.el7 将被 安装
--> 解决依赖关系完成
………………省略部分输出信息………………
安装 1 软件包
总下载量:2.4 M
安装大小:5.6 M
Background downloading packages, then exiting:
zsh-5.0.2-28.el7.x86_64.rpm | 2.4 MB 00:00:01
exiting because "Download Only" specified
[root@aming-01 yum.repos.d]# rpm -q zsh
未安装软件包 zsh
[root@aming-01 yum.repos.d]# ls /var/cache/yum/x86_64/7/base/packages/
zsh-5.0.2-28.el7.x86_64.rpm

yum 下载 rpm 包,放到/tmp 目录下,不安装(只能下载没有安装的包):

[root@aming-01 yum.repos.d]# yum install zsh --downloadonly --downloaddir=/tmp
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.shuosc.org
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 zsh.x86_64.0.5.0.2-28.el7 将被 安装
--> 解决依赖关系完成
………………省略部分输出信息………………
安装 1 软件包
总下载量:2.4 M
安装大小:5.6 M
Background downloading packages, then exiting:
exiting because "Download Only" specified
[root@aming-01 yum.repos.d]# ls /tmp/
ks-script-6EFZQB yum_save_tx.2018-01-03.22-50.3kdsGj.yumtx zsh-5.0.2-28.el7.x86_64.rpm
yum.log yum_save_tx.2018-01-03.22-53.baqwMU.yumtx

重新下载已经安装的 rpm 包,放到/tmp 目录下,不安装:

reinstall 也有重新安装的意思

[root@aming-01 yum.repos.d]# yum reinstall vim-enhanced --downloadonly --downloaddir=/tmp
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.shuosc.org
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 vim-enhanced.x86_64.2.7.4.160-2.el7 将被 已重新安装
--> 解决依赖关系完成
………………省略部分输出信息………………
重新安装 1 软件包
总下载量:1.0 M
安装大小:2.2 M
Background downloading packages, then exiting:
vim-enhanced-7.4.160-2.el7.x86_64.rpm | 1.0 MB 00:00:00
exiting because "Download Only" specified
[root@aming-01 yum.repos.d]# ls /tmp/
vim-enhanced-7.4.160-2.el7.x86_64.rpm
zsh-5.0.2-28.el7.x86_64.rpm

源码包安装

源码包找一个目录存放,便于以后查找与管理,如:/usr/local/src/

源码包下载:

[root@aming-01 src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz
--2018-01-04 23:41:12-- http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz
正在解析主机 mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.178, 2402:f000:1:416:101:6:6:177
正在连接 mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.178|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:7684419 (7.3M) [application/octet-stream]
正在保存至: “httpd-2.2.34.tar.gz”
100%[========================================================>] 7,684,419 610KB/s 用时 20s
2018-01-04 23:41:37 (371 KB/s) - 已保存 “httpd-2.2.34.tar.gz” [7684419/7684419])

源码包解压并查看:

基本每个源码包都会有说明文档 README,安装文档 INSTALL

[root@aming-01 src]# tar zxvf httpd-2.2.34.tar.gz
[root@aming-01 src]# cd httpd-2.2.34
[root@aming-01 httpd-2.2.34]# ls
ABOUT_APACHE CHANGES httpd.dsp libhttpd.dep NOTICE server
acinclude.m4 config.layout httpd.mak libhttpd.dsp NWGNUmakefile srclib
Apache.dsw configure httpd.spec libhttpd.mak os support
build configure.in include LICENSE README test
BuildAll.dsp docs INSTALL Makefile.in README.platforms VERSIONING
BuildBin.dsp emacs-style InstallBin.dsp Makefile.win README-win32.txt
buildconf httpd.dep LAYOUT modules ROADMAP

安装源码包:

查询./configure 都支持哪些选项

[root@aming-01 httpd-2.2.34]# ./configure --help

指定安装路径配置,./configure 会检查 apache 所缺少的组件,遇到组件缺少会停止

[root@aming-01 httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
checking for chosen layout... Apache
………………省略部分输出信息………………
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/local/src/httpd-2.2.34/srclib/apr':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
configure failed for srclib/apr

测试上一条命令是否运行正确,为 1 即为不正确

[root@aming-01 httpd-2.2.34]# echo $?
1

排错,看提示,缺少 gcc,安装 gcc,重新执行./configure,可见一直配置到最后面,没有出错

[root@aming-01 httpd-2.2.34]# yum -y install gcc
[root@aming-01 httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
………………省略部分输出信息………………
config.status: creating support/dbmmanage
config.status: creating support/envvars-std
config.status: creating support/log_server_status
config.status: creating support/logresolve.pl
config.status: creating support/phf_abuse_log.cgi
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands

编译,编译的速度跟 CPU 性能有关,编译完之后用 echo $?测试是否有错,一般有错误会在编译信息的最后几行有提示

[root@aming-01 httpd-2.2.34]# make
[root@aming-01 httpd-2.2.34]# echo $?
0

安装,会把软件安装到./configure 的时候指定的目录中

[root@aming-01 httpd-2.2.34]# make install
[root@aming-01 httpd-2.2.34]# ls /usr/local/apache2/
bin build cgi-bin conf error htdocs icons include lib logs man manual modules

卸载,就是把所有相关的文件删除

建议

下载源码包,建议到官方站点下载

扩展

配置 yum 源优先级:

http://ask.apelearn.com/question/7168

把源码包打包成 rpm 包:

http://www.linuxidc.com/Linux/2012-09/70096.htm