A机器无法使用yum(通常是因为网络原因无法访问yum源),这个时候如需要在A机器上安装软件,常规方法就是自己去下载源码然后进行make install。不过,这种方法最大的弊端就是在isntall过程中可能会牵连出许多依赖包缺失,然后,这些缺失的依赖包又要下在源码进行make install。。。无穷尽也。
例如在一个没有zlib的机器上直接make install git的源码:
[user@192.168.58.11git]$ make && make install
GIT_VERSION = 2.8.3
* new build flags
CC credential-store.o
In file included from credential-store.c:1:0:
cache.h:40:18: fatal error: zlib.h: No such file or directory
#include <zlib.h>
^
compilation terminated.
make: *** [credential-store.o]
#--------------zlib 缺失--------------#
## zlib也装完了再make就会报错韶关perl,perl再装完了还会报错curl,,,别问我怎么知道的,问就是猜的^.^
这个时候,可以找一台能够使用yum 的机器B,然后在机器B上直接使用yum的「–downloaddir」以及「–downloadonly」参数就可以下载包了,例如「yum -y install tree --downloaddir=/home/gavin/tmp/tree_rpm_pkg --downloadonly」就可下载tree的rpm包,这样下载的包,是包含了完整依赖的(机器B上已经有的包是不会重新下载的,不过可以直接yum remove掉,等包下完了再安装就是了);
示例「下载tree 的rpm包」:
[gavin@ip-10-58-21-17 tree_rpm_pkg]$ ll
total 0
[gavin@ip-10-58-21-17 tree_rpm_pkg]$ pwd
/home/gavin/tmp/tree_rpm_pkg
[gavin@ip-10-58-21-17 tree_rpm_pkg]$ sudo yum -y install tree --downloaddir=/home/gavin/tmp/tree_rpm_pkg --downloadonly
[sudo] password for gavin:
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.amzn2.0.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================