如何在Arch Linux上安装protobuf 2.5,使用maven 3.3.1编译hadoop 2.6.0

时间:2015-04-22 12:34:50

标签: linux hadoop maven-3

我正在寻找在Arch Linux上安装protobuf 2.5.0,以便在操作系统上安装protoc-2.5.0.so,这样我就可以继续从源代码构建hadoop 2.6.0并让我的生活轻松! :)

顺便说一下,当我从源代码构建hadoop时,protobuf 2.6.0无法编译。 Ubuntu 14.04附带了protoc 2.5.0。我不想使用Ubuntu。

请先查看截图(没有protobuf 2.5.0),因为问题就在那里..我猜 我得到以下异常,我知道目前没有在arch linux中安装protoc。

  

[错误]无法执行目标   org.apache.hadoop:hadoop-maven-plugins:2.6.0:protoc(compile-protoc)   关于项目hadoop-common:   org.apache.maven.plugin.MojoExecutionException:'protoc --version'做了   不返回版本 - > [帮助1]

请帮帮我,因为,我每天花两个小时的时间花了4个小时,没有运气。

5 个答案:

答案 0 :(得分:26)

编译Google的protobuf非常简单。 我最初在this blog post上发现了自己编译hadoop时如何做到这一点。

但这是我的版本:

$ cd /usr/local/src/
$ wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
$ tar xvf protobuf-2.5.0.tar.gz
$ cd protobuf-2.5.0
$ ./autogen.sh
$ ./configure --prefix=/usr
$ make
$ make install
$ protoc --version

为java安装protobuf

$ cd java
$ mvn install
$ mvn package

你应该好好去。

要使您能够安装不同版本的protobuf,请安装stow 然后将./configure --prefix=/usr更改为./configure --prefix=/usr/local/stow/protobuf-2.5.0

然后使用stow将protobuf链接到您的系统:

$ cd /usr/local/stow
$ stow protobuf-2.5.0

注意:stow默认使用/ usr / local / bin。确保$PATH

中的内容

取消关联该版本的protobuf,

$ stow -D protobuf-2.5.0

希望这会有所帮助。

答案 1 :(得分:0)

更简单但未来未来的解决方案(未来的查询)将转到Arch Linux Archives:http://seblu.net/a/archive/packages/p/protobuf/

卸载较新版本的protobuf并通过pacman -U protobuf-2.5.x安装下载的软件包。

虽然每当你通过pacman升级Arch Linux软件包时,你都需要确保你正在做:sudo pacman -Syu --ignore protobuf

答案 2 :(得分:0)

我不知道为什么上面的答案被否决了,即使我不得不执行更多的步骤(除了Rudker接受的答案之外)才能在Ubuntu Xenial上安装protobuf 2.5。

在这里为每个人的利益保留其他步骤:

apt-get install autoconf,以响应错误:./autogen.sh: autoreconf: not found的命令:./autogen.sh

apt-get install libtool,以响应错误:autoreconf: libtoolize is needed because this package uses Libtool的命令:./autogen.sh

apt install g++,以响应错误:configure: error: C++ preprocessor "/lib/cpp" fails sanity check的命令:./configure --prefix=/usr

答案 3 :(得分:0)

我目前没有足够的声誉来发表评论,所以我在此处添加了一个答案以更新投票最高的答案。

由于 protobuf 移至其他存储库,因此新的 wget 命令应为:

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

并且为了运行 ./ autogen.sh ,您可能需要安装以下代码:

sudo yum install libtool automake autoconf

有关OSX的先决条件,请尝试 SunitaKop​​par 的答案(我不知道为什么要投票)。

答案 4 :(得分:-1)

感谢您采取的措施。只是想补充一点,为了让autogen.sh工作,我必须安装下面的软件包(下面的mac命令):

  

brew install gtk

     

brew install autoconf

     

brew install automake