我正在寻找在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个小时,没有运气。
答案 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的先决条件,请尝试 SunitaKoppar 的答案(我不知道为什么要投票)。
答案 4 :(得分:-1)
感谢您采取的措施。只是想补充一点,为了让autogen.sh工作,我必须安装下面的软件包(下面的mac命令):
brew install gtk
brew install autoconf
brew install automake