Не найдя точного решения, вот обходной путь.
Исходный код Hadoop поставляется с ./start-build-env.sh
. После запуска скрипта будет запущен Docker container
, в котором Hadoop может быть собран с Maven
.
Все необходимые библиотеки существуют в контейнере, но включены только в $PATH
пользователя, а не в корневой каталог $PATH
. Это проблема, потому что очень удобно использовать sudo
для сборки пакета, и именно поэтому protoc --version
не может что-то вернуть.
Теперь каждый контейнер, запускаемый ./start-build-env.sh
, кажется временным, и вы не можете редактировать корень $PATH
через ~/.bashrc
. Обходной путь - запустить контейнер через ./start-build-env.sh
и из другого окна терминала войти в контейнер с помощью команды: sudo docker exec -it <container> bash
. Теперь вы можете скачать простой редактор (например, nano
или vi
- apt-get
) и редактировать значения по умолчанию $PATH
в visudo
.
Тогда команда sudo mvn package -Pdist...
внутри контейнера не застрянет в проблеме, которую я описал выше