设为首页 收藏本站
查看: 923|回复: 0

[经验分享] CentOS程序包管理、下

[复制链接]

尚未签到

发表于 2018-4-19 12:04:17 | 显示全部楼层 |阅读模式
  CentOS程序包管理(3)
  应用程序的编译安装(C/C++)
为什么要进行应用程序源代码的编译安装?
    1.对应应用程序的程序包不能直接获取到;
    2.在已经编译好的二进制格式的程序的功能不包含我们所需要的;
    3.在已经编译好的二进制格式的程序中,包含太多的我们所不需要的功能;
软件项目管理工具:
    C/C++:make
        Makefile
应用程序源代码的分类:
    1.由程序员直接打包的源代码
        name-VERSION.tar.gz
    2.由第三方利用rpm工具制作的rpm源代码包:
        name-VERSION-release.src.rpm
源代码的组织形式:
    1.一个应用程序包含多个文件;
    2.某个文件中的不同的代码段之间,甚至不同文件的代码段之间都可能存在依赖关系;
应用程序源代码的编译过程:
    源代码 --> 预处理(预处理器,CPP) --> 编译(编译器,CC[gcc]) --> 汇编(汇编器) --> 链接(链接器) --> 用于执行操作的二进制程序文件
Makefile文件的功能:
    1.包含了各个程序源代码文件之间的关系;
    2.决定文件的编译顺序;
    3.使用哪个预处理器进程何种预处理操作;
    4.使用哪个编译器进程何种编译操作;
    ...
程序员通过使用专用工具,对于所有的源代码文件进行内容的分析和提取,并构建出一个同一的makefile文件的绝对模板,即:Makefile.in
有了这个模板,用户可以根据自己的需求,自行构建Makefile文件,从而可以实现个性化的编译过程;帮助用户生成Makefile文件的是一个名为"configure"的脚本;
开发工具:
    autoconf:帮助用户生成configure脚本文件;
    automake:帮助用户生成Makefile.in的模板文件;
建议:在获取任何源代码包并解压缩之后,要去读取其中随程序源代码提供的"INSTALL"或"README"类的文档文件,以获知该应用程序源代码的编译步骤;
开源应用程序的源代码的获取方式:
    1.官方自建的资源站点:
        apache.org(ASF)
        MariaDB --> mariadb.org
        varnish-cache.org
        ...
    2.代码托管站点:
        SourceForge
        Github
        code.google.com
Linux中进行C/C++源代码编译时使用的编译器:gcc,GNU C Compiler
在使用NAT模式联网进行软件包的安装的时候如果出现/var/run/yum.pid 已被锁定,PID 为 4040 的另一个程序正在运行等相同问题,则~]# rm -f /var/run/yum.pid
在执行安装命令~]# yum install gcc
编译源代码所需的开发环境:(程序包组)
    CentOS 7:
        Development Tools
        Compatibility Libraries
    CentOS 6:
        Development Tools
        Server Platform Development
注意:程序包组中所包含的开发环境并不是非常完整,如果某个应用程序在编译时有其他环境要求的话,需要安装对应应用程序的开发工具包;
    如果有rpm格式的开发工具包,其名称为name-devel-VERSION-release.rpm,则可以使用yum直接安装;
    如果没有对应的rpm格式的开发工具包,则需要优先编译安装开发工具;  编译源代码安装应用程序的三大步骤:
  1.利用configure脚本生成Makefile文件;
  ~]# ./configure [option]...
  --help
  --prefix:选择程序安装的路径;
  --enable-function:
  --with-function:
2.使用项目管理工具"make"进行编译;
    注意:有一些应用程序在实施编译操作之前需要测试(make test)
3.使用"make install"命令进行编译后的二进制文件的最后的安装;  编译安装完成以后的收尾工作:
  1.导出二进制文件的路径;
  2.导出库文件路径;
  3.导出头文件路径(可选);
  4.导出帮助文件路径;
  尝试编译安装httpd:(这些安装包首先要事先存在于你的系统内存当中,如果没有可以到相关网站进行下载)
  1.安装apr
  ~]# tar xf apr-1.5.2-tar.bz2
  ~]# cd apr-1.5.2
  ~]# ./configure --prefix=/usr/local/apr-1.5.2
  ~]# make [-j 4]
  ~]# make install
2.安装apr-util
    ~]# tar xf apr-util-1.5.4-tar.bz2
    ~]# cd apr-util-1.5.4
    ~]# ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2
    ~]# make [-j 4]
    ~]# make install
3.安装httpd
    ~]# tar xf httpd-2.4.29-tar.bz2
    ~]# cd httpd-2.4.29
    ~]# ./configure --prefix=/usr/local/apache-2.4.29 --with-apr=/usr/local/apr-1.5.4 --with-apr-util=/usr/local/apr-util-1.5.4 --with-pcre
    ~]# make [-j 4]
    ~]# make install
    注:因为需要pcre的支持,所以需要事先安装pcre-devel包;
收尾工作:
    1.导出二进制文件:
        创建一个文件:/etc/profile.d/httpd.sh
            export PATH=/usr/local/apache-2.4.29/bin:$PATH
    2.导出库文件:
        创建一个文件:/etc/ld.so.conf.d/httpd.conf
            /usr/local/apache-2.4.29/lib64
    3.导出头文件;
        创建符号链接:
            ~]# ln -sv /usr/local/apache-2.4.29/include /usr/include/httpd
    4.导出帮助文档:
        对于CentOS7来说,在导出二进制文件时已经自动导出了帮助文档;如果没有成功导出,则需要在/etc/man_db.conf文件中添加一行:
            MANPATH_MAP=/usr/local/apache-2.4.29/bin /usr/local/apache-2.4.29/man
        对于CentOS6来说,需要手动导出:
            在/etc/man.config中添加一行:
                MANPATH=/usr/local/apache-2.4.29/man

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-448928-1-1.html 上篇帖子: CentOS7.4—构建Apache+Nginx动静分离 下篇帖子: CentOS7.4—构建LVS+Keepalived高可用群集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表