Linux rpm包、rpm源码包及tar源码包的安装详解

简介:

    在使用linux系统的过程中,软件包的安装是避免不了的,在linux下,软件安装程序的种类很多,安装方法也格式各样,论安装的舒适肯定比不上windowswindows安装软件基本就是用鼠标点击下一步,如果学习linux的软件包安装,还像windows那样点击鼠标下一步安装,那就太对不起linuxshell了,linuxshelllinux的图形化界面要强大太多了。好了废话不多说了,安装软件包,首先要了解软件包的组成

     软件包由二进制文件、库文件、配置文件、帮助文件、头文件等这重要的部分组成。他们分别存放在系统的那些路径里面?

二进制文件:/bin,  /sbin,  /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

库文件:/lib,  /usr/lib, /usr/local/lib

配置文件:/etc

帮助文件:/usr/share/man,  /usr/local/share/man,  {像README, INSTALL文件主   要存放在 /usr/share/doc}

头文件:/usr/include/


1、软件包的安装方法之rpm安装的相关操作

rpm包的组成:name-version-release.arch.rpm

     name:表示包的名称,包括主包名和分包名

     version:表示包的版本信息

     release:用于标识rpm包本身的发行号,可还包含适应的操作系统

     arch:表示主机平台,noarch表示此包能安装到所以平台上面

gd-devel-2.0.35-11.el6.x86_64.rpm

     gd是这个包的主包名,devel是这个包的分包名,

     2.0.35是表示版本信息,2为主版本,0为此版本,35为修订号,

     11.el6中的11是表示发行号,el6表示是RHEL6

     x86_64是表示包适合的平台,如果是noarch这表示与平台无关




option

参数解释

Example

安装

-i

安装



-v|-vv|-vvv

显示详细信息



-h

#显示安装进度一个#表示2%的进度

rpm -ivh zsh-4.3.10-5.el6.x86_64.rpm


--nodeps

忽略依赖关系



--test

测试安装



--replacepkgs

重新安装(安装的包已经安装了)


升级

-U   -Uvh

升级+安装



-F    -Fvh

升级(此包已经安装了)



--force

有冲突强制升级



--nodeps

忽略包依赖性关系


卸载

-e

卸载

rpm  -e  包名


--nodeps

忽略包依赖性关系


查询

-q  |--query


rpm -q|--query  包名


-qa

查看所有已经安装的包

rpm -qa  查看所有包名

rpm -qa |  grep 包名查看某个包名


-qi

查看包的摘要信息



-qf

查看文件是有那个包安装的

rpm  -qf  /path/to/file


-ql

查看包安装生成的文件清单



-qc

查看包安装生成的配置文件



-qd

查看包安装生成的帮助文档



-q  --scripts

查看相关的脚本

rpm -q--script   包名


-qp[i|l|d|c]

查看尚未安装包的详细信息

rpm -qpi /path/to/rpm_file

校验

-V


rpm -V   包名

数据库管理

--initdb

新建

rpm  --initdb


--rebuilddb

重建

rpm  --rebuilddb



2、软件包的安装方法之yum安装的相关操作

   yum(Yellowdog Update  Manager),yumRPM的前端工具,是基于RPM的一个管理工具,他能自动的解决安装rpm包产生的依赖关系。

   yum的配置文件    /etc/yum.conf

   yum  repository仓库的配置文件/etc/yum.repos.d/*.repo


yum仓库的搭建是使用yum安装的前提,如何搭建一个好的yum仓库?

    1)首先要在yum仓库的文件(/etc/yum.repos.d/)中建立一个以.repo结尾的文件;

    2)[  ]方括号里面是写仓库的ID(repository_ID),名称可以随便取,但必须唯一;

    3)name是yum的名称也可以随便取,也必须唯一;

    4)baseurl指定你可以能通过本机、http或者ftp访问到那些rpm包的所在路径,该路径下必须有一个    

       repodata的文件,比如/media下面有那个repodata的文件,那你的baseurl指向/media/,如果  

是/media/Server下面有那个repodata的文件,那你的baseurl指向 /media/Server/目录;

    5)enabled默认为11表示启用此仓库,0表示不启,

    6)gpgcheck默认也是为11表示检查公钥,当检查公钥时要指定gpgkey的地址,0表示不检查,不

       检查公钥就不用指gpgkey的地址,如果是本地光盘搭建yum仓库,则可以设置gpgcheck=0

    7)当gpgcheck=1时,gpgkey指向包含RPM-GPG-KEY-CentOS-6这个文件的路径

    8)cost是表示花费代价,cost默认是2000,越小越先访问

用光盘搭建本地yum仓库的方法:

       1        

       2        

       3        

       4        

       5        

       6        

       7        

       8        

mount/dev/cdrom   /media

cat>> /etc/yum.repos.d/iso.repo<        

       

[iso]

name=centos6.4-x86_64

baseurl=file:///media/

gpgcheck=0

enable=1

EOF

     


搭建外网的yum仓库(sohuyum仓库)的方法

       1        

       2        

       3        

       4        

       5        

       6        

       7        

       8        

cat>> /etc/yum.repos.d/sohu.repo<        

       

[sohu]

name=Internet-centos

baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch

gpgcheck=1

enable=1

gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-6

EOF

     

$releasever:表示你的系统的版本,变量会自动的检测你的版本


$basearch:表示CPU的架构,是x86_64,还是i386系列



如果自己在网上下载了很多rpm软件包,也想搭建一个yum仓库,则使用createrepo

createrepo会生成一个repodata的软件信息仓库文件,然后搭建该目录的yum仓库

rpm包可以在下面两个网站去搜索

http://rpm.phone.net

http://www.rpmfind.net

http://pkgs.org/





       1        

       2        

       3        

       4        

       5        

       6        

cat>> /etc/yum.repos.d/xen.repo << EOF

[xen]

name=centos-xen

baseurl=file:///root/xen-4.1  #存放软件的路径且路径中有repodata这个文件

gpgcheck=0

EOF

搭建完xen的yum后,可以用yum安装xen了

yum常用的命令:


操作命令

命令解释

列表

yum list  

列出指定安装软件的清单


yum list installed

列出所有已安装的软件包


yum list extras

列出所有已安装但不在 Yum  仓库內的软件包


yum grouplist

列出所有的组


yum grouplist "Group1"

列出指定组的软件包列表

安装

yum -y install  

安装指定的软件


yum  -y groupinstall   "Group1"  "Group2"  

安装指定的组


yum -y localinstall

yum安装下载到本地的rpm

更新

yum check-update

列出所有可更新的软件清单


yum update

安装所有更新软件


yum update  

更新指定的软件

信息

yum  info

显示所有包的信息


yum  info

显示指定包的信息


yum  groupinfo "Group1"   "Group2"

显示指定组的信息

清除

yum clean all

清除所有yum所保存的信息


yum clean metadata

只清空保存的数据信息

其它操作

yum  repolist [all|enable|disable]

查看yum仓库的个数,默认显示启用的


yum   makecache

手动生成缓存


yum search  

查询rpm包


yum reinstall  

重新安装一遍


yum provides  

列出软件包提供哪些文件


yum安装开发组

(RHEL6.x)

yum  -y groupinstall       "DesktopPlatform Development"     "Development  tools"  "Server Platform Development"

(RHEL5.x)

yum  -y  groupinstall      "Development  tools " "Development  Libraries"


3、软件包安装之tar源码包编译安装

tar编译安装的三部曲:

    在安装三部曲之前,建议先看看解压之后目录里面的包含README, INSTALL文件,这里面的文件会告诉你详细安装步骤。

   1)configure        检测编译环境

    2)make               进行编译

    3)make install     编译安装

http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.bz2

下载apache的tar源码包地址



       1        

       2        

       3        

       4        

       5        

       6        

       7        

       8        

       9        

       10        

       11        

#安装tar源码包可以先安装开发工具,可以减少安装相关的依赖性包

[root@Redhat6 ~]# yum  -y groupinstall   "DesktopPlatform Development"     "Development tools"  "Server Platform Development"

[root@Redhat6 ~]#tar xf httpd-2.2.25.tar.bz2    #先解压

[root@Redhat6 ~]# cd httpd-2.2.25  #进入到解压后的目录

[root@Redhat6 httpd-2.2.25]# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite   #检查编译环境

[root@Redhat6 httpd-2.2.25]# make  #编译

[root@Redhat6 httpd-2.2.25]# make install  #编译安装

[root@Redhat6 httpd-2.2.25]# cd /usr/local/apache  #进入到安装的目录下面

[root@Redhat6 apache]# ls    #查看安装生成了那些文件

bin    cgi-bin  error   icons    lib   man     modules

build  conf     htdocs  include  logs  manual

tar安装包后需要修改几个地方,使得tar安装包后能与系统识别的路径相关联

1)、改PATH环境变量

写到/etc/profile.d/*.sh------>source /etc/profile 里面写安装软件后bin的路径


       1        

       2        

echo"PTAH=/usr/local/apache/bin:$PATH">>/etc/profile.d/apache.sh

source/etc/profile

或者直接 export PATH=/usr/local/apache/bin:$PATH


2)、添加库文件的搜索  /etc/ld.so.conf/    etc/ld.so.conf.d/*.conf

在/etc/ld.so.conf.d/*.conf   lib的路径  ldconfig -v    

       1        

       2        

echo"/usr/local/apache/lib">>/etc/ld.so.conf.d/apache.conf

ldconfig -v| grepapache


3)、帮助文档的使用  /etc/man.conf    MANPATH

/etc/man.config man手册的路径

       1        

echo"MANPATH /usr/local/apache/man ">>/etc/man.config

然后就可以直接使用man httpd等命令了,不在配置文件中指定路径可以直接

man -M /usr/local/apache/man httpd


4)、关联系统所识别的头文件

把头文件的路径链接到系统头文件中, ln  -sv 源  目的  /usr/include

       1        

ln-sv /usr/local/apache/include//usr/include/apache

做完这些操作后源码包安装的软件的使用方法可以和rpm安装的使用方法相似了

[root@Redhat6 ~]# apachectl start    #开启服务


4、软件包安装之rpm源码包src安装

1)先用rpm安装rpm源码包生成spec文件,这个文件在用户家目录的rpmbuild目录下的SPECS里面

     2)在用rpmbuild编译spec文件生成rpm文件

     3)然后用rpm或者yum安装生成的rpm包



下载nginx的rpm源码包,通过此包来安装nginx,所需包的下载地址


ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-devel-1.4.8-1.el6.x86_64.rpm

ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-1.4.8-1.el6.x86_64.rpm



       1        

       2        

       3        

       4        

       5        

       6        

       7        

       8        

       9        

       10        

       11        

       12        

       13        

       14        

       15        

       16        

       17        

       18        

       19        

       20        

       21        

       22        

       23        

       24        

       25        

       26        

       27        

       28        

       29        

       30        

       31        

       32        

       33        

[root@Redhat6 opt]#yum -y install rpm-build

[root@Redhat6 opt]#useradd -r mockbuild  #先添加一个用于安装src包的系统用户

[root@Redhat6 opt]#rpm -ivh nginx-1.0.15-5.el6.src.rpm  #在安装src包,安装完成后会再用户的家目录生成一个rpmbuild的文件

[root@Redhat6 ~]# cd ~/rpmbuild/

[root@Redhat6 rpmbuild]# ls

SOURCES  SPECS

[root@Redhat6 rpmbuild]# cd SPECS/

[root@Redhat6 SPECS]# ls

nginx.spec

[root@Redhat6 SPECS]# rpmbuild -ba nginx.spec  #编译rpm源码包

error: Failed build dependencies:  #需要解决依赖性包,GeoIP-devel包可以在网上下载

   GeoIP-devel is needed by nginx-1.0.15-5.el6.x86_64

   gd-devel is needed by nginx-1.0.15-5.el6.x86_64

   libxslt-devel is needed by nginx-1.0.15-5.el6.x86_64

   pcre-devel is needed by nginx-1.0.15-5.el6.x86_64

#在网上下载这些包了之后用yum安装解决依赖性

[root@Redhat6 opt]#yum -y install  GeoIP-1.4.8-1.el6.x86_64.rpm GeoIP-devel-1.4.8-1.el6.x86_64.rpm  libxslt-devel pcre-devel gd-devel

[root@Redhat6 rpmbuild]# cd SPECS/

[root@Redhat6 SPECS]# rpmbuild -ba nginx.spec   #编译生成rpm包

[root@Redhat6 SPECS]# cd /root/rpmbuild/

[root@Redhat6 rpmbuild]# ls

BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

[root@Redhat6 rpmbuild]# cd RPMS/

[root@Redhat6 RPMS]# ls

x86_64

[root@Redhat6 RPMS]# cd x86_64/

[root@Redhat6 x86_64]# ls

nginx-1.0.15-5.el6.x86_64.rpm  nginx-debuginfo-1.0.15-5.el6.x86_64.rpm

[root@Redhat6 x86_64]# rpm -ivh nginx-1.0.15-5.el6.x86_64.rpm

Preparing...                ########################################### [100%]

  1:nginx                  ########################################### [100%]

[root@Redhat6 x86_64]# service nginx start

Starting nginx:                                            [  OK  ]



通过rpm源码包安装的访问已经能够成功了。










本文转自 jie783213507 51CTO博客,原文链接:http://blog.51cto.com/litaotao/1258450,如需转载请自行联系原作者

目录
相关文章
|
2天前
|
Ubuntu Java Linux
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
28 10
|
3天前
|
Linux
Linux安装svn并启动
Linux安装svn并启动
34 10
|
30天前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
64 20
|
22天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
59 7
|
2月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
206 7
|
9月前
|
运维 Ubuntu 安全
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
|
Ubuntu Linux C语言
Linux下 tar命令(工具)的移植,源码下载、详细移植步骤
Linux下 tar命令(工具)的移植,源码下载、详细移植步骤
687 0
Linux下 tar命令(工具)的移植,源码下载、详细移植步骤
|
Linux
linux实现cp命令与linux下打开文件并写入源码
linux实现cp命令与linux下打开文件并写入源码
338 0