设为首页 收藏本站
查看: 364|回复: 0

[经验分享] linux下系统软件包管理(rpm、yum、源码包安装)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-1 08:50:38 | 显示全部楼层 |阅读模式
1. rpm工具
rpm全称为Redhat Package Manager,红帽软件包管理工具,设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的。

rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型。有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。

安装一个包:rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm
-i    表示安装
-v    可视化
-h    显示安装进度
--force : 强制安装,即使覆盖属于其他包的文件也要安装
--nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包


1
2
3
[iyunv@localhost mnt]# rpm -ivh tree-1.5.3-2.el6.i686.rpm
Preparing...                ########################################### [100%]
   1:tree                   ########################################### [100%]





升级:rpm -Uvh filename.rpm
-U    就是升级的意思

rpm的卸载:
rpm -e filename  //这里的filename是通过rpm的查询功能所查询到的
rpm -qa |grep libjpeg-turbo-devel
rpm -e libjpeg-turbo-devel
1
2
3
4
5
[iyunv@localhost ~]# rpm -q tree
tree-1.5.3-2.el6.i686
[iyunv@localhost ~]# rpm -e tree
[iyunv@localhost ~]# echo $?
0



echo $?    查看上一条命令执行状态,返回0表示执行成功,非0为不成功;


查询一个包是否安装
rpm -q  包名   (不带有平台信息以及后缀名 )

1
2
[iyunv@localhost ~]# rpm -q tree
package tree is not installed




查询当前系统所有安装过的rpm包
rpm -qa   

查询rpm包的相关信息 :
rpm -qi 包名

列出一个rpm所安装的文件:
rpm -ql 包名

1
2
3
4
5
6
7
8
9
10
11
[iyunv@localhost ~]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/ex
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
/usr/share/man/man1/rvim.1.gz
/usr/share/man/man1/vimdiff.1.gz
/usr/share/man/man1/vimtutor.1.gz




查看某个文件属于哪个rpm包:
rpm -qf filename

1
2
[iyunv@localhost ~]# rpm -qf /etc/passwd
setup-2.8.14-20.el6_4.1.noarch






2. yum工具
yum list 列出所有可用rpm包资源
搜索某个包: yum search  ‘keywords’或     yum list |grep ‘keywords’
yum 安装包: yum install -y  filename(包名)
yum 卸载包: yum remove  -y filename (包名)
yum 升级包: yum update -y filename(包名)


yum 查找包:yum provides  "*/vim"   //这里用通配,可以查找一个命令由哪个包安装来的

yum grouplist  列出所有的套件
yum groupinstall    安装套件
yum groupremove   卸载套件


创建本地的yum源
mount /dev/cdrom /mnt  
cp -r /etc/yum.repos.d  /etc/yum.repos.d.bak    //先备份一下
rm -f /etc/yum.repos.d/*
vim /etc/yum.repos.d/dvd.repo  #加入如下内容:
[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0
yum list  //查看是否有dvd的标志出现


安装yum扩展源epel    可以安装nginx、zabbix

rpm -ivh www.lishiming.net/data/attachmen ... e-6-8_32.noarch.rpm   
(其他地址http://www.aminglinux.com/bbs/thread-6721-1-1.html)
1
2
[iyunv@localhost ~]# rpm -ivh http://www.lishiming.net/data/at ... e-6-8_32.noarch.rpm
Retrieving http://www.lishiming.net/data/at ... .noarch.rpmwarning: /var/tmp/rpm-tmp.YcVQW6: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEYPreparing...                ########################################### [100%]   1:epel-release           ########################################### [100%]



安装完成之后yum list 右侧可以列出很多epel的包,供以后使用;



使用yum下载rpm包,而不安装,方法1:
yum有一个plugin(插件)叫做yum-downloadonly,可以实现让用户只下载软件包的功能;
首先需要安装插件:yum install -y yum-plugin-downloadonly
安装完成后:yum install 包名 -y --downloadonly   
#这样就已经下载,centos6默认在 /var/cache/yum/i386/6/base/packages 我这里是32位的显示为i386目录;
yum install 包名 -y --downloadonly --downloaddir=/usr/local/src  #指定一个下载目录,如果是已经安装过的rpm包这样不成功,需要使用reinstall: yum reinstall  包名  -y --downloadonly --downloaddir=/usr/local/src
reinstall    重新安装;



示例:

1
2
3
4
5
[iyunv@localhost yum]# yum install -y yum-plugin-downloadonly
[iyunv@localhost packages]# pwd
/var/cache/yum/i386/6/base/packages
[iyunv@localhost packages]# ls -l
-rw-r--r--. 1 root root 36464 Jul  3  2011 tree-1.5.3-2.el6.i686.rpm




使用yum下载rpm包,而不安装,方法2:

通过一个专门的包下载工具--yumdownloader。 这个工具是yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集。

使用命令安装:yum install -y yum-utlis
安装完成后,下载rpm包,使用命令:yumdownloader 包名
下载的包保存到当前的目录,你需要使用root权限,因为yumdownloader会在下载过程中更新包索引文件。与yum命令不同的是,任何依赖包不会被下载。




设置yum保留下载的rpm包
yum 默认情况下,升级或者安装后,会删除下载的rpm包。

修改 /etc/yum.conf 配置文件保留下载的包;
[main]
cachedir=/home/soft/yumcache
keepcache=1
debuglevel=2

cachedir 存放下载包的地址,可以修改为自己放置的地址;
keepcacahe设置为1,表示保存已经下载的rpm包;


3. 源码包安装
源码包是开源的可自行更改的程序包,大多用C语言开发,不能直接使用,需要编译成二进制的可执行文件;
编译源码包的必须有gcc支持,如果没有需要安装 yum install -y gcc
通常情况编译三步曲: ./configure 配置各种编译参数; make 根据指定的编译参数进行编译;make install 安装到指定目录

实例:
1、下载源码包#cd /usr/local/src/ #约定目录;

   首先安装wget,安装命令:yum install -y wget   

   #wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.29.tar.gz
2、解压tar zxvf httpd-2.2.29.tar.gz  //查看README或者INSTALL说明文件
3、指定编译参数 ./configure --help  可以查看帮助

   #./configure --prefix=/usr/local/apache2    指定一个路径;
   执行时提示checking for gcc... no    需要安装gcc编译器;安装命令#yum install -y gcc
4、#echo $? 验证是否成功
5、#make    编译成二进制的文件;
6、#make install    安装编译后的文件;




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-52666-1-1.html 上篇帖子: Fastcgi php-fpm 漏洞利用方式 下篇帖子: linux下简单自建证书颁发机构-CA linux 软件包
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表