程序包编译

程序包编译安装:
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

相关推荐

  • linux下find的用法及练习

    find命令详解

    Linux笔记 2018-04-15
  • 初学Linux之标准I/O和管道

    标准输入和输出 程序是由指令+数据组成程序的数据流有三种: 输入数据流:<–标准输入(stdin),一般默认是键盘输出数据流:–>标准输出(stdout),一般默认到终端窗口错误输出流:–>标准错误(stderr),一般默认到终端窗口 标准输入:0标准输出:1错误输出:2 I/O重定向:改变默认位置 输出…

    Linux笔记 2018-04-03
  • rpm包管理

    相关知识 接口 API:二进制接口 ABI:应用层接口, 包的组成: 二进制文件;库文件;配置文件;帮助文档 程序包管理器 debian: deb,dpt apt-agt包管理前段工具 rehat:rpm;rpm yum包管理前段工具 fedora dnf包管理前段工具 安装过的rpm包数据库 /var/lib/rpm/* 管理查看二进制程序依赖的库文件 l…

    Linux笔记 2018-04-22
  • N31-7

    系统启动及安装

    Linux笔记 2018-08-05
  • 马哥的第一节课

    雄关漫到
    跋山涉水

    Linux笔记 2018-07-22
  • 课堂实验

    实验:针对不同的用户设置不同的共享目录和权限 vim /etc/samba/smb.conf[global]workgroup = WANGGROUPsecurity = usernetbios name = smbsrv7passdb backend = tdbsamlog file = /var/log/samba/log.%Ilog level = 2…

    2018-07-01