热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

2019独角兽企业重金招聘Python工程师标准在使用linux系统的过程中,软件包的安装是避免不了的,在linux下,软件安装程序

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

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

二进制文件:/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

 

171716_qylH_2397255.png

172105_OMeJ_2397255.png

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

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

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

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默认为1,1表示启用此仓库,0表示不启,

     6)gpgcheck默认也是为1,1表示检查公钥,当检查公钥时要指定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&#61;centos6.4-x86_64

baseurl&#61;file:///media/

gpgcheck&#61;0

enable&#61;1

EOF

 

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

1

2

3

4

5

6

7

8

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

[sohu]

name&#61;Internet-centos

baseurl&#61;http://mirrors.sohu.com/centos/$releasever/os/$basearch

gpgcheck&#61;1

enable&#61;1

gpgkey&#61;http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-6

EOF

$releasever:表示你的系统的版本&#xff0c;变量会自动的检测你的版本

 

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

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

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

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

http://rpm.phone.net

http://www.rpmfind.net

http://pkgs.org/

 

103521896.png

103641463.png

 

103553135.png

 

 

1

2

3

4

5

6

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

[xen]

name&#61;centos-xen

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

gpgcheck&#61;0

EOF

搭建完xen的yum后&#xff0c;可以用yum安装xen了

104159653.png

yum常用的命令&#xff1a;

 

操作命令

命令解释

列表

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仓库的个数&#xff0c;默认显示启用的

 

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编译安装的三部曲:

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

    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源码包可以先安装开发工具&#xff0c;可以减少安装相关的依赖性包

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

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

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

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

[root&#64;Redhat6 httpd-2.2.25]# make  #编译

[root&#64;Redhat6 httpd-2.2.25]# make install  #编译安装

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

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

bin    cgi-bin  error   icons    lib   man     modules

build  conf     htdocs  include  logs  manual

 

 

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

 

1)、改PATH环境变量

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

 

1

2

echo"PTAH&#61;/usr/local/apache/bin:$PATH">>/etc/profile.d/apache.sh

source/etc/profile

或者直接 export PATH&#61;/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等命令了&#xff0c;不在配置文件中指定路径可以直接

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

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

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

1

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

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

[root&#64;Redhat6 ~]# apachectl start    #开启服务

114007712.png

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

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

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

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

下载nginx的rpm源码包&#xff0c;通过此包来安装nginx&#xff0c;所需包的下载地址

http://mirrors.sohu.com/fedora-epel/6Server/SRPMS/nginx-1.0.15-5.el6.src.rpm

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&#64;Redhat6 opt]#yum -y install rpm-build

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

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

[root&#64;Redhat6 ~]# cd ~/rpmbuild/

[root&#64;Redhat6 rpmbuild]# ls

SOURCES  SPECS

[root&#64;Redhat6 rpmbuild]# cd SPECS/

[root&#64;Redhat6 SPECS]# ls

nginx.spec

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

error: Failed build dependencies:  #需要解决依赖性包&#xff0c;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&#64;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&#64;Redhat6 rpmbuild]# cd SPECS/

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

[root&#64;Redhat6 SPECS]# cd /root/rpmbuild/

[root&#64;Redhat6 rpmbuild]# ls

BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

[root&#64;Redhat6 rpmbuild]# cd RPMS/

[root&#64;Redhat6 RPMS]# ls

x86_64

[root&#64;Redhat6 RPMS]# cd x86_64/

[root&#64;Redhat6 x86_64]# ls

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

[root&#64;Redhat6 x86_64]# rpm -ivh nginx-1.0.15-5.el6.x86_64.rpm

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

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

[root&#64;Redhat6 x86_64]# service nginx start

Starting nginx:                                            [  OK  ]

 

122153281.png

 

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

 

 

 

 


转:https://my.oschina.net/u/2397255/blog/1799878



推荐阅读
  • 20145216《信息安全系统设计基础》第一周学习总结教材学习内容总结Linux基础1.ls命令ls或ls.显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的 ... [详细]
  • Autoware 进行 Robosense16 线雷达与 ZED 双目相机联合标定!
    项目要标定雷达和相机,这里记录下我标定过程,用的速腾Robosense-16线雷达和ZED双目相机。一、编译安装Autoware-1.10.0我没有安装最新版本的Autoware, ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • 总结:先划分窗口,再对每个窗口做高通滤波。不用先滤波再划分。以下转载自http:blog.csdn.netthoughts_stormsarticled ... [详细]
  • 为什么jupyterlab运行程序的时候会自动停止_JupyterLab史上最全详解,全网都在看,赶紧收藏...
    点击上方蓝字关注我们!Jupyter源于IpythonNotebook,是使用Python(也有R、Julia、Node等其他语言的内核)进行代码演示、 ... [详细]
  • MNN windows
    参考:编译转换工具:https:blog.csdn.netjacke121articledetails106407234解决flatc.exe找不到 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 1.Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时 ... [详细]
author-avatar
魅由心生先_941
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有