zoukankan      html  css  js  c++  java
  • 安装 primecoin 矿池

    壹、安装 boost_1_49_0。

    一、官网下载:https://www.boost.org/users/download/

           前期准备:boost中,用到了别的函数库,所以为了使用boost中相应的功能,需要先安装系统中可能缺失的库 

          apt-get install mpi-default-dev     #安装mpi库

          apt-get install libicu-dev       #支持正则表达式的UNICODE字符集 

          apt-get install python-dev      #需要python的话

          apt-get install libbz2-dev       #如果编译出现错误:bzlib.h: No such file or directory

         

    二、解压:tar -xzvf boost_1_49_0

    三、到解压目录下:cd boost_1_49_0

    四、运行脚本:./bootstrap.sh –-prefix=/servers/boost --with-libraries=all  

    小提示:
    1、实践发现ubuntu16.04和boost1.49怎么都无法成功指定安装目录,需要自己先手动创建/servers/boost这个目录。
    2、注意/servers/boost下面还有include/boost这一层,后面安装WT读取boost位置的时候要写这个直接的目录/servers/boost/include/boost (√),而不 (×)
    3、如果不带–prefix参数的话(推荐),默认路径是 /usr/local/include/usr/local/lib,分别存放头文件和各种库。

    五、编译:./b2 install --prefix=/servers/boost 

     

    六、卸载

    将/usr/local/lib和/usr/local/include/boost两个目录下的文件直接删除就可以。

     

    七、测试安装是否正确

    1、新建cpp文件:vim boot.cpp 

    2、输入以下内容:

    #include <string>
    #include <iostream>
    #include <boost/version.hpp>
    #include <boost/timer.hpp>
    using namespace std;
    int main()
    {
    boost::timer t;
    cout << "max timespan: " << t.elapsed_max() / 3600 << "h" << endl;
    cout << "min timespan: " << t.elapsed_min() << "s" << endl;
    cout << "now time elapsed: " << t.elapsed() << "s" << endl;
    cout << "boost version" << BOOST_VERSION <<endl;
    cout << "boost lib version" << BOOST_LIB_VERSION <<endl;
    return 0;
    }

    3、编译:

    root@ubuntu:/opt# g++ boot.cpp -o boot
    root@ubuntu:/opt# ./boot

    4、成功编译之后会显示结果,最后两行打印boost版本

     

    小提示:boost_1_49_0这个版本在ubuntu16.04上安装后会出现这个看起来像报错的界面,但是不要理它,查了半天也没啥用,还以为是g++要重装。先用以上方式检测,若成功则OK也!

    贰、安装openssl。

    一、卸载自带openssl
      sudo apt-get remove openssl

    二、解压文件
           tar -xzf openssl-1.0.2k.tar.gz
    三、配置
           sudo ./config shared --prefix=/opt/openssl --openssldir=/usr/lib/openssl
      shared 表示生成动态库

           prefix 表示安装目录

      openssldir 表示配置文件目录,ubuntu默认是/usr/lib/openssl,若设置其他目录,执行openssl命令时会有警告.

    三、编译
           make
    四、安装
           sudo make install

    五、设置环境变量
           sudo gedit ~/.bashrc
           在最后一行添加export PATH=$PATH:/opt/openssl/bin 保存退出,使用source ~/.bashrc使其立即生效。

    六、创建符号链接(第一个必须做,不然sudo openssl执行失败)

           ln -s /opt/openssl/bin/openssl /usr/bin/openssl
           ln -s /usr/local/ssl/openinclude/openssl /usr/include/openssl

    七、刷新动态库配置(实验不做也可以)

           #vim /etc/ld.so.conf

    八、在文件末尾加入
           /usr/local/ssl/lib

    九、测试(如果你没有创建符号链接,下面的命令要带上具体的路径)
           openssl version -a

    叁、安装postgresql 

    一、下载postgresql9.1版本的源码,http://www.postgresql.org/docs/9.1/static/install-short.html

    二、解压缩,然后切换到解压缩后的文件夹下

    三、运行命令:./configure

           此处可能会出现如下错误:

      configure: error: readline library not found

            解决办法是:安装libreadline6-dev

            sudo apt-get install libreadline6-dev

            问题得到解决

    四、运行命令:

           make 

           make install

    五、验证安装是否成功,输入命令:

          ls -l /servers/postgresql-9.6.9   (后面我换了安装目录)

          如果 bin include lib 和 share都出现,说明安装成功,

    六、设置用户账户

           adduser postgres

           passwd postgres

           输入密码

     七、创建postgresql 数据目录:

             mkdir /servers/postgresql-9.6.9/data

             chown postgres:postgres /servers/postgresql-9.6.9/data/

             ls -ld /servers/postgresql-9.6.9/data/

             会出现如下界面:

    八、初始化postgresql数据目录

           su postgres

         /servers/postgresql-9.6.9/bin/initdb -D /servers/postgresql-9.6.9/data/

    九、验证postgresql数据目录

           ls -l /servers/postgresql-9.6.9/data

          出现如下界面:

    十、启动pgsql数据库

           /servers/postgresql-9.6.9/bin/postmaster -D /servers/postgresql-9.6.9/data >logfile 2>&1 &

           cat logfile

    出现如下界面:

     

    执行/servers/postgresql-9.6.9/bin/postmaster -D /servers/postgresql-9.6.9/data >logfile 2>&1 &  中间遇到报错“没有权限”:

    解决办法:在/servers/postgresql-9.6.9/data下用“touch”命令创建一个logfile文件,不是用mkdir否则报错这个是目录文件。

    十一、创建postgresql 数据库,并验证安装是否成功

    /servers/postgresql-9.6.9/bin/createdb test
    /servers/postgresql-9.6.9/bin/psql test

    要是出现如下界面,则恭喜你,安装成功

    肆、安装WT

    cmake -DBOOST_PREFIX=/servers/boost -DENABLE_POSTGRES=on -DPOSTGRES_PREFIX=/servers/postgresql-9.6.9 .

    -BOOST_PREFIX=      #这个是WT cmake 找到boost安装目录的参数,也是看了半天报错才发现的。

    make 或 make -j4        #4线程编译,快一点。

    make install

    后面的操作:

    修改

    sudo apt-get install libdb++-dev

     

    vi makefile.unix

    DEFS=-I/opt/boost_1_49_0/include/ -DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64 -I/usr/local/ssl/include/

    LIBS =-L/servers/postgresql/lib/ -L/usr/local/ssl/lib/ $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))

    make -f makefile.unix

    root@iZbp17avth0ymplocugrb4Z:/servers/postgresql# su - postgres

    $ ./psql

    psql (9.6.9)

    Type "help" for help.

    postgres=# CREATE USER backend WITH PASSWORD 'XYZPASS';

    CREATE ROLE

    std::ostringstream ss;

    ss << "host=" << GetArg("-dbhost", "localhost");

    ss << " port=" << GetArg("-dbport", 5432);

    ss << " dbname=" << GetArg("-dbname", "testdb8");

    ss << " user=" << GetArg("-dbuser", "backend");

    ss << " password=" << GetArg("-dbpass", "XYZPASS");

    dbconn = ss.str();

    (小插曲)安装g++

    安装依赖库及相关软件
    $ sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo
    这个需要根据http://gcc.gnu.org/install/prerequisites.html里面的要求下载依赖库。

    安装GCC必备的几个东西:

    1.gcc5.4.0的源代码压缩包,下载地址:

    镜像站点:https://gcc.gnu.org/mirrors.html

    速度挺不错的:ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/

    2.四个压缩包:

    m4:http://www.gnu.org/software/m4/m4.html

    gmp:https://gmplib.org/

    mpfr:http://www.mpfr.org/

    mpc:http://www.multiprecision.org/

    上面五个包不能随意安装,需要按照m4-->gmp-->mpfr--->mpc-->gcc的顺序来安装

    安装流程:#后面是注释

    1.下载安装m4

    gunzip m4-1.4.16.tar.gz

    tar -xvf m4-1.4.16.tar

    cd m4-1.4.16/

    ./configure

    make

    sudo make install

    遇到报错:

    _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
    解决方案:
    build/host-m4-1.4.16/lib$ sed -i -e '/gets is a security/d' ./stdio.in.h
    将“_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");”一行删除,即可编译通过

    2.下载安装gmp-6.1.2

    tar -Jxvf gmp-6.1.2.tar.xz

    mkdir temp #在与gmp-6.1.2同级别的目录下建一个新文件夹,叫temp(自己命名)

    cd temp

    ../configure –prefix=/usr/local/gmp-6.1.2 ------------#这句是说,安装路径是/usr/local/,名字叫gmp-6.1.2;

    make

    sudo make install

    #安装好后,可以查看/usr/local/gmp-6.1.2目录下有三个文件夹

    3.下载安装mpfr-4.0.1

    tar -zxf mpfr-4.0.1.tar.gz

    mkdir temp

    cd temp

    ../configure --prefix=/usr/local/mpfr-4.0.1 --with-gmp=/usr/local/gmp-6.1.2   # prefix是安装路径,with是依赖的gmp库

    make

    sudo make install

    4.下载安装mpc-1.0.3

    tar -zxvf mpc-1.0.3.tar.gz

    cd temp

    #同样先清空temp文件夹


    ../configure --prefix=/usr/local/mpc-1.1.0 -with-gmp=/usr/local/gmp-6.1.2 -with-mpfr=/usr/local/mpfr-4.0.1

    make

    sudo make install

    5.安装gcc5.4.0

    tar -zxvf gcc-5.4.0.tar.gz

    #再次清空temp首先配置GCC,在temp文件夹中执行以下命令,注意,此时temp和gcc-5.4.0在同级目录下

    ..configure --prefix=/usr/local/gcc-5.4 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0

    make

    sudo make install

    #在配置时,对于语言language=选项,可以根据自己需要的编译器选择语言。 ,java,obc都可以加进去

    #至此GCC5.4安装完毕。

    配置环境变量

    此时系统中存在两个版本的gcc,一个是/usr/bin/gcc , 另一个是/usr/local/gcc-5.4/ 如不修改环境变量,在每次调用5.4版本的gcc时都需要指定路径。为了方便使用,可以在/usr/bin目录下做一个符号链接

    sudo ln -s /usr/local/gcc-5.4/bin/gcc /usr/local/bin/gcc54

    sudo ln -s /usr/local/gcc-5.4/bin/g++ /usr/local/bin/g++54

    这样就可以使用gcc54,g++54来调用程序了,旧版本的gcc,g++仍然可以适用。
    对于库路径同样需要设置下,这样,保证在调用库函数的时候可以适用到新版编译器的库函数,在etc/profile文件中适用root权限添加如下代码

    export LD_LIBRARY_PATH=/usr/local/gcc-5.4/lib:/usr/local/gcc-5.4/lib64:$LD_LIBRARY_PATH

    注销重新登录,使变量生效

    至此,gcc5.4安装完毕,解决了上述C++11的支持问题。

  • 相关阅读:
    瀑布流
    进度条
    图片延迟加载、scroll
    scroll 滚动广告
    json
    样式更改
    js 不同浏览器的宽度获取
    孤立点挖掘算法
    数据结构算法代码
    深入浅出JMS(一)--JMS基本概念
  • 原文地址:https://www.cnblogs.com/sinsenliu/p/9429895.html
Copyright © 2011-2022 走看看