最近工作中需要用到goczmq,记录一下安装过程遇到的坑;

说明

这个的安装教程在网上并不多,只有官方有一个安装教程还特别简单;参考了网上(仅有)的两篇教程,都有坑,浪费了好长时间;

先上官方教程:

如你所见,很简单,就这么几行:

1
2
3
4
5
6
7
8
Install
---
Dependencies
libsodium
libzmq
czmq
For CZMQ master
go get github.com/zeromq/goczmq

再上我参考的两篇:

先说一下这两篇教程的不足:

  • 教程一:文章中部分内容顺序错乱,设置环境变量格式错误;
  • 教程二:没有设置环境变量的环节,最后安装goczmq会出问题;

安装流程

安装依赖

libsodium

https://download.libsodium.org/libsodium/releases/下载最新的安装包(LATEST.tar.gz,使用wget工具直接下载)

解压:

1
tar zxvf LATEST.tar.gz

安装:

1
2
3
4
cd libsodium-stable
./configure
make && make check
sudo make install

这里就要添加环境变量,因为后面的依赖要依赖于这个:
/etc/profile中添加以下内容并重新source:

1
export PKG_CONFIG_PATH=/root/libsodium/libsodium-stable

zeromq

Next up, we build ZeroMQ with libsodium support:

1
2
3
4
5
6
7
git clone https://github.com/zeromq/libzmq.git
cd libzmq
./autogen.sh
./configure --with-libsodium
make check
sudo make install
sudo ldconfig

这一步会安装libzmq库

czmq

Now, we’ll build CZMQ against ZeroMQ. For an overview of what the CZMQ API provides

1
2
3
4
5
6
7
git clone https://github.com/zeromq/czmq.git
cd czmq
./autogen.sh
./configure
make check
sudo make install
sudo ldconfig

这一步会安装libczmq库

设置环境变量

/etc/profile中添加以下内容:

1
2
3
export PKG_CONFIG_PATH=/root/libsodium/libsodium-stable:/usr/local/lib/pkgconfig

export LD_LIBRARY_PATH=/usr/local/lib

注意:在/etc/profile中添加环境变量一定要加上关键字export,否则不生效!

添加完成之后,在当前bash中执行:

1
source /etc/profile

安装goczmq

1
go get github.com/zeromq/goczmq

遇到的问题说明

缺少包

安装依赖过程中遇到两个依赖缺少:

c++
1
Unable to find a working C++ compiler

解决办法:

1
yum install gcc-c++
libtool

缺少libtool

1
yum install libtool

环境变量问题

问题

刚开始我把环境变量都写到/etc/profile中了,但是少了关键字export,所以在最后安装goczmq时依然报错,提示缺少依赖:

但是查看发现,这些都已经安装了:

并且在/etc/profile中添加了环境变量:

分析

所以感觉自己设置的环境变量好像根本没有生效,将添加到/etc/profile的环境变量export测试一下,发现安装goczmq成功了:

结论

证明了之前设置的环境变量确实没有生效;

所以在/etc/profile和/root/.bashrc中添加环境变量一定要添加export关键字!!!

评论