程序包编译

程序包编译安装:
Application-VERSION-release.src.rpm –> 安装后,使用rpmbuild命令制作 成二进制格式的rpm包,而后再安装
源代码–>预处理–>编译–>汇编–>链接–>执行
源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件依赖关系
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
开源程序源代码的获取:
官方自建站点:
apache.org (ASF:Apache Software Foundation)
mariadb.org …
代码托管:
SourceForge.net
Github.com
code.google.com
c/c++编译器: gcc (GNU C Complier)

编译C源代码:
准备:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件
glibc:标准库
实现:通过“包组”提供开发组件
Development Tools
Server Platform Development

编译安装
解压缩后要进到解压后的文件夹里进行下面的
第一步:configure脚本
示例:
./configure \
–prefix=/app \ 把程序安装到/app下
–sysconfdir=/etc/http22 \ 配置文件单独放在/etc/http22下
–enable-ssl 启用服务(加密服务)
选项:指定安装位置、指定启用的特性
–help: 获取其支持使用的选项 (大部分都是带–help功能的)
选项分类:
安装路径设定:
–prefix=/PATH: 指定默认安装位置,默认为/usr/local/
–sysconfdir=/PATH:配置文件安装位置
System types:支持交叉编译

Optional Features: 可选特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可选包
–with-PACKAGE[=ARG],依赖包
–without-PACKAGE,禁用依赖关系
注意:通常被编译操作依赖的程序包,需要安装此程序包的“开发”组件,其包名 一般类似于name-devel-VERSION
第二步:make
示例:
make -j 4 && echo -e “\a” && sleep 1 && echo -e “\a” && sleep 1 && echo -e “\a”
成功后响几声 没一声中间听几秒
第三步:make install
apachectl start启动服务

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96860

(0)
张陆禄张陆禄
上一篇 2018-04-22
下一篇 2018-04-22

相关推荐

  • DNS服务

    DNS服务 为什么要使用DNS? 为了把FQDN解析成IP地址。 FQDN    全称域名 www.magedu.com         全称域名由主机名和域名组成 www     主机名(hostname),或者别名 magedu.com      域名(domain)   /etc/hosts       分散式的解决方案 NIS       …

    Linux笔记 2018-06-03
  • 常用进程命令

    命令行格式: 名称:ps使用权限:所有使用者使用方式:ps [options] [–help]说明:显示瞬间行程 (process) 的动态参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A 列出所有的进程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程 ps命令常用用法: (方便查…

    Linux笔记 2018-05-05
  • 1

    1

    Linux笔记 2018-05-26
  • 如何制作Linux服务脚本

    Linux服务脚本示例

    2018-05-10
  • 脚本相关

    变量 echo $name 与 echo “$name” 假如变量是读取文件,前者会自动缩进成一行,后者保留原有格式 (umask=022,mkdir /f1)括号相当于开启一个临时子进程,能读取当前shall的变量等信息,但是进程号不变,命令结束后恢复刚才状态 局部变量,环境变量,只读变量(常量),位置变量,数组 局部变量:只在当前…

    2018-05-14