程序包的编译安装

前言:

不管是rpm安装还是yum安装都是以二进制格式进行安装的,是别人编译好的程序包,我们无需再编译就能使用,但未必在所有情况下都适用,所以只能自己编译安装,通过自己编译安装可以根据自己的需求编译程序包的功能,rpm包分为编译好的rpm包,还有一种源码rpm包。



程序包编译安装:testapp-VERSION-release.src.rpm格式的rpm包安装后使用rpmbuild命令制作成二进制的rpm包,再安装。可以将此种rpm包编译制作成完全符合自己平台需要版本的程序包。

大致过程: 源代码 -->预处理 -- >编译(gcc)-->汇编 -->链接 -->执行

源代码组织格式:多文件,文件中的代码之间,很可能存在跨文件的依赖关系;所以需要项目管理工具解决这些复杂的关系。

make项目管理工具:自动调用于处理器做预处理,自动调用编译器进行编译,调用汇编器做汇编,调用链接器做链接,大大简化了我们编译安装的步骤。

mikefile文件:make的配置文件,根据不同的源代码做出不同的决定,不是事先存在的,因为对每个不同的用户来说需要是不一样的,是由configure脚本传递参数给Makefile.in,再以Makefile.in为模版生成的文件。configure脚本能够允许用户传递编译参数,启用特性,安装路径等等参数,然后再以

Makefile.in文件为模版生成makefile文件。

编译安装三步骤

第一步:   ./confiugre

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

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

第二步:   make :

根据makefile文件,构建应用程序

第三步: make install

相当于cp 命令,复制相应的文件到指定的目录

有些情况下并没有configure脚本和Makefile.in文件的存在,所i就需要一些开发工具生成这些文件

开发工具:

autoconf: 生成configure脚本文件

automake:生成Makefile.in文件

建议:安装前查看INSTALL,README文档



开源成需源代码的获取:

官方的自建站点:

apache.org

mariadb.org

代码托管:

SourceForge

Github.com

code.google.com

c/c++源代码的编译器:gcc(GNU c complier)

编译c源代码程序: ./confiugre -->  make --> make install

前提:提供开发工具及开发环境

开发工具:make, gcc等

开发环境:开发库,头文件

glibc:标准库

 通过“包组”提供开发组件

    CentOS 6: "Development Tools", "Server Platform Development",



首先在CentOS系统上安装gcc编译器,如图:

第一步:configure脚本

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

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

选项分类:

安装路径设定:

--prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/

--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

System types:

Optional Features: 可选特性

--disable-FEATURE(禁用此特性)

--enable-FEATURE[=ARG](启用此特性)

Optional Packages: 可选包

--with-PACKAGE[=ARG]

--without-PACKAGE



编译安装httpd程序:

第一步:

下载httpd程序源代码

查看源代码安装包的INSTALL文件,会显示安装步骤:

第二步:

使用./configure脚本执行安装

并指明安装目录和未知文件安装位置

httpd-2.2.29]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2

第三步:

执行make

第三步:

执行make install

完成之后查看安装结果

第四步:

启动程序:在/apache2/bin目录下有apachectl文件是该程序的启动脚本,利用它启动程序

然后启动该程序

查看网络连接状态,如果显示80端口已经处于监听状态就表示httpd已经启动:

通过服务器就可以访问该地址

安装后的配置:

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

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

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

(2)  导出库文件路径

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

添加新的库文件坐在目录至此文件中

让系统重新生成缓存

(3)导出头文件

基于链接的方式实现;

ln -sv

(4)导出帮助手册

编辑/etc/man.config文件

添加一个MANPATH

时间: 2024-10-14 22:29:33

程序包的编译安装的相关文章

【Linux相识相知】yum的配置使用和程序包的编译安装

在上一篇博客中,写到了如何使用rpm命令来安装.卸载软件等,但是大家都知道,各个软件包之间可能存在依赖关系,如果安装某个软件需要额外的依赖其他若干的包,那么我们就需要将其他额外的包一个一个的安装上去,这样的一个过程是非常耗时的,所以出现了一个前端工具,如yum,dnf,apt-get等,本次博客就centos上的yum和程序包的编译安装做出详细的描述,最后还通过实际的例子介绍了程序包的编译安装. yum的实现原理 yum实现软件包的获取其实是基于C/S架构的,C为你的主机,S为yum repos

程序包的yum安装

前面在说到rpm安装程序时就说过它有一个缺陷,不能解决程序间的依赖关系,而yum能在安装过程中自动解决依赖关系,安装非常方便. 那么什么是yum呢? yum是基于C/S架构,需要一个服务器端给我们提供各个程序包以及他们之间的依赖关系,当客户端从服务器端下载安装程序时,服务器端会查找元数据信息,包括包的依赖关系,会把依赖的包一起下载到客户端安装. 所以我们需要一个指向这个服务器的配置文件,配置文件在/etc/yum.repos.d/目录下以.repo结尾的配置文件. 该配置文件的格式如下: [re

如何下载Office365离线安装程序包并手动安装?

如何下载Office365离线安装包并手动安装? ?Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk 工程师实战培训课程:https://edu.51cto.com/lecturer/733218.html轻松进外企:IT Helpdesk工程师实战自学之路:https://blog.51cto.com/lander/2413018更新时间:2019/7/10

rpm和yum的使用,程序包编译安装以及编译apache过程中出现的问题

一.rpm包管理 用法: rpm [选项...] 查询/验证软件包选项: -a, --all                        查询/验证所有软件包 -f, --file                       查询/验证文件属于的软件包 -g, --group                      查询/验证组中的软件包 -p, --package                    查询/验证一个软件包 --pkgid                          

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

博客9:程序包的管理,以及软件的安装和管理

1.对于二进制应用程序的认识  (1)组成部分:       二进制文件,库文件,配置文件,帮助文件(前两项是由源代码组成的)  (2)程序包管理器:       debian:deb,dpt       redhat:rpm,rpm  (3)源代码的命名方式       name-VERSION.tar.gz       其中VERSION:major.minor.release 2.查看二进制程序所依赖的库文件   # ldd /PATH/TO/BINARY_FILE  管理以及查看本机装载

2018-3-24Linux系统管理(12)程序包管理(3)yum前端配置及编译

我们在这一章当中继续讲述yum命令,而后我们简单讲述一下源代码安装包的编译及使用. 一.yum的命令行选项 我们在yum的配置文件中,一旦gpgckeck=1时,就意味着我们安装程序包时,必须要检查gpgckey的密钥了,而后也必须指明该密钥文件的路径,否则不给予安装,我们可以在命令行中可以指定禁止gpgckeck,因为命令行优先级要高于配置文件,那么在众多的选项当中,有一种可以禁止检查gpg验证功能的选项叫做--nogpgcheck,那么我们现在将常用的命令行选项总结如下:    yum的命令

程序包管理--yum

yum repository: yum仓库        存储了众多rpm包,以及包的相关元数据的文件(放在repodata目录中)服务器 文件服务:           http://            ftp://            nfs://            file:/// yum客户端:     配置文件:指向仓库的位置以及各种配置信息:每个yum客户可以有多个可用的yum仓库: 有两部分组成: 主配置文件:/etc/yum.conf              /etc

Linux的程序包管理器(上)——rpm详解

在使用Linux操作系统的过程中,我们需要的一些服务(例如Nginx)并没有提供,需要用户自行安装相应的程序包,才能使用相应的服务.本文以CentOS6.6为例,分三小节为读者朋友们尽可能详细的讲解rpm.yum以及程序包的编译安装三种程序包的管理方法. rpm rpm包管理工具是Red Hat公司贡献的一款rpm程序包管理器,在RHEL.CentOS.Fedora.SUSE等主流发行版本中,被广泛使用. rpm包管理工具可用于安装,升级,卸载,重新安装程序:也可以用于查询当前系统上安装了哪些程