安装 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的支持问题。
安装 primecoin 矿池的更多相关文章
- NOMP矿池搭建
本文将以dash(x11)和Raven(x16rv2)为例子来说明多算法矿池的搭建过程. 1 环境准备 1.1 准备Ubuntu 准备虚拟机或物理机,操作系统为Ubuntu 16.04 1.2 安装必 ...
- YIIMP矿池搭建
本文将以Verge(x17)和Raven(x16rv2)为例子来说明多算法矿池YIIMP的搭建过程. 1 环境准备 1.1 准备Ubuntu 准备虚拟机或物理机,操作系统为Ubuntu 18.04,之 ...
- Python实现矿池
自建P2POOL矿池详细教程(高级篇)http://8btc.com/article-1804-1.html p2pool比特币矿池教程综合篇(包含linux矿池教程)https://www.cybt ...
- Bytom矿池接入协议指南
矿机配置 https://gist.github.com/HAOYUatHZ/a47400bde4a138825faef415387b532c 固件升级 https://service.bitmain ...
- unomp 矿池运行问题随记
经过大量的实践,遇到的问题或经验如下: 1.单机运行多矿池时,单机CPU核心数 成为性能瓶颈,运行两个月后,有部分用户反映 矿机速率只有以前的一半. 2.Dash 等可以自行报块的矿池,每个块的股份比 ...
- IPFS矿池集群方案详解
IPFS作为一项分布式存储技术,可以说是web3.0发展的基石.关于IPFS的产业,如存储.技术.矿机.矿池等也发展得非常迅速. 什么是单机挖矿? 单机挖矿就是一台机器就是一个节点,一台机器就完成挖矿 ...
- 致 BitClub 矿池,你们为什么要对比特币网络发动交易延展性攻击?
原文:https://medium.com/@bithernet/bitclub-why-are-you-doing-malleability-attack-now-6faa194b2146#.v4y ...
- CentOS:xmr-stak-cpu安装,服务器CPU挖Monero门罗币
一.获取钱包地址 可以使用本地钱包地址.首先到Monero官网下载本地钱包,支持Windows 64-bit.Windows 32-bit.Mac OS X 64-bit.Linux 64-bit.L ...
- [转]一键安装藏隐患,phpStudy批量入侵的分析与溯源
一.前言 近日,腾讯安全云鼎实验室监测到大量主机被入侵并添加了一个名为“vusr_dx$”的隐藏帐号:同时,云鼎实验室还监测到此类帐号被大量创建的同时存在对应帐号异地登录的情况. Windows 的帐 ...
随机推荐
- 计算机二级-C语言-程序设计题-190119记录-求出一个二维数组每一列的最小值。
//编写一个函数:tt指向一个M行N列的二维数组,求出二维数组每列中最小的元素,并依次放入pp所指的一维数组中.二维数组中的数在主函数中赋予. //重难点:求出的是每一列的最小值,这里要注意,学会简化 ...
- hive3.1.1 hive-site.xml
<property> <name>hive.metastore.warehouse.dir</name> <value>/data/hive/wareh ...
- linux克隆多台虚拟机后网络无法识别更无法连接上网的解决方法
本人近期学习LINUX,想克隆多台CENTOS来练习在LINUX下安装软件,配置环境.因为对系统不是很熟悉,就想保持一个纯净版本,如果系统玩坏了就删除再重新克隆一个继续配置,以节省时间.后来发现,克隆 ...
- POJ-2891 Strange Way to Express Integers(拓展中国剩余定理)
放一个写的不错的博客:https://www.cnblogs.com/zwfymqz/p/8425731.html POJ好像不能用__int128. #include <iostream> ...
- bootstrap与vue,react的区别
链接(与Vue区别):https://www.php.cn/faq/423095.html 链接(BootStrap, React, Vue的比较):https://www.jianshu.com/p ...
- 使用Gogs搭建自己的Git服务--windows
Gogs介绍 官方网站:传送门... 使用Gogs可以搭建一个自己的私有Git服务. 有时候我们有一些有些不想公开的私人小项目或者练习项目,源码想放在GitHub.码云(一直觉得这名字有点蹭知名度)这 ...
- PyCharm调试方法
1.调试部分代码以后继续执行剩余代码,点击Resume Program:
- RFID学习
RFID:射频识别卡有读卡器和电子标签(有源/无源/半有源)组成,工作频率有LF/HF/UHF/MF,低频的通讯距离近(1m)常用来做门禁:高频的通讯距离远可以批量读取. 无源的轻巧/防拆一致性好,在 ...
- tornado框架的简单实用
一.安装模块 pip3 install tornado 二.简单的起服务的方法 import json, datetime from tornado.web import RequestHandler ...
- GO 空白标识符 _
空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃. _ 实际上是一个只写变量,你不能得到它的值.这样做是因为 Go 语言中你必须使用所有被声明的变量,但有时你并不需要使用 ...