SRPM具体使用过程

SRPM

简介:SRAM是Source RPM的意思,就是RPM的源代码的意思,这个SRPM就是没有经过编译的源代码。如果我们想要安装一个SRPM软件,那么就必须:

  1. 先将该软件以RPM管理的方式编译,将SRPM编译成为RPM文件

  2. 然后将编译完成的RPM文件安装到Linux系统中。

一.程序包编译:

  • 程序包编译安装:

  • Application-VERSION-release.src.rpm –> 安装后,使 用rpmbuild命令制作成二进制格式的rpm包,而后再安装

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

  • 源代码组织格式:

多文件:文件中的代码之间,很可能存在跨文件依赖关系

C、C++:make (项目管理器,configure –> Makefile.in –> makefile) java: maven

二.源码安装需要的管理工具

  • C代码编译安装三步骤:

1、./configure:

    (1) 通过选项传递参数,指定启用特性、安装路径等;执 行时会参考用户的指定以及makefile.in文件生成makefile

    (2) 检查依赖到的外部环境

2、make:根据makefile文件,构建应用程序

3、make install:复制文件到相应路径

    • 开发工具:

autoconf: 生成configure脚本

automake:生成Makefile.in

    • 注意:安装前查看INSTALL,README

三.编译安装的步骤

    • 第一步:configure脚本

    选项:指定安装位置、指定启用的特性

        –help: 获取其支持使用的选项

    选项分类:

    安装路径设定:

            –prefix=/path/to/somewhere      软件默认安装位置(/usr/local)

            -sysconfdir=/PATH/to/CONFFILE_PATH 指定配置文件路径(若不指定路径则安装在默认的路径下)

System types:支持交叉编译

       Options Features: 可选特性

        –disable-FEATURE

        –enable-FEATURE[=ARG]

Optional Packages:可选包即依赖的包。

        –with-PACKAGE[=ARG]依赖包

        –without-PACKAGE禁用依赖关系

    • 第二步:开始编译安装:

    • 第三部:安装后所需操作:

(1) 导出为二进制程序目录至PATH环境变量中:

 作用:修改PATH环境变量,以能够识别此程序的二进制文件路径:

    编辑文件/etc/profile.d/NAME.sh

    export PATH=/PATH/TO/BIN:$PATH

    修改/etc/profile文件

    在/etc/profile.d目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere 也可在/etc/profile添加此路径。

(2) 导入库文件路径

    编辑/etc/ld.so.conf.d/NAME.conf

    添加新的库文件所在目录至此文件中,在/etc/ld.so.conf中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中;

    让系统重新生成缓存:

    ldconfig [-v]

(3) 导入头文件

    基于链接的方式实现:

    ln -sv

    增添头文件搜寻路径,使用链接进行;

      /usr/local/”xx”/include/     /usr/include/

  两种方式:

       ln  -sv  /usr/local/”xx”/include/*   /usr/include/

       ln  -sv  /usr/local/”xx”/include    /usr/include/”xx”

(4) 导入帮助手册

      man文件路径:安装在—prefix制定的目录下的man目录: /usr/share/man

    • man  -M  /PATH/to/MAN_DIR     COMMAND

    • 在辑/etc/man.config|man_db.conf中添加一条MANPATH

一、实例:

1、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序

blob.png

#!/bin/bash

echo "please input a number list"

read -a arrs

for((i=0;i<${#arrs[@]};i++)){

for((j=0;j<${#arrs[@]}-1;j++)){

if [[ ${arrs[j]} -gt ${arrs[j+1]} ]];then

tmp=${arrs[j]}

arrs[j]=${arrs[j+1]}

arrs[j+1]=$tmp

fi

}

}

echo ${arrs[@]}

2、源码安装apache

首先安装lftp使用它进入教室网络环境。

blob.png

找到http路径

blob.png

解压缩

blob.png

blob.png

make编译  make install安装

blob.png


blob.png

之后在配置man配置文件

blob.png

成功

blob.png

原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/39912

(1)
502795641502795641
上一篇 2016-08-24 21:21
下一篇 2016-08-24 21:21

相关推荐

  • 任务计划

    Linux 任务计划、周期性任务执行 未来的某时间点执行一次任务 at batch :系统 自行选择空闲时间去执行此处指定的任务 周期性运行某任务 cron [root@localhost ~]# rpm -q at (CentOS6中使用) at-3.1.10-48.el6.x86_64 [root@localhost ~]# rpm -ql at /et…

    Linux干货 2017-05-13
  • linux-系统自动化安装

    一、安装程序及配置 CentOS 系统安装 系统启动流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init anaconda: 系统安装程序 tui:  基于图形库curses 的文本 窗口 gui :图形窗口 安装程序启动过程 MB…

    Linux干货 2016-09-26
  • 函数式编程

    当我们说起函数式编程来说,我们会看到如下函数式编程的长相: 函数式编程的三大特性: immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修改。这样一来,可以让你的程序少很多Bug。因为,程序中的状态不好维护,在并发的时候更不好维护。(你可以试想一下如果你的程序有个复杂的状态,当以后别…

    Linux干货 2016-08-15
  • 管窥Linux史

    管窥Linux史 众所周知,绝大部分发行版本都被称为类Unix系统,要说Linux就应该先了解Unix的历史,Unix的起源应该赘述MULTICS的历史,Unix的父辈是颇具开拓性的Multics项目…… Unix创世纪 二战结束以后,冷战开始了。1957年苏联发射了第一颗人造卫星,进而开始筹备发射载人宇宙飞船。与此同时,美国宇航局的研究却连连受挫。航天领域…

    Linux干货 2016-10-14
  • 庆祝马哥成为51cto学院Linux运维金牌讲师第一人

    讲师何其多,金牌只一人(2016免费课程在底部) 某天,小编听到: linuxer1:听说51CTO学院评出了一个Linux金牌讲师!只有一人呢! linuxer2:用腿想,就知道肯定是马哥喽! linuxer3:前段时间马哥又分享了2016最新课时,限时免费学习呢!10086个赞!我和我的好基友们都在学习! linuxer4:马哥的51CTO课程学员都两百…

    2016-04-14
  • Mariadb的主从复制实验和半同步的实现

    1,主服务器需要开启二进制日志记录,并且授权一个用户给从节点。 主服务器的主配置文件[mysqld]内容如下。 [mysqld] port= 3306 socket= /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_…

    2017-09-18