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
下一篇 2016-08-24

相关推荐

  • 一键获取MySQL账户及相关的权限

    有时候,运维同学可能在做grant授权时候,给的用户权限太高了,有风险。因此,我们接手服务器后有必要检查一遍用户权限。 #!/bin/bash# 一键获取MySQL账户及相关的权限 user=’root’ password=’123456′ MYSQL_CMD=’/usr/local/mysql/b…

    Linux干货 2017-05-07
  • 第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# awk -F: '/^(root|user1|fedora)/{print $1,"shell is",$NF}' /etc/pass…

    Linux干货 2016-09-15
  • 自动化运维工具Puppet

        开发puppet模块,nginx负载均衡并反代动态请求至httpd,httpd用ajp连接器将反代请求至tomcat,并部署tomcat-session-memcached 架构图为 在master主机上开发的模块为: 1、chrony模块; ├── chrony│   ├── files│…

    2017-07-28
  • N25-Week9

    1. 写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);分别统计这两类用户的个数,通过字符串比较来实现 #! /bin/bash#写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);#分别统计这两类用户的个数#通过字符…

    Linux干货 2017-03-10
  • 计算机组成及功能

    计算器:进行逻辑和算数运算 控制器:读取,接受,发出控制指令 存储器:存取程序和数据 I/O设备:输入指令并显示到标准输出设备

    Linux干货 2018-03-03
  • shell脚本的一点补充

    脚本内容补充 数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 数组名和索引 索引:编号从0开始,属于数值索引注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引不连续) 数组的使用 声明数组: declare -a ARRAY_NAME…

    Linux干货 2016-08-24