首先理清楚两个东西:rpm和yum。rpm全称redhat package manager,用来管理软件包;yum全称yellow dog updater,modified,它是rpm的前端程序,因为它解决了rpm的软件包依赖问题,有点像maven的自动依赖管理。言归正传,rpm和yum都需要root权限;如果要下载软件包,毫无疑问,他们两者都需要联网。现在假设有两台linux机器,A机器能上网,B则啥都没有,我们来看下如何将rpm包搬家。
我们先登上A的root,通过yum下载我们需要的包:
# yum install ncurses-devel
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
DVD | 4.1 kB ::
cloudera-manager | B ::
mysql-connectors-community | 2.5 kB ::
mysql-tools-community | 2.5 kB ::
mysql56-community | 2.5 kB ::
(/): mysql-tools-community/x86_64/primary_db | kB ::
(/): mysql-connectors-community/x86_64/primary_db | kB ::
(/): mysql56-community/x86_64/primary_db | kB ::
Package ncurses-devel-5.9-13.20130511.el7.x86_64 already installed and latest version
Nothing to do
再查查确认下:
# yum list installed | grep ncurses-devel
ncurses-devel.x86_64 5.9-13.20130511.el7 @DVD
下载好了,就要先搬到本地了,那么我们得知道它的存储路径,先看完整包名叫啥:
# rpm -qa | grep 'ncurses-devel'
ncurses-devel-5.9-13.20130511.el7.x86_64
定位到具体路径:
]# cd ..
# find . -name 'ncurses-devel-5.9-13.20130511.el7.x86_64*'
./mnt/Packages/ncurses-devel-5.9-13.20130511.el7.x86_64.rpm
进入该路径,通过sz下载到本地目录:
# cd /mnt/Packages
# sz ncurses-devel-5.9-13.20130511.el7.x86_64.rpm
rz
开始 zmodem 传输。 按 Ctrl+C 取消。
% KB KB/s :: Errors64.rpm...
好了,我们打开B的非root用户wlf,通过rz上传上面的rpm包到soft目录:
$ cd soft
$ rz -y
rz waiting to receive.
开始 zmodem 传输。 按 Ctrl+C 取消。
% KB KB/s :: Errors64.rpm...
开始安装:
$ rpm -ivh *.rpm --force --nodeps
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
我们发现rpm安装时创建事务需要使用锁文件,而普通用户没有权限访问,只能求助root了,切换到root后再次进入soft目录执行:
# rpm -ivh ncurses-devel-5.9-13.20130511.el7.x86_64.rpm --force --nodeps
Preparing... ################################# [%]
Updating / installing...
:ncurses-devel-5.9-13.20130511.el7################################# [%]
最后看下以上的yum命令:
yum list installed:查看已经安装过的
yum install:安装数据包
yum remove:卸载数据包
rpm的参数说明:
-i:安装数据包
-v:显示详细信息
-h:显示安装进度
(以上3个在安装时配套使用)
--nodeps:取消依赖关系
--force:强制安装
-qa:查询所有安装包