`
wx1569063608
  • 浏览: 23640 次
文章分类
社区版块
存档分类
最新评论

linux的源码安装

 
阅读更多

1.开放源码、编译程序、可执行文件

    开放源码:程序代码,写给人类看的程序语言,但机器并不认识,所以无法执行。

    编译程序:将程序代码转译称为机器看得懂的语言,类似翻译者的角色。

    可执行文件:经过编译程序变成二进制程序后机器看得懂所以可以执行的文件。

    函数库:类似子程序的角色,可以被调用来执行的一段功能函数。

    编译:编译过程会生成所谓的目标文件,这些文件是以*.o的扩展名形式存在的。

    链接: 在程序中有时会引用、调用其他的外部子程序,或者利用其他软件提供的功能函数,这时就必须在编译过程中将函数库加进去。这样编译程序就可以将所有的程序代码与函数库做一个链接以生成正确的执行文件。

  2.configure、make、tarball的软件

    configure:根据源码检测程序找到所需要的函数库、编译器及其他资料,主动建立makefile文件。

    make:根据makefile定义,设用源代码、函数库、编译器来编译。

    tar文件包括:1.原代码文件,2.检测程序文件,3.本软件的建议说明与安装说明。

  3.gcc的简易用法

    gcc -c hello.c --->将源码编译成为目标文件,并不制作链接等功能。

    gcc -O hello.c -c --->编译的时候依据操作环境给予优化执行速度。

    gcc sinc.c -lm -L /usr/lib -I /usr/include

    -lm指的是libm.so或libm.a这个函数库

    -L后面接的路径是刚才上面那个函数库的搜索目录

    -I后面接的是源码内的include文件的所在目录

    gcc -o hello hello.c 将编译的结果输出成某个特定名

    gcc -o hello hello.c -Wall 输出更多的信息说明

   4.makefile的基本语法和变量

    makefile中的变量:

    1.变量与变量内容以“=”隔开,同时两边可以具有空格

    2.变量左边不可以有不可有<tab>

    3.变量与变量内容两边不能有“:”

    4.习惯上变量以“大写字母”为主,运用变量以${}获取

    makefile的文件格式:

    目标(target) :目标文件1 目标文件2

    <tab> gcc -o 欲新建的可执行文件1 目标文件1 目标文件2

    5.tarball软件安装的过程

        ./configure 
         --help
         --prefix=/path/to/somewhere
         --sysconfdir=/PATH/TO/CONFFILE_PATH
         功能:1、让用户选定编译特性;2、检查编译环境;

    1.tar xf tengine-1.4.2.tar.gz

        cd  tegnine-1.4.2

        ./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf

         make
         make install
         /usr/local/tengine/sbin/nginx

      1、修改PATH环境变量,以能够识别此程序的二进制文件路径;
     修改/etc/profile文件
     在/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义

      export   PATH=$PATH:/path/to/somewhere
     2、默认情况下,系统搜索库文件的路径/lib, /usr/lib; 要增添额外搜寻路径:
      在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中;
      # ldconfig 通知系统重新搜寻库文件
       -v: 显示重新搜寻库的过程
     3、头文件:输出给系统
      默认:/usr/include
      增添头文件搜寻路径,使用链接进行:
      /usr/local/tengine/include/   /usr/include/
      两种方式:
      ln -s /usr/local/tengine/include/* /usr/include/ 或
      ln -s /usr/local/tengine/include  /usr/include/tengine
    4、man文件路径:安装在--prefix指定的目录下的man目录;/usr/share/man 
      1、man -M /PATH/TO/MAN_DIR COMMAND
      2、在/etc/man.config中添加一条MANPATH  

     6.函数库管理

    静态库:

    扩展名 .a

    编译行为:编译的时候直接整合到执行程序当中。

    独立执行状态:编译成功的可执行文件可以独立执行。

    升级难易度:函数库升级,将此含数据纳入的所有程序都得重新编译

    动态库:

    扩展名    .so

    编译行为: 动态函数库在编译的时候,在程序中只有一个指向的位置而已。

    独立执行的状态:不能独立执行。

    升级难易度:相对容易。

    7.ldconfig和/etc/ld.so.conf

    如果我们将常用到的动态函数库先加载到内存中,当软件需要使用函数动态库时,就不需要从头到硬盘里面读取,这样就可以加快动态函数库的读取速度。

    操作步骤:

    1).首先,我们必须要要在/etc/ld.so.conf里面写下想要读入高速缓存当前的动态函数库所在的目录

    2).接下来则是利用ldconfig这个可执行文件将2507803129的数据读入缓存中

    3).同时也将数据记录一份在/etc/ld.so.cache中

    1. 添加在/etc/ld.so.cache中一行,或者在/etc/ld.so.cache.d中添加一个.conf文件

    2.ldconfig

    3.ldconfig -p

    8.ldd视察相关版本库之间的相关性

    ldd -v:列出所有内容

            -d:重新将有丢失的link点显示出来

            -r:将ELF有关的错误内容显示出来

    例子:

    linux下安装jdk1.7

    1.首先需要查看当前的linux系统是32位的还是64位的,

     175931_Xfqw_1861951.jpg

    2.从官网上下载jdk版本,现在已经到1.8版本了,不过还一直在用1.7版本。放这儿一个链接

       http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html

    这里选择下载的是jdk-7u79-linux-i586.tar.gz,该归档文件时一个二进制文件,直接解压缩就可以使用。

    3.上传到linux服务器,具体目录为

       180333_Rfo6_1861951.jpg

    4.对jdk进行设定配置文件

    180503_ta16_1861951.jpg

    5.jdk的验证和使用

    180706_m1Xx_1861951.jpg

    

转载于:https://my.oschina.net/alfredliukai/blog/506010

分享到:
评论

相关推荐

    Linux源码安装Apache

    Linux源码安装Apache

    Linux源码安装SVN环境依赖包

    apr-1.7.0.tar.gz,apr-util-1.6.1.tar.gz,expat_2.0.1.orig.tar.gz,sqlite-autoconf-3330000.tar.gz,subversion-1.14.0.tar.gz,zlib-1.2.11.tar.xz

    Linux源码安装过程中选项—prefix的作用(转)

    Linux源码安装过程中选项—prefix的作用(转)

    Linux通过源代码安装Memcached.pdf

    在Linux系统中,通过源代码安装Memcached涉及到多个步骤,包括查询Memcached的依赖库libevent、下载源码包、编译安装libevent和Memcached、启动Memcached服务器以及设置开机自启动。下面将详细介绍这些过程。 首先...

    应用linux中espeak源代码

    本篇文章将深入探讨`espeak`源代码,解析其工作原理,并介绍如何在Linux中进行源码编译和应用。 `espeak`的核心功能是将文本转换成音频流,它通过使用多种发音规则和音素转换技术,实现了跨语言的文本转语音功能。...

    Linux源代码下载(1).pdf

    "Linux源代码下载和编译" 本资源提供了下载和编译 Linux 源代码的详细步骤和指导,涵盖了选择合适的内核版本、下载内核源代码、解包内核源代码等方面的知识点。 一、选择合适的内核版本 在下载 Linux 源代码之前...

    linuxcnc最新源代码

    - **源代码文件**:包括所有必要的C/C++源码,你可以浏览、学习甚至修改它们以适应特定需求。 - **文档**:可能包含开发者指南、API参考和其他帮助文件,帮助你理解和贡献代码。 - **配置示例**:预设的系统配置文件...

    linux下完整的telnet 客户端实现源码

    3. **编译**:如果源码提供了`Makefile`,执行`make`命令,编译器会按照`Makefile`中的规则编译源代码生成可执行文件。 4. **运行**:编译成功后,执行生成的可执行文件,如`./telnet_client`,然后输入服务器的IP...

    Linux下以源代码方式安装MySQL教程

    在Linux环境下,以源代码方式安装MySQL是一种常见且灵活的方法,尤其对于自定义配置和调试需求较高时。本文将详细讲解这一过程,适用于熟悉Linux基础操作的用户。 首先,安装MySQL需要一个C编译器,这里推荐使用GCC...

    mysql-5.5.27 linux源码安装文件

    本文将详细介绍如何在Linux环境下,通过源代码方式安装MySQL 5.5.27版本。 源码安装MySQL的优点在于,你可以完全控制编译过程,根据系统的特定需求定制配置,例如选择特定的编译选项、优化参数或添加额外的模块。...

    mysql-5.7.18源码和connector C++源码在Linux在编译安装

    在Linux环境下,构建和安装MySQL 5.7.18的源码以及Connector/C++ 1.1.8是一项技术性较强的任务。首先,我们需要理解MySQL数据库系统的基础,它是世界上最流行的开源关系型数据库管理系统,而Connector/C++是MySQL...

    linuxptp源代码

    3. **配置和构建文件**:Makefile和其他构建脚本帮助用户编译和安装源代码,通常在根目录下。 4. **文档**:可能包含README和其他文档,解释如何使用和配置PTP服务。 5. **示例配置**:在`examples`或`doc`目录下...

    最早的linux源代码

    Linux操作系统是全球最知名的开源操作系统之一,其源代码的开放性使得开发者能够深入理解系统的工作原理,进而进行定制和改进。"最早的Linux源代码"指的是Linux内核的早期版本,这里特指0.11版。这个版本对于学习...

    Linux+下编译并安装配置+Qt+全过程+

    ### 在Linux下编译并安装配置Qt全过程 #### 一、前言 对于初学者而言,在Linux环境下安装和配置Qt可能会遇到不少挑战。相比于Windows环境,Linux下的安装配置过程更为复杂,涉及到更多的命令行操作及环境变量设置...

    linux0.01版本源代码

    在阅读Linux 0.01的源代码时,我们可以深入探究以下几个关键知识点: 1. **内核架构**:早期的Linux内核采用微内核设计,不过与现代的宏内核结构相比,它包含的功能非常基础,如进程管理、内存管理、中断处理等。...

    linux0.11内核源码

    它的开放源代码使得Linux0.11成为了计算机科学领域里的一个重要里程碑。 在Linux0.11内核的源代码中,包含了各种各样的文件,例如头文件、源文件、Makefile等。虽然它们都有不同的用途,但是它们的组合使得内核能够...

    Linux源码镜像急速下载.zip

    Linux源码镜像急速下载,Linux源码镜像急速下载Linux源码镜像急速下载Linux源码镜像急速下载Linux源码镜像急速下载Linux源码镜像急速下载Linux源码镜像急速下载Linux源码镜像急速下载Linux源码镜像急速下载Linux源码...

    linux下astyle安装包和使用说明

    `file(s)`是你想要格式化的源代码文件或目录。 例如,如果你想要将当前目录下的所有`.cpp`文件格式化,可以运行: ```bash astyle --style=java *.cpp ``` 这里,`--style=java`表示采用Java风格的代码格式,具体...

    linux内核源代码深度解析.zip

    linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码深度解析linux内核源代码...

Global site tag (gtag.js) - Google Analytics