linux源码编译安装错误_linux源代码编译安装 - CSDN
  • Linux源码编译安装Redis和部署

        redis是一个 键值 (Key—Value)类型 内存数据库 ,所有的操作都是在内存中进行。然后定期地通过异步操作将数据库的数据flush到硬盘上。由于是内存操作,所以性能非常的出色。但是容易受物理内存的影响,如果是海量的数据操作可能不适用,比较适用于数据量较少的高性能的操作和运算上。

        源码编译安装
    [root@7con ~] wget http://download.redis.io/releases/redis-5.0.2.tar.gz
    [root@7con ~] tar -xf redis-5.0.2.tar.gz
    [root@7con ~] cd redis-5.0.2
    [root@7con ~] make clean
    [root@7con ~] make
    [root@7con ~] make install PREFIX=/usr/local/cluster/redis-6379	# 指定安装目录
    

        如果编译安装没有指定安装目录,那么redis的启动脚本等都在源码包的src目录下,如果有进行指定,那么就会在指定的目录下生成 bin 目录,目录下存放的则是一些redis的脚本文件。


        编译安装后,我们来启动下redis服务

    [root@7con ~] /usr/local/cluster/redis-6379/bin/redis-server
    

        可以看到,redis启动的时候会占用一个终端,这是因为没有指定redis.conf文件,启动的时候是按默认进行的。所以如果不想使其占用,我们可以修改 redis.conf 配置文件,修改 daemonize nodaemonize yes ,然后再指定配置文件启动redis服务,结果如下图:

    [root@7con ~] cp /opt/redis-5.0.2/redis.conf /usr/local/cluster/redis-6379/	# 拷贝一份配置文件到指定的安装目录下
    [root@7con ~] vim /usr/local/cluster/redis-6379/redis.conf
    	daemonize no ——>  daemonize yes
    [root@7con ~] /usr/local/cluster/redis-6379/bin/redis-server /usr/local/cluster/redis-6379/redis.conf
    

        为了检测启动redis服务后是否可用,接下来我们进行测试,结果如下图:

    [root@7con ~] /usr/local/cluster/redis-6379/bin/redis-cli
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> set name sc
    OK
    127.0.0.1:6379> get name
    "sc"
    127.0.0.1:6379> 
    

        到这里,单实例redis服务 已经安装部署好了。
        感谢阅读,本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!

    展开全文
  • linux 系统下源码编译安装搭建自定义lamp环境(linux+apache+mysql+php)目地:在linux系统上源码编译安装搭建lamp环境并配置 , 守护进程, 软连接集中管理配置文件, phpmyadmin数据库在线管理实验操作环境: linux ...

    linux 系统下源码编译安装搭建自定义lamp环境(linux+apache+mysql+php)

    目地:在linux系统上源码编译安装搭建lamp环境并配置 , 守护进程, 软连接集中管理配置文件, phpmyadmin数据库在线管理

    实验操作环境: linux centos7.4 64位 腾讯云服务器

    友情连接:  LNMP搭建: https://blog.csdn.net/Dong_Alex/article/details/80712018

    apache(httpd)使用2.4 官网源码

    php使用5.6 官网源码

    mysql使用5.7 官网源码


    开始

    # 一.安装apache (httpd)
    # 安装依赖:gcc, apr, apr-util,apr-iconv, pcre
    # 安装gcc
    yum install gcc
    # apr, apr-util, apr-iconv , pcre yum没有, 需要下载源码安装
    # 获取apr
    wget http://mirror.bit.edu.cn/apache//apr/apr-1.6.3.tar.gz
    # 获取apr-util
    wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
    # 获取apr-iconv
    wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.2.tar.gz
    # 获取pcre
    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
    # 获取httpd (apache)
    wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.29.tar.gz 
    # 获取php5.6
    wget -c -O  php5.6.36.tar.gz  http://cn2.php.net/get/php-5.6.36.tar.gz/from/this/mirror
    # 获取boost mysql5.7及以上版本需要,5.6不需要
    wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    # 获取mysql5.7
    wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz
    
    # 1.安装apr
    # 解压apr
    tar zxvf apr-1.6.3.tar.gz
    
    # 安装依赖libtool 
    yum install libtool
    
    # 进入配置
    cd apr-1.6.3/
    ./buildconf
    
    # 配置
    ./configure --prefix=/usr/local/apr-1.6.3
    
    # 编译安装
    make && make install
    
    # 2.安装apr-iconv 
    # 解压
    cd apr-iconv-1.2.2/
    tar zxvf apr-iconv-1.2.2.tar.gz 
    
    # 配置
    ./configure --prefix=/usr/local/apr-iconv-1.2.2 --with-apr=/usr/local/apr-1.6.3/bin
    
    # 编译安装
    make && make install
    
    # 3.安装apr-util
    # 解压 apr-util
    tar zxvf apr-util-1.6.1.tar.gz
    
    #  解决报类似#include <expat.h>错误,需yum安装expat: yum install expat-devel 
    yum install expat-devel
    
    # 配置
    cd apr-util-1.6.1/
    # --with-apr=apr 安装bin目录
    ./configure --prefix=/usr/local/apr-util-1.6.1 --with-apr=/usr/local/apr-1.6.3/bin  --with-apr-iconv=/usr/local/apr-iconv-1.2.2/bin/apriconv
    
    # 编译安装 
     make && make install 
    
    # 4.安装pcre
    # 安装依赖 gcc-c++
    yum install gcc-c++
    
    # 解压
    tar zxvf pcre-8.39.tar.gz
    cd pcre-8.39/
    
    # 配置
    ./configure --prefix=/usr/local/pcre-8.39
    
    # 编译安装
    make && make install
    
    # 5.安装apache (httpd)
    # 记录下apr, apr-util, apr-iconv , pcre 的安装路径, 配置apache时需要用到
    
    # 安装并更新locate工具数据库
    yum install locate  && updatedb
    
    # 查找apr, apr-util,apr-iconv,pcre 安装路径
    locate apr | grep bin
    locate pcre | grep bin
    
    # 查找结果如下:
    # apr 安装路径 	/usr/local/apr-1.6.3/bin
    # apr-iconv		 /usr/local/apr-iconv-1.2.2/bin/apriconv
    # apr-util 安装路径 	/usr/local/apr-util-1.6.1/bin
    # pcre 安装路径	/usr/local/pcre-8.39/bin
    
    # 解压httpd
    tar zxvf httpd-2.4.29.tar.gz
    
    #  配置 (切换到解压目录) 一定要加上 enable-so 
    cd httpd-2.4.29/
    ./configure --prefix=/usr/local/httpd-2.4.29/  --with-apr=/usr/local/apr-1.6.3/bin  --with-apr-util=/usr/local/apr-util-1.6.1/bin  --with-apr-iconv= /usr/local/apr-iconv-1.2.2/bin/apriconv   --with-pcre=/usr/local/pcre-8.39  --enable-so
    
    # 编译安装
    make && make install
    
    # 查看安装成功没有
    locate httpd | grep bin
    
    # 添加到服务
    # 从安装目录bin/下 复制apachectl 到/etc/rc.d/init.d/httpd
    cp /usr/local/httpd-2.4.29/bin/apachectl /etc/rc.d/init.d/httpd
    # 编辑httpd, 加入下面两句 后两个数字表示启动顺序, 不要超100, 下面两句是带# 注释的, chkconfig是能读到的, 这两个必须要加, Description: 这个是描述, 随便写
    
    # chkconfig: 2345 80 81
    # Description: this is httpd server
    
    # 添加到守护进程
    chkconfig --add httpd
    
    # 管理 
    service httpd start|restart|stop|status
    
    

    # 访问



    # 新建一个目录 /myconfig/ , 以后将所有配置文件建立软链接到此目录, 统一管理
    mkdir /myconfig
    # 为httpd.conf 创建软连接
    ln -s /usr/local/httpd-2.4.29/conf/httpd.conf  /myconfig/httpd.conf


    # 配置域名

    # 运行下面几个命令测试一下有没有错误

    # 解决 lynx: command not found
    # 这是因为lynx命令不认识,只因缺少lynx包,安装即可:yum install lynx。
    yum install lynx
    
    # 安装完lynx , 运行service httpd status 有下面的提示, 该话题属于 apache server-status  , 这里不做多的说明, 不影响使用



    # 启动后只要访问出现这个就说明安装apache 成功!

    
    # 二. 安装php
    # 1.安装php依赖
    yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel libevent
    
    # 2.安装php
    # 解压 (切换到压缩包目录下执行)
    tar zxvf php5.6.36.tar.gz
    
    # 配置 配置开启需要开启的扩展比如,pdo, mysql gd 并将php做为apache的模块 --apxs2=指向apache bin下的apxs程序 
    cd php-5.6.36/
    ./configure --prefix=/usr/local/php-5.6.36/ --with-apxs2=/usr/local/httpd-2.4.29/bin/apxs  --with-mysql   --with-pdo-mysql  --with-gd
    
    # 更新apache的bin/apxs 文件 将第一行改为perl的位置
    # 查看perl 位置
    whereis perl 
    
    



    # apxs 文件第一行改为 perl的位置 参数 -w
    # ! /usr/bin/perl -w
    


    #编译安装
    make && make install
    
    # 查看 php 信息
    /usr/local/php-5.6.36/bin/php -m
    # 如下说明安装成功
    


    3.php与apache的绑定
    编辑apache主配置文件 httpd.conf
    配置如下:
    1)
    LoadModule php5_module modules/libphp5.so
    


    2) 加入以下代码, 告知apache 将php交由php处理
    <FilesMatch \.php$>
     SetHandler application/x-httpd-php
    </FilesMatch>
    
    

    如图:

    # 在htdoc 站点目录写一个php测试文件 index.php 内容 <?php phpinfo();?>
    # 重启服务器访问
    service httpd restart 
    






    # date 警告处理, 配置php时区



    从phpinfo 获取到php的配置目录及文件 (/usr/local/php-5.6.36/lib)

    # 拷贝php配置文件
    从php源码中复制 php.ini-production 到php安装目录的lib目录下改名为php.ini
    cp /root/packages/php-5.6.36/php.ini-production /usr/local/php-5.6.36/lib/php.ini
    
    # 备份php.ini
    cp /usr/local/php-5.6.36/lib/php.ini /usr/local/php-5.6.36/lib/php.ini.bak
    
    # 创建软连接 方便管理
    ln -s /usr/local/php-5.6.36/lib/php.ini /myconfig/php.ini
    

    # 我把所有配置文件统一建立软连接在/myconfig/下, 如图

    # 配置php.ini 时区

    修改完, 重启服务器 再访问 
    service httpd restart


    
    # 三. 安装mysql
    # 安装依赖
    # gcc, gcc-c++, ncurses-devel, cmake(配置的工具mysql配置不用configure,用cmake)
    yum install gcc gcc-c++ cmake ncurses-devel
    
    # 安装boost mysql5.7依赖boost,mysql5.6不依赖
    # 在/usr/local/下创建boost目录
    mkdir /usr/local/boost
    # 进入boost目录
    cd /usr/local/boost/
    # 下载 boost
    wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    
    # 解压
    tar zxvf boost_1_59_0.tar.gz
    
    

    # mysql官网下载mysql源码
    https://dev.mysql.com/downloads/mysql/5.7.html#downloads


    
    # 鼠标右键复制下载连接地址, 使用wget 下载
    wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz
    
    # 解压
    tar zxvf mysql-5.7.22.tar.gz
    
    # 配置安装位置与数据库data位置
    # mysql 5.7需要指定 -DWITH_BOOST=/usr/local/boost, mysql5.6及以下不需要
    cd mysql-5.7.22/
    cmake . -DWITH_BOOST=/usr/local/boost   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.22 -DMYSQL_DATADIR=/usr/local/mysql-5.7.22/data  
    
    # 编译安装
    make && make install
    
    # 配置mysql
    # 修改文件权限,要求必须用独立用户管理, 这个用户就叫mysql
    # 添加用户
    groupadd mysql && useradd -g mysql mysql
    
    

    # 修改mysql程序权限, 把组改成mysql,用户也改成mysql
    修改前:

    # 在/usr/local/目录执行 
    # 将mysql目录及文件的用户跟组修改为mysql
    chown -R mysql:mysql mysql-5.7.22/


    
    # 初始化用户信息前先删除/etc/my.cnf 配置文件
    rm /etc/my.cnf
    
    # 初始化用户信息
    # 下面是不建议mysql5.7使用的, mysql5.6可以使用,具体看下面,选择自己的版本
    # /usr/local/mysql-5.7.22/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql-5.7.22/data
    
    # mysql5.6 使用下面的
    # /scripts/mysql_install_db --user=mysql 
    
    # mysql5.7 建议使用的
    /usr/local/mysql-5.7.22/bin/mysqld  --initialize
    
    

    # 初始化结束后, 会随机生成一个root的密码, 切记保持此密码,后续用到
    如图:

    本次生成的密码是: 1%fjXAMjDPb6 
    # 查看data目录下有没有件, 有说明初始化成功了

    # 初始化完成后, mysql目录下除了data目录保留mysql用户,把其它目录通通改为root用户
    chown -R root mysql-5.7.22/ && chown -R mysql mysql-5.7.22/data/

    # 查看

    # 如果是mysql5.6 复制一个配置文件过来 参考

    
    # 如果是mysqsl5.7 手动创建配置文件 touch /etc/my.cnf 写入以下内容,参考:
    [client]
    port=3306
    socket=/tmp/mysql.sock
    
    [mysqld]
    port=3306
    socket=/tmp/mysql.sock
    key_buffer_size=16M
    max_allowed_packet=8M
    
    [mysqldump]
    quick
    
    # 运行mysqld_safe服务
    /usr/local/mysql-5.7.22/bin/mysqld_safe --user=mysql &
    
    # 查看进程
    ps -e | grep mysqld
    
    



    
    # 连接
    /usr/local/mysql-5.7.22/bin/mysql -uroot -p 
    
    

    复制密码进去

    按确定

    # 修改密码
    # mysql5.6 如下:
    # update mysql.user set password=password('你的密码') where user='root';
    
    # mysql5.7 如下:
    alter user 'root'@'localhost' identified by '你的密码';
    
    # 刷新权限 5.7不需要
    # flush privileges
    # quit 退出, 重新用新密码登录
    
    # 将其加入守护进程
    # 复制/mysqld.server 到/etc/rc.d/init.d/
    cp  /usr/local/mysql-5.7.22/support-files/mysql.server /etc/rc.d/init.d/mysqld
    # 修改权限
    chmod  a+rx /etc/rc.d/init.d/mysqld 
    # 添加到守护进程管理
    chkconfig --add mysqld
    # 查看
    chkconfig --list mysqld
    # 测试用守护进程管理方式,停用跟启用
    service mysqld stop
    service mysqld start
    
    # 四. 安装phpmyadmin
    # 下载
    wget https://files.phpmyadmin.net/phpMyAdmin/4.8.1/phpMyAdmin-4.8.1-all-languages.zip
    # 复制到站点根目录
    cp phpMyAdmin-4.8.1-all-languages.zip /usr/local/httpd-2.4.29/htdocs/
    # 进入站点根目录, 解压
    cd /usr/local/httpd-2.4.29/htdocs/
    unzip phpMyAdmin-4.8.1-all-languages.zip
    # 改名为phpmyadmin
    mv phpMyAdmin-4.8.1-all-languages phpmyadmin
    
    

    # 访问站点 
    http://58.87.95.128/phpmyadmin/index.php

    如图:




    输入密码登录


    #解决一个问题 , 设置不让访问目录



    # 编辑httpd.conf
    Options Indexes FollowSymLinks
    修改为:
    Options FollowSymLinks

    
    # 保存后, 重启httpd服务器
    service httpd restart
    
    

    # 访问


    # 再配置httpd.conf, 让自动访问index.php


    <IfModule dir_module>
         DirectoryIndex index.html index.php
    </IfModule>

    # 再次访问



    LNMP搭建https://blog.csdn.net/Dong_Alex/article/details/80712018

    /END


    展开全文
  • 安装cmakeCMake是一个跨平台的安装(编译)工具,因为我们采用源码编译的方式安装mysql,所以在安装之前我们需要在Linux系统上安装编译工具。可以在cmake官网(http://www.cmake.org/)上下载安装包。 把下载的cmake...

    安装环境介绍

    • 阿里云CentOS6.5
    • Mysql版本为:mysql-5.5.32
    • 安装方式:源码编译

    安装C/C++环境

    yum install gcc
    
    yum install gcc-c++ libstdc++-devel
    

    安装cmake

    CMake是一个跨平台的安装(编译)工具,因为我们采用源码编译的方式安装mysql,所以在安装之前我们需要在Linux系统上安装编译工具。可以在cmake官网(http://www.cmake.org/)上下载安装包。

    • 把下载的cmake源码上传到linux系统
    • 解压 tar -zxvf cmake-2.8.8.tar.gz
    • 解压之后进入到cmake目录
      cd /usr/local/tools/cmake-2.8.8
    • 执行命令:
    [root@iZbp1efkej2remjbhg7h0wZ cmake-2.8.8]# ./bootstrap
    
    • 编译和安装
    [root@iZbp1efkej2remjbhg7h0wZ cmake-2.8.8]# make && make install
    

    安装Mysql依赖包

     [root@iZbp1efkej2remjbhg7h0wZ ~]#  yum  install  ncurses-devel -y
    

    创建mysql用户和用户组

    [root@iZbp1efkej2remjbhg7h0wZ ~]# groupadd mysql
    
    
    [root@iZbp1efkej2remjbhg7h0wZ ~]# useradd mysql -s /sbin/nologin -M -g mysql
    

    编译安装MySQL

    准备工作做好了,接下来就可以下载安装mysql了,首先我们去mysql官网下载mysql源码包。点击下载mysql源码包
    首先把下载的mysql源码包上传到linux系统,我的上传目录为:/usr/local/tools/

    1.解压

    [root@iZbp1efkej2remjbhg7h0wZ tools]#  tar -zxvf mysql-5.5.32.tar.gz
    

    2.使用cmake编译
    执行以下命令:

    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
    -DMYSQL_DATADIR=/application/mysql-5.5.32/data \
    -DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
    -DENABLED_LOCAL_INFILE=ON \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
    -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_FAST_MUTEXES=1 \
    -DWITH_ZLIB=bundled \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_READLINE=1 \
    -DWITH_EMBEDDED_SERVER=1 \
    -DWITH_DEBUG=0
    

    3.编译和安装

    make && make install 
    

    通过上面的步骤,mysql初步安装已经好了,可以通过以下命令查看

    [root@iZbp1efkej2remjbhg7h0wZ mysql-5.5.32]# ll /application/mysql/data/
    

    执行命令可以看到如下目录:
    这里写图片描述

    MySQL配置

    ###1.进入到mysql源码目录,copy一份配置文件到 /etc 目录

    [root@iZbp1efkej2remjbhg7h0wZ mysql-5.5.32]# cp support-files/my-small.cnf /etc/my.cnf
    

    ###2.改变data目录属主和属组

    [root@iZbp1efkej2remjbhg7h0wZ mysql-5.5.32]#  chown -R mysql.mysql /application/mysql/data/
    

    注:用户mysql和用户组mysql就是我们初始创建的用户和组。

    ###3.修改tmp目录权限

    [root@iZbp1efkej2remjbhg7h0wZ mysql-5.5.32]# chmod  -R 1777  /tmp/
    

    注:执行上面命令以后tmp目录权限会变为drwxrwxrwt。
    文件t权限:如果文件设置了t权限则只用属主和root有删除文件的权限

    ###4.初始化
    进入到scripts目录

    [root@iZbp1efkej2remjbhg7h0wZ mysql-5.5.32]# cd /application/mysql/scripts/
    

    执行命令

     ./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql
    

    ###5.设置mysql启动服务
    首先进入到mysql源码目录,执行以下命令:

    [root@iZbp1efkej2remjbhg7h0wZ mysql-5.5.32]# /bin/cp support-files/mysql.server /etc/init.d/mysqld
    

    ###6.给mysqld新增执行权限

    [root@iZbp1efkej2remjbhg7h0wZ mysql-5.5.32]# chmod +x  /etc/init.d/mysqld
    

    ###7.启动mysql
    经过以上步骤mysql已经安装好了,接下来就可以启动服务了

    [root@iZbp1efkej2remjbhg7h0wZ ~]# /etc/init.d/mysqld start
    

    Starting MySQL… SUCCESS! (mysql启动成功)

    ###8.添加mysql环境变量

    [root@iZbp1efkej2remjbhg7h0wZ ~]# vim /etc/profile
    

    在底部添加如下内容:
    这里写图片描述

    保存之后,执行以下命令使配置生效

    [root@iZbp1efkej2remjbhg7h0wZ ~]# source /etc/profile
    

    mysql环境变量配置好之后,就可以使用mysql命令登录mysql了。
    这里写图片描述

    MySQL安全配置

    ###1.修改root密码

    
    mysql> /application/mysql/bin/mysqladmin -u root password 'root'
    

    root密码设置后,使用以下命令登录mysql
    这里写图片描述
    ###2.开启mysql远程访问
    配置防火墙打开3306端口:

    [root@iZbp1efkej2remjbhg7h0wZ ~]# vim /etc/sysconfig/iptables
    

    添加3306端口:
    这里写图片描述
    最后重启防火墙

    设置root用户可以远程访问:

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的密码'  
    

    使修改生效:

    mysql> FLUSH PRIVILEGES 
    

    总结

    Linux上 mysql安装另外两种方式:

    1. yum方式安装
      yum方式安装极其简单,只需执行 yum install mysql-server即可。
      yum方式安装适合对数据库要求不太高的场合。

    2. 二进制安装方式
      和源码安装比较相似,二进制安装不需要编译。

    有什么错误之处,欢迎大家指正。

    展开全文
  • Linux编译安装源代码的三个步骤

    千次阅读 2018-08-01 21:43:13
    Linux编译安装源代码无非就是三个步骤,./configure,make,make install 第一步进入源代码的目录 运行命令 1 ./configure --prefix=安装目录 --target=目标平台 上面这两个是最基本的,有些源代码的安装需要好...

    Linux下编译安装源代码无非就是三个步骤,./configure,make,make install

    第一步进入源代码的目录

    运行命令

    1 ./configure --prefix=安装目录 --target=目标平台

    上面这两个是最基本的,有些源代码的安装需要好几十个参数,具体就只能参考具体的说明了。

    ./configure常见参数解析


    'configure'脚本有大量的命令行选项。对不同的软件包来说,这些选项可能会有变 化,但是许多基本的选项是不会改变的。带上'--help'选项执行'configure'脚本可以看到可用的所有选项。尽管许多选项是很少用到的,但是 当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的。下面对每一个选项进行简略的介绍:

    --cache-file=FILE

    'configure'会在你的系统上测试存在的特性(或者bug!)。为了加速随后 进行的配置,测试的结果会存储在一个cache file里。当configure一个每个子树里都有'configure'脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助。

    --help

    输出帮助信息。即使是有经验的用户也偶尔需要使用使用'--help'选项,因为一个复杂的项目会包含附加的选项。例如,GCC包里的'configure'脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项。


    --no-create


    'configure'中的一个主要函数会制作输出文件。此选项阻止'configure'生成这个文件。你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了。


    --quiet

    --silent


    当'configure'进行他的测试时,会输出简要的信息来告诉用户正在作什么。这样作是因为'configure'可能会比较慢,没有这种输出的话用户将会被扔在一旁疑惑正在发生什么,使用这两个选项中的任何一个都会把你扔到一旁。(译注:这两句话比较有意思,原文是这样的:If there was no such output, the user would be left wondering what is happening. By using this option, you too can be left wondering!)


    --version


    打印用来产生'configure'脚本的Autoconf的版本号。


    --prefix=PEWFIX


    '--prefix'是最常用的选项。制作出的'Makefile'会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分。举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":

    $ ./configure --prefix=/opt/gnu


    --exec-prefix=EPREFIX


    与'--prefix'选项类似,但是他是用来设置结构倚赖的文件的安装位置,编译好的'emacs'二进制文件就是这样一个问件。如果没有设置这个选项的话,默认使用的选项值将被设为和'--prefix'选项值一样。


    --bindir=DIR


    指定二进制文件的安装位置,这里的二进制文件定义为可以被用户直接执行的程序。


    --sbindir=DIR


    指定超级二进制文件的安装位置。这是一些通常只能由超级用户执行的程序。


    --libexecdir=DIR


    指定可执行支持文件的安装位置。与二进制文件相反,这些文件从来不直接由用户执行,但是可以被上面提到的二进制文件所执行。


    --datadir=DIR


    指定通用数据文件的安装位置。


    --sysconfdir=DIR


    指定在单个机器上使用的只读数据的安装位置。


    --sharedstatedir=DIR

    指定可以在多个机器上共享的可写数据的安装位置。


    --localstatedir=DIR

    指定只能单机使用的可写数据的安装位置。

    --libdir=DIR

    指定库文件的安装位置。


    --includedir=DIR

    指定C头文件的安装位置。其他语言如C++的头文件也可以使用此选项。


    --oldincludedir=DIR

    指定为除GCC外编译器安装的C头文件的安装位置。


    --infodir=DIR

    指定Info格式文档的安装位置.Info是被GNU工程所使用的文档格式。


    --mandir=DIR

    指定手册页的安装位置。


    --srcdir=DIR

    这个选项对安装没有作用,他会告诉'configure'源码的位置。一般来说不用指定此选项,因为'configure'脚本一般和源码文件在同一个目录下。


    --program-prefix=PREFIX

    指定将被加到所安装程序的名字上的前缀。例如,使用'--program- prefix=g'来configure一个名为'tar'的程序将会使安装的程序被命名为'gtar'。当和其他的安装选项一起使用时,这个选项只有当他被`Makefile.in'文件使用时才会工作。


    --program-suffix=SUFFIX

    指定将被加到所安装程序的名字上的后缀。


    --program-transform-name=PROGRAM

    这里的PROGRAM是一个sed脚本。当一个程序被安装时,他的名字将经过`sed -e PROGRAM'来产生安装的名字。


    --build=BUILD

    指定软件包安装的系统平台。如果没有指定,默认值将是'--host'选项的值。


    --host=HOST

    指定软件运行的系统平台。如果没有指定。将会运行`config.guess'来检测。


    --target=GARGET

    指定软件面向(target to)的系统平台。这主要在程序语言工具如编译器和汇编器上下文中起作用。如果没有指定,默认将使用'--host'选项的值。


    --disable-FEATURE

    一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置。如果默认是提供这些特性,可以使用'--disable-FEATURE'来禁用它,这里'FEATURE'是特性的名字,例如:

    $ ./configure --disable-gui


    -enable-FEATURE[=ARG]

    相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用'--enable-FEATURE'来起用它。这里'FEATURE'是特性的名字。一个特性可能会接受一个可选的参数。例如:

    $ ./configure --enable-buffers=128

    `--enable-FEATURE=no'与上面提到的'--disable-FEATURE'是同义的。


    --with-PACKAGE[=ARG]

    在自由软件社区里,有使用已有软件包和库的优秀传统。当用'configure'来配置一个源码树时,可以提供其他已经安装的软件包的信息。例如,倚赖于Tcl和Tk的BLT器件工具包。要配置BLT,可能需要给'configure'提供一些关于我们把Tcl和Tk装的何处的信息:

    $ ./configure --with-tcl=/usr/local --with-tk=/usr/local

    '--with-PACKAGE=no'与下面将提到的'--without-PACKAGE'是同义的。


    --without-PACKAGE

    有时候你可能不想让你的软件包与系统已有的软件包交互。例如,你可能不想让你的新编译器使用GNU ld。通过使用这个选项可以做到这一点:

    $ ./configure --without-gnu-ld


    --x-includes=DIR

    这个选项是'--with-PACKAGE'选项的一个特例。在Autoconf最初被开发出来时,流行使用'configure'来作为Imake的一个变通方法来制作运行于X的软件。'--x-includes'选项提供了向 'configure'脚本指明包含X11头文件的目录的方法。


    --x-libraries=DIR

    类似的,'--x-libraries'选项提供了向'configure'脚本指明包含X11库的目录的方法。

     


     

    make的使用

    一般情况下,只需要直接用make即可,但是有时候,生成的Makefile文件中并没有指定C编译器或者C++编译器,那么就需要手动指定了,不然就有可能出现编译错误。

    make CC=指定C语言编译器

    make CXX=指定C++编译器


     

    最后就简单了

    使用make install即可。

    展开全文
  • Linux编译安装cmake源码

    千次阅读 2020-07-27 09:40:12
    有些Linux下没有cmake,系统也不是x86架构,如Arm,这时如果要用到cmake,就需要编译。 cmake下载 下载地址:https://cmake.org/download/ 进入下载界面,选择Source版本 编译安装linux下解压 在终端中...
  • FFmpeg —— 2.源码编译安装Linux

    千次阅读 2020-04-01 19:25:12
    从GitHub上面下载最新的源码 git clone https://github.com/FFmpeg/FFmpeg.git 2.配置&安装 下载完成之后进入FFmpeg目录 执行 ./configure make make install 目前在这个版本没有遇到配置,编译问题 ...
  • linux安装MySQL的方式有很多种,包括以仓库的方式安装(yum,apt,zypper),以包的方式安装(rpm,deb),以docker方式安装,从压缩包解压安装,从源码编译安装,这里使用的是最后一种,从源码编译安装。 至于Workbench...
  • Linux下的源码编译安装原理

    万次阅读 2017-03-05 22:32:23
    一、Linux源码安装过程 用于linux源码安装软件,一般下载源码包得到文件:file.tar.gz和file.tar.bz2格式 (1)解压缩 解压命令为:  tar jxvf file.tar.bz2  tar zxvf file.tar.gz (2)配置文件  cd .../...
  • erlang源码linux编译安装

    千次阅读 2018-03-24 10:38:36
    网上这方面的资料不少,这篇是为了回应上篇,在上篇rabbitmq安装的过程中有个小插曲,我用源码安装了erlang,写下来为了方便以后查看。1.介绍 erlang是一种编程语言,rabbitmq的运行需要在这个环境中,所以需要安装...
  • 安装需要的依赖 yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-...
  • linux源码编译的过程

    千次阅读 2016-08-18 13:05:16
    1、 Tar:解压这个源码软件包。tar zxvf abc.gz 这步没什么好说的,把源码包解压开就好了,接下来第二步! 2、 cd:进入到这个源码包。 现在ls一下mrtg这个目录下多了一个蓝色字体的httpd-2.2.11这个...
  • 获取源码包 1、先去官网(http://redis.io/download )下载一个源码工程(redis官网版本只支持linux/微软开源事业部维护了一个windows版本) 2、把安装包上传到服务器,解压缩 编译源码 1、切换到解压出来...
  • 源码安装软件的具体步骤: (1)我们所获得的软件源码一般都会被打包并压缩,常见的格式有.tar.gz或.tar.bz2格式。此时我们需要使用tar命令将压缩包解压。 (2)运行configure脚本,通过特定的选项修改软件设置与...
  • MySQL5.7.13源码编译安装与配置

    万次阅读 2016-09-11 22:38:12
    原文链接:http://blog.csdn.net/xyang81/article/details/51792144安装环境:CentOS7 64位 MINI版官网源码编译安装文档:http://dev.mysql.com/doc/refman/5.7/en/source-installation.html一、系统安装条件官方...
  • centos7.6源码编译安装php7.4

    千次阅读 2019-12-18 10:39:41
    首先安装依赖 yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libzip-devel pcre-devel 下载php7.4压缩包 ...
  • 源码编译安装mysql-5.7.14

    千次阅读 2016-08-11 17:57:07
    源码编译安装mysql 5.7
  • linux下Qt5.7源码编译

    2019-12-28 09:48:25
    有时候,可能需要用Qt编写服务端,但是又没有界面,只能通过源码编译的方式进行安装。以下记录了我在阿里云上编译qt源码的步骤。之前编译过几次,感觉比较容易踩坑,故此,记录一下。 1.从...
  • Linux安装Node.js(源码编译安装

    千次阅读 2015-06-01 16:54:46
    环境: Ubuntu 12.04.2 LTS (GNU/Linux 3.5.0-23-generic i686) ...这里选择源码安装方式,安装过程如下: 登陆到Linux终端,进入/usr/local/src目录,如下: root@ubuntu:~# cd /usr/local/src/
  • Linux源码编译安装 vim 8.1

    千次阅读 2018-08-28 22:06:50
    目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用。当我们需要远程操作一台 linux 服务器的时候,只能使用命令行,这意味着如果你需要编辑文本,就...
  • Linux 源码编译安装swift和lldb

    千次阅读 2017-04-11 14:37:23
    本文主要介绍的是如何在Linux上利用源码编译安装Swift的方法。
1 2 3 4 5 ... 20
收藏数 125,195
精华内容 50,078
关键字:

linux源码编译安装错误