Ubuntu, программа в настоящее время не установлена

У меня Ubuntu 10.04.4.

Я скачал и установил scala (архив.tgz), распаковал в /opt, установил права на чтение и выполнение в bin для всех пользователей. Также обновлен PATH в /etc/environment

Когда я запускаю программу только с scala Команда, хотя имя автозаполнено, она не запускается:

root@ubuntu:/home/user# scala
  The program 'scala' is currently not installed.  You can install it by typing:
  apt-get install scala

Но если я использую полный путь к исполняемому файлу, это работает.

Исполняемые файлы из scala/bin находятся в PATH (автозаполнение работает). Что я делаю неправильно?

root@ubuntu:/home/user# which scala
root@ubuntu:/home/user# whereis scala
scala: /opt/scala-2.9.2/bin/scala /opt/scala-2.9.2/bin/scala.bat /opt/scala/bin/scala /opt/scala/bin/scala.bat
root@ubuntu:/home/user# echo $PATH
${SCALA_HOME}/bin:${JAVA_HOME}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
root@ubuntu:/home/user# echo $SCALA_HOME
/opt/scala

root@ubuntu:/home/user# cat /etc/environment 
JAVA_HOME="/usr/lib/jvm/java-7-oracle"
SCALA_HOME="/opt/scala"
PATH=${SCALA_HOME}/bin:${JAVA_HOME}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

2 ответа

Решение

Ваше утверждение PATH выглядит неправильно, учитывая ваш вывод:

root@ubuntu:/home/user# echo $PATH
${SCALA_HOME}/bin:${JAVA_HOME}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

${SCALA_HOME} должен был расшириться там.

Что вы добавили в свой /etc/environment?

Обновить:

Ах хорошо. / etc / environment не обрабатывается оболочкой, поэтому расширения переменных, как вы пытаетесь использовать в своем PATH, там не будут работать. Он ожидает только пары ключ-значение.

Поместите ваш обновленный путь в /etc/profile или что-то подобное. Вы должны сохранить ваши настройки $SCALA_HOME и $JAVA_HOME в /etc/environmentХотя расширение переменных там не будет работать.

(Аналогичный вопрос: https://askubuntu.com/questions/78856/referencing-environment-variables-in-etc-environment)

Вам нужно добавить /opt/scala/bin на ваш $PATH, Судя по пути, ваш Scala установка, вероятно, была скомпилирована из исходного кода, а не установлена ​​с помощью управления пакетами в Ubuntu (apt/dpkg).

Другие вопросы по тегам