码迷,mamicode.com
首页 > 系统相关 > 详细

Linux程序包管理:rpm、yum、编译安装

时间:2015-08-31 23:57:02      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:linux 马鹏飞 rpm yum 编译安装

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已有一定经验的人,一般不推荐初学者使用。





Linux程序包管理:rpm、yum、编译安装

标签:linux 马鹏飞 rpm yum 编译安装

原文地址:http://mapengfeilinux.blog.51cto.com/2560592/1690337

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!