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

[经验分享] Linux程序包管理:rpm、yum、编译安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-1 09:02:48 | 显示全部楼层 |阅读模式
RPM:

     RPM Package Manager(RPM软件包管理器),是一款在各个版本liunx上都使用的软件包管理器。

RPM共有10种基本的模式:
                               它们是安装、查询、验证、删除等。
                               安装模式:      rpm –i [安装选项]  
                               查询模式:      rpm –q [查询选项]
                               验证模式:      rpm –V 或 –verify [验证选项]
                               删除模式:      rpm –e 
RPM常用参数: 
-q  查询
-p  <包文件名>   查询软件包文件
-a  查询所有软件包
-f <文件列表>  查询文件属于哪个软件包
-g <组列表>    查询组里有哪些软件包
--whatrequires <功能列表> 查询需要指定功能的包
--whatprovides <功能列表> 查询提供指定功能的包
--requires/-R   查询软件包需要哪些功能
--provides         查询软件包提供哪些功能
-i    显示软件包信息
-l    显示软件包所包含文件的列表
-d   显示软件包所包含的说明文档列表
-c   显示软件包所包含的配置文档列表
-s   显示软件包所包含的文件的状态
RPM例题:
1.安装一个包
# rpm -ivh

2.升级一个包
# rpm -Uvh  [注意U一定要大写]

-i   安装
-U  升线安装
-h  以#显示安装进度
-v  显示附加信息


3.移走一个包
# rpm -e


4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。


5.查询一个包是否被安装
# rpm -q < rpm package name>


6.得到被安装的包的信息
# rpm -qi < rpm package name>


7.列出该包中有哪些文件
# rpm -ql < rpm package name>


8.列出服务器上的一个文件属于哪一个RPM包
# rpm -qf


9.可综合好几个参数一起用
# rpm -qil < rpm package name>


10.列出所有被安装的rpm package
# rpm -qa


11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
# rpm -qilp < rpm package name>






YUM:
  Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。


YUM的使用方法:

1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1

3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

4 删除程序
yum remove &#124; erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况

5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers




编译安装:
           Linux软件安装与卸载(编译安装):一般情况下linux程序的发布不能像windows那样,直接打包成一个setup.exe文件,然用户安装 时直接按下一步就完成了,因为它对库的依赖比较严重下面就来看下linux下软件源码包安装与卸载:

Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随 意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。



编译安装的流程:
                  testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装

                      源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行



安装步骤:
            第一步:configure脚本
                    选项:指定安装位置、指定启用的特性

                    --help: 获取其支持使用的选项
                                    选项分类:
                    安装路径设定:
                    --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/
                    --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

                    System types:

                            Optional Features: 可选特性
                                    --disable-FEATURE
                                    --enable-FEATURE[=ARG]

                            Optional Packages: 可选包
                                    --with-PACKAGE[=ARG]
                                    --without-PACKAGE
                  第二步:make

                  第三步:make install



编译安装方法及应用:


1、*.src.rpm形式的源代码软件包
安装:rpm -rebuild *.src.rpm
cd /usr/src/dist/RPMS
rpm -ivh *.rpm
卸载:rpm -e packgename
说明:rpm --rebuild *.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename 如前所述。

2、*.tar.gz/*.tgz、*.bz2形式的源代码软件包
安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 先解压
然后进入解压后的目录:
./configure 配置
make 编译
make install 安装
卸载:make uninstall 或 手动删除
说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净, 那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者使用。



运维网声明 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.iyunv.com/thread-108146-1-1.html 上篇帖子: RHEL系列网络配置 下篇帖子: LVM的基本应用、扩展及缩减实现 Linux 程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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