假设我们已经搭建好了比特币运行环境,不管你是改改比特币源码,还是创造了自己的山寨币,我们都希望自己的程序能发布,以便在其他Linux上安装,共享给好友或者安装新的钱包节点,而不是重新搭建一套环境。我没找到相关发布的教程,所以自己做了一个,目前还在实验阶段,只是在自己的几台服务器上安装成功了,其他的还不确定。先记录下,免得自己忘了,也希望对大家有帮助。
前提条件
- 你已经编译通过并且执行过
$ make install
- 能成功在任意位置运行客户端,包括 bitcoind / bitcoin-cli / bitcoin-qt 等等。
检查程序依赖库
进入你的 bitcoind
所在位置,不管是在源码目录下 src/bitcoind
, 还是在 /usr/local/bin
下。然后执行ldd命令查看所有依赖库:
$ cd /usr/local/bin
$ ldd ./bitcoind
我的输出结果大概是这样的:
linux-vdso.so.1 => (0x00007ffef67f2000)
libm.so.6 => /usr/local/lib/libm.so.6 (0x00007fc1c1925000)
libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x00007fc1c170e000)
libpthread.so.0 => /usr/local/lib/libpthread.so.0 (0x00007fc1c14ef000)
libc.so.6 => /usr/local/lib/libc.so.6 (0x00007fc1c1128000)
librt.so.1 => /usr/local/lib/librt.so.1 (0x00007fc1c0f20000)
libdl.so.2 => /usr/local/lib/libdl.so.2 (0x00007fc1c0d1b000)
libevent_core-2.0.so.5 => /usr/local/lib/libevent_core-2.0.so.5 (0x00007fc1c0af0000)
/lib64/ld-linux-x86-64.so.2 (0x000056228d338000)
不同编译环境这边显示的内容是不一样的,按照自己的来就行。下一步就是把所有依赖库拷贝出来,准备一个文件夹,以我的为例:
$ makedir MBC-0.120-release-for-unix
$ cd MBC-0.120-release-for-unix
$ makedir lib
把记录中所有在 /usr/local/lib/
中的文件拷贝到lib中,这里也可以写一个脚本加到Makefile中,不过现在先手动解决一下把,反正只要你用同一台电脑编译,这个运行库就不会变。
拷贝编译完成的程序
当你执行 make install
的时候,在 /usr/local/
中就已经生成了执行程序,此时我们只要将相关程序拷贝到我们准备好的 MBC-0.120-release-for-unix
文件夹中就行了。我们先在 MBC-0.120-release-for-unix
中再添加 bin
、 include
两个文件,再将 /usr/local/bin
、 /usr/local/include
、/usr/local/lib
中相关文件拷贝到相应文件夹,大致包括:
/usr/local/bin/bitcoind
/usr/local/bin/bitcoin-cli
/usr/local/bin/bitcoin-qt
(还有其他就全考过去好了,也可以挑对你有用的考)
/usr/local/include/bitcoinconsensus.h
/usr/local/lib/pkgconfig
/usr/local/lib/libbitcoinconsensus.*
(目前lib下应该包括/usr/local/lib中的内容和我们第一步考过来的依赖库)
我们现在就有了一个包含 bin
、 include
、 lib
三个文件的release包。
编写Makefile安装程序
其实你也可以不写Makefile,把包覆盖到要安装的服务器的 /usr/local/
下也可以。以下是我的Makefile,写的HIN简陋,欢迎大家一起完善:
install:
cp -rf ./bin/* /usr/local/bin/;
cp -rf ./include/* /usr/local/include/;
cp -i ./lib/* /usr/local/lib/;
@echo 文件拷贝完成...
ldconfig; #更新一下共享库的链接,让系统识别我们添加的库
@echo 共享库链接完成...
@echo 安装成功!
那么现在release包算完成了
拷贝到服务器上,执行
$ sudo make install
然后用
$ bitcoind -daemon
看看是否安装成功了。
完成!