创造你的数字货币(3)--发布UNIX安装程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Gannicus_Zhu/article/details/74330708

假设我们已经搭建好了比特币运行环境,不管你是改改比特币源码,还是创造了自己的山寨币,我们都希望自己的程序能发布,以便在其他Linux上安装,共享给好友或者安装新的钱包节点,而不是重新搭建一套环境。我没找到相关发布的教程,所以自己做了一个,目前还在实验阶段,只是在自己的几台服务器上安装成功了,其他的还不确定。先记录下,免得自己忘了,也希望对大家有帮助。

前提条件

  1. 你已经编译通过并且执行过 $ make install
  2. 能成功在任意位置运行客户端,包括 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 中再添加 bininclude 两个文件,再将 /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中的内容和我们第一步考过来的依赖库)

我们现在就有了一个包含 binincludelib 三个文件的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

看看是否安装成功了。
完成!

猜你喜欢

转载自blog.csdn.net/Gannicus_Zhu/article/details/74330708