【Linux】Linxu上rpm、yum和源码编译安装

一、导读

在使用Linux系统的过程中,软件包的安装是避免不了的,在Linux下,软件安装程序的种类很多,安装方法也格式各样.

论安装的舒适肯定比不上windows,windows安装软件基本就是用鼠标点击下一步,如果学习Linux的软件包安装,还像windows那样点击鼠标下一步安装,那就太对不起linux的shell了,Linux的shell比linux的图形化界面要强大太多了。

好了废话不多说了,安装软件包,首先要了解软件包的组成。


二、rpm包命名规则




软件包由二进制文件、库文件、配置文件、帮助文件、头文件等这重要的部分组成。

他们分别存放在系统的那些路径里面?


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

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

配置文件:/etc

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

头文件:/usr/include/


三、软件包的rpm安装


# rpm -ivh  nginx-1.12.2-2.el7.x86_64.rpm


# rpm -ql nginx

# rpm -qc  nginx

# rpm  -qi  nginx


# rpm -ivh  httpd-2.4.6-88.el7.centos.x86_64.rpm


四、软件包的yum安装

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

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

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

#  ll  /etc/yum.repos.d/



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仓库

#  mount  /dev/cdrom    /media

#  vim  /etc/yum.repos.d/iso.repo

##############################

[iso]

name=CentOS7.x

baseurl=file:///media/

gpgcheck=0

enable=1

################################

搭建外网的yum仓库(sohu的yum源)


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

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


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

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


常用的几个rpm包下载网站:

http://rpm.phone.net

http://www.rpmfind.net

http://pkgs.org


用yum搭建本地yum仓库

假设你将自己下载的rpm包放在  /mnt/rpms 目录下

# createrepo  -v  /mnt/rpms

# vim  /etc/yum.repos.d/localrepo.repo

#############################

[LocalRepo]

name=LocalRepositry

baseurl=file:///mnt/rpms

gpgcheck=0

#################################

# yum clean all

# yum repolist


用yum安装组包

# yum  -y  groupinstall      "DesktopPlatform Development"   

# yum  -y  groupinstall      "Development  tools" 

# yum  -y  groupinstall      "Server Platform Development"


五、软件装的tar源码包的编译安装

tar编译安装的三部曲:

    1) configure          检测编译环境,设置预编译参数

    2) make                进行编译

    3) make install      编译安装

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

# yum  -y  groupinstall  "Development  tools" 

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

#  tar jxf  httpd-2.2.25.tar.bz

# cd httpd-2.2.25

# ./configure --prefix=/usr/local/apache  --enable-so  --enable-rewrite

# make

# make install

查看编译生成的文件

# ls  /usr/local/apache


用tar包编译安装后,需要添加相关环境变量


添加PATH路径

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

# source  /etc/profile.d/apache.sh


添加库文件的搜索路径

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

# ldconfig

#  ldconfig -v|grepapache


关联系统所识别的头文件

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


# apachectl start   



六、软件包安装的src.rpm源码包安装

#  yum  -y install rpm-build  gcc  make  redhat-lsb-core  libuuid-devel

# wget  http://120.52.51.13/nginx.org/packages/mainline/centos/7/SRPMS/nginx-1.15.0-1.el7_4.ngx.src.rpm

# useradd  builder

#  cp nginx-1.15.0-1.el7_4.ngx.src.rpm  /home/builer

# su - builder

$ rpm -ivh nginx-1.15.0-1.el7_4.ngx.src.rpm

$ ll  -R rpmbuild/

$ cd rpmbuild/SPECS

$  rpmbuild  -bb  nginx.spec


$ cd  /home/builder

$  ll  -R

$ su  - root

# rpm  -ivh  /home/builder/rpmbuild/RPMS/x86_64/nginx-1.15.0-1.el7_4.ngx.x86_64.rpm


#  systemctl start nginx

# systemctl status nginx




七、参考


Linux根目录解析

https://www.cnblogs.com/puloieswind/p/5856658.html


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

https://blog.51cto.com/litaotao/1258450


How to setup Pagespeed module in Nginx using rpm or yum on CentOS 7

https://www.webfoobar.com/node/27

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343