Переменная среды JAVA_HOME не установлена ​​Validator.nu HTML Parser - PullRequest
4 голосов
/ 22 июля 2011

Я пытаюсь установить локальную версию сервера Validator.nu, и при попытке построить HTML-парсер не удается.

Он говорит, что не может найти переменную JAVA_HOME, которую я установил в моем файле .bashrc, и правильно показывает, когда я набираю "echo $ JAVA_HOME" в командной строке

Идеи приветствуются

Ошибка вывода

"hg" pull --update -R build https://bitbucket.org/validator/build/
Not trusting file build/.hg/hgrc from untrusted user dave, group dave
Not trusting file /home/dave/src/checker/build/.hg/hgrc from untrusted user dave, group dave
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cacerts config setting)
pulling from https://bitbucket.org/validator/build/
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cacerts config setting)
searching for changes
no changes found
Error: The JAVA_HOME environment variable is not set.
Set the JAVA_HOME environment variable to the pathname of the directory where your JDK is installed.

Ответы [ 3 ]

3 голосов
/ 27 июля 2011

Вместо:

$ sudo python build/build.py all

try:

$ sudo -E python build/build.py all

Команда sudo по соображениям безопасности сбрасывает среду (поэтому ваш JAVA_HOME для процесса python стирается даже при его экспорте).«Sudo -E» защитит окружающую среду.

2 голосов
/ 27 июля 2011

После этого в течение последних 4 дней мне удалось запустить сервер validator.nu на моей локальной виртуальной машине Ubuntu, и поэтому я решил обновить этот поток, если кто-нибудь еще столкнется с такими же проблемами.

Я все еще не уверен на 100%, откуда исходила проблема с переменной JAVA_HOME, но я подозреваю (хотя я не эксперт в этом), что это как-то связано с тем, как я использовал sudo для запускасборка Python.

Первоначально я следовал инструкциям на http://about.validator.nu/#src, но использовал

$ sudo python build/build.py all

Это произошло потому, что часть сборки нуждалась в правильных разрешениях для работы.

Это мой пошаговый процесс, который начинается с чистой установки Ubuntu 11.

  • установлен Ubuntu 11
  • открыл терминал
  • sudo/ bin / bash <----------- <strong>Я думаю, что это критическая линия
  • apt-get install mercurial
  • apt-get installsubversion
  • apt-get install openjdk-6-jre
  • apt-get install openjdk-6-jdk
  • export JAVA_HOME = / usr / lib / jvm / java-6-openjdk
  • следуйте остальным http://about.validator.nu/#srcинструкция

Мне нужно будет сделать это снова, когда я настрою это для внутренней сети для наших скриптов сборки, так что я отредактирую это, если я что-то пропустил.

Надеюсь, это спасет головную боль другого человека и потерянные дни!

2 голосов
/ 26 июля 2011

Я полагаю (из тега), что вы используете Ubuntu.

список версий установленных javas в вашей системе:

dave@ubuntu:~$ update-java-alternatives --list
java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk

Обратите внимание, что если вы установите JAVA_HOME в ~ / .bashrc, он будет установлен только в ваших терминальных сессиях. Если вы не экспортируете его, он будет установлен только для вашего текущего процесса оболочки (не для таких подпроцессов, как mercurial).

добавить строку в ваш .bashrc:

export JAVA_HOME="/usr/lib/jvm/java-6-openjdk"

открыть новый терминал и проверить его:

$JAVA_HOME/bin/java -version && echo java seen by bash
bash -c '$JAVA_HOME/bin/java -version && echo java seen by bash subprocesses'

Если вы хотите установить среду для всех процессов (не только запускаемых вручную из терминала), вы можете:

dave@ubuntu:~$ sudo $EDITOR /etc/environment
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...