Установка NetBeans IDE в Linux

archive view archive save

netbeans-logo Как установить NetBeans IDE в Linux? Для установки NetBeans в Linux потребуется пакет разработчика Java (JDK) 7 либо JDK 8. Установка NetBeans сводится к выполнению нескольких нажатий клавиш, однако здесь мы упомянем несколько моментов которые полезно будет знать.

NetBeans является программой с открытым исходным кодом и распространяется бесплатно, так сказать на халяву. Теоретически можно установить NetBeans на любой Linux дистрибутив и он должен работать, однако в данном примере платформой для установки будет использована последняя версия полюбившегося лично нам Debian GNU/Linux (Jessie на данный момент).

Установка JDK из .deb пакетов

Как упомянуто выше, для установки NetBeans 8 нам сначала потребуется установить Java (JDK) 7 либо JDK 8, в пакетах репозиториев Debian это "openjdk-7-jdk" (JDK 8 нихт), делаем:

apt-get install openjdk-7-jdk

Проверяем версию Java:

$ java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-6+deb8u1)
OpenJDK Client VM (build 24.85-b03, mixed mode, sharing)
 
$ javac -version
javac 1.7.0_85

Ручная установка JDK в Linux с сайта oracle.com

Загрузить Java SE Development Kit 8 - Downloads с помощью браузера не удалось, соединение постоянно обрывалось на 20 МБ загрузки, поэтому пробуем скачивать с помощью wget

$ wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-i586.tar.gz

Oracle не разрешает доступ к файлам без принятия лицензионного соглашения, поэтому нам нужно модифицировать HTTP заголовки и добавить "Cookie: oraclelicense=accept-securebackup-cookie" в наш запрос.

Извлекаем в каталог /opt/jdk:

$ umask 022
$ mkdir -p /opt/jdk/8
$ tar -zxf jdk-8u66-linux-i586.tar.gz -C /opt/jdk
$ ls /opt/jdk
jdk1.8.0_66
$ mv opt/jdk/jdk1.8.0_66 opt/jdk/8

Смотрим есть ли установлена java, есть ли альтернативы и какой приоритет:

$ ls -la /usr/bin/java
lrwxrwxrwx 1 root root 22 июн  6 12:54 /usr/bin/java -> /etc/alternatives/java
$ ls -la /etc/alternatives/java
lrwxrwxrwx 1 root root 45 июн  6 12:54 /etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
$ update-alternatives --display java
java - автоматический режим
  ссылка сейчас указывает на /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java — приоритет 1071
  подчинённый java.1.gz: /usr/lib/jvm/java-7-openjdk-i386/jre/man/man1/java.1.gz
Текущая «лучшая» версия: «/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java».
 
$ ls -la /usr/bin/javac
lrwxrwxrwx 1 root root 23 июн  6 15:59 /usr/bin/javac -> /etc/alternatives/javac
$ ls -la /etc/alternatives/javac
lrwxrwxrwx 1 root root 42 июн  6 15:59 /etc/alternatives/javac -> /usr/lib/jvm/java-7-openjdk-i386/bin/javac
$ update-alternatives --display javac
javac - автоматический режим
  ссылка сейчас указывает на /usr/lib/jvm/java-7-openjdk-i386/bin/javac
/usr/lib/jvm/java-7-openjdk-i386/bin/javac — приоритет 1071
  подчинённый javac.1.gz: /usr/lib/jvm/java-7-openjdk-i386/man/man1/javac.1.gz
Текущая «лучшая» версия: «/usr/lib/jvm/java-7-openjdk-i386/bin/javac».

Добавляем нашу вторую, установленную вручную, самую свежую версию java в альтернативы с наивысшим приоритетом:

$ update-alternatives --install /usr/bin/java java /opt/jdk/8/bin/java 1081
update-alternatives: используется /opt/jdk/bin/java для предоставления /usr/bin/java (java) в автоматическом режиме
 
$ update-alternatives --install /usr/bin/javac javac /opt/jdk/8/bin/javac 1081
update-alternatives: используется /opt/jdk/bin/javac для предоставления /usr/bin/javac (javac) в автоматическом режиме

Проверим, успешно ли добавлены альтернативы:

$ update-alternatives --display java
java - автоматический режим
  ссылка сейчас указывает на /opt/jdk/8/bin/java
/opt/jdk/8/bin/java — приоритет 1081
/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java — приоритет 1071
  подчинённый java.1.gz: /usr/lib/jvm/java-7-openjdk-i386/jre/man/man1/java.1.gz
Текущая «лучшая» версия: «/opt/jdk/8/bin/java».
 
$ update-alternatives --display javac
javac - автоматический режим
  ссылка сейчас указывает на /opt/jdk/8/bin/javac
/opt/jdk/8/bin/javac — приоритет 1081
/usr/lib/jvm/java-7-openjdk-i386/bin/javac — приоритет 1071
  подчинённый javac.1.gz: /usr/lib/jvm/java-7-openjdk-i386/man/man1/javac.1.gz
Текущая «лучшая» версия: «/opt/jdk/8/bin/javac».

Всегда можем удалить, если будет мешать:

update-alternatives --remove java /opt/jdk/8/bin/java
update-alternatives --remove javac /opt/jdk/8/bin/javac

Проверяем версию:

$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) Client VM (build 25.66-b17, mixed mode)
 
$ javac -version
javac 1.8.0_66

Сменить альтернативу, если будет нужно: update-alternatives --config java

Настройки безопасности Java

Настройки безопасности Java осуществляются через "Java Control Panel" исполняемый файл которой расположен по адресу /opt/jdk/jre/bin/jcontrol либо /opt/netbeans8/bin/jre/bin/jcontrol (если установлен):

В пакете "openjdk-7-jdk" панель "Java Control Panel" отсутствует, поэтому создать альтернативу придётся вручную:

$ update-alternatives --display jcontrol
update-alternatives: ошибка: нет альтернатив для jcontrol
 
$ update-alternatives --install /usr/bin/jcontrol jcontrol /opt/jdk/8/jre/bin/jcontrol 100
update-alternatives: используется /opt/jdk/8/jre/bin/jcontrol для предоставления /usr/bin/jcontrol (jcontrol) в автоматическом режиме

Удалить альтернативу jcontrol:

$ update-alternatives --remove jcontrol /opt/jdk/8/jre/bin/jcontrol

Создать ярлык запуска "Java Control Panel" можно скопировав файл /opt/jdk/jre/lib/desktop/applications/sun_java.desktop или /opt/netbeans8/jre/lib/desktop/applications/sun_java.desktop в директорию /home/user/.local/share/applications и немного подредактировав его:

[Desktop Entry]
Encoding=UTF-8
Name=Java Control Panel
Comment=Java Control Panel
Exec=jcontrol
Icon=/opt/jdk/8/jre/lib/desktop/icons/hicolor/48x48/apps/sun-jcontrol.png
Terminal=false
Type=Application
Categories=Application;Settings;Java;X-Red-Hat-Base;X-Ximian-Settings;

Ярлык "Java Control Panel" будет доступен из "Меню приложений - Настройки - Java Control Panel". Нет особой разницы откуда запускать "Java Control Panel" - /opt/jdk/jre/bin/jcontrol или /opt/netbeans8/bin/jre/bin/jcontrol, в любом случае настройки сохраняются в домашнем каталоге пользователя /home/user/.java

Установка NetBeans в Linux

Теперь, когда JDK установлен, с сайта https://netbeans.org/downloads/ загружаем нужный нам пакет установки, в нашем случае это будет NetBeans PHP размером в 63 МВ (поддержка только PHP и HTML5, в будущем можно расширить из "Сервис - Подключаемые модули") netbeans-8.0.1-php-linux.sh и дать ему "чмод" на выполнение:

chmod +x netbeans-8.0.1-php-linux.sh

Теперь достаточно запустить ./netbeans-8.0.1-php-linux.sh и следовать инструкциям графического инсталлятора:

$ ./netbeans-8.1-php-linux-x86.sh
Настройка программы установки...
Поиск виртуальной машины Java в системе...
Подготовка связанной виртуальной машины Java...
Извлечение данных установки...
Запуск программы установки...

По умолчанию предлагается устанавливать NetBeans в директорию /usr/local/netbeans-8.1, однако всё стороннее ПО ставим в директорию /opt, а NetBeans установим в /opt/netbeans8.

netbeans8_install_on_debian_1

netbeans8_install_on_debian_2

netbeans8_install_on_debian_3

netbeans8_install_on_debian_4

netbeans8_install_on_debian_5

netbeans8_install_on_debian_6

Проблемы с NetBeans в Linux?

Netbeans не доступен для обычного (non-root) пользователя

Если после установки из-под имени суперпользователя (aka root) программа не доступна для обычных пользователей, тогда явно проблема в чмодах.

Для того, чтобы устанавливаемые программы/библиотеки были доступны всем пользователя системы, перед установкой в терминале выполните команду umask и если результатом будет значение отличное от 0022 (по умолчанию), значит после установки у обычных пользователей могут быть проблемы с доступом.

Например, если установить umask 0027 тогда права на файлы будут 0640, а на каталоги и исполняемые файлы 0750, что означает возможность доступа только для пользователя от имени которого выполнялась установка.

umask для всех пользователей системы по умолчанию = 0022 (022, ака 22), но это можно изменить на уровне системы в файле /etc/login.defs или на уровне отдельно взятого пользователя в файле ~/.bashrc.

Следует иметь ввиду, что при выполнении команд su методом значение umask наследуется от первоначального пользователя от имени которого открыт терминал в котором выполняется su. Например, мы вошли в систему с именем vasya, для которого в ~/.bashrc установлен umask 027, и от имени этого же пользователя запустили bash консоль, потом su методом в ней выполнили команду (mkdir например) с правами суперпользователя для которого в /root/.bashrc установлен umask 022 - в таком случае файлы и директории будут созданы с правами umask 027, т.е. 0640 и 0750 соответственно.

umask довольно часто или почти всегда наследуется также многими скриптами установки вроде "netbeans-8.0.1-php-linux.sh" etc - поэтому, если мы хотим сделать программу доступной для всех пользователей системы, то перед выполнением установки мы должны сделать "umask 022" и "umask 027" после установки чтобы вернуть чмоды на место.

Нет ярлыка NetBeans

В среде рабочего стола XFCE ярлык NetBeans по умолчанию устанавливается по адресу /usr/share/xfce4/applications/netbeans-8.1.desktop и содержит:

[Desktop Entry]
Encoding=UTF-8
Name=NetBeans IDE 8.1
Comment=The Smarter Way to Code
Exec=/bin/sh "/opt/netbeans8/bin/netbeans"
Icon=/opt/netbeans8/nb/netbeans.png
Categories=Application;Development;Java;IDE
Version=1.0
Type=Application
Terminal=0

Отображаться ярлык должен в "Меню приложений - Разработка". Перезаписать общий (системный) для всех ярлык /usr/share/xfce4/applications/netbeans-8.1.desktop может каждый пользователь создав свой собственный с тем же именем /home/user/.local/share/applications/netbeans-8.1.desktop.

Например, выше мы установили две версии JDK (JDK 7 abd JDK 8), но по умолчанию NetBeans упрямо использует свою версию из /opt/netbeans8/bin/jre и это прописано в переменной netbeans_jdkhome="/opt/netbeans8/bin/jre" файла конфигурации /opt/netbeans8/etc/netbeans.conf, однако это мы сможем переопределить не только в netbeans.conf, но и в ярлыке запуска - создадим /home/user/.local/share/applications/netbeans-8.1.desktop в котором укажем свой путь к jdkhome:

[Desktop Entry]
Encoding=UTF-8
Name=NetBeans IDE 8
Comment=The Smarter Way to Code
Exec=/bin/sh "/opt/netbeans8/bin/netbeans" --jdkhome /opt/jdk/8
Icon=/opt/netbeans8/nb/netbeans.png
Categories=Application;Development;Java;IDE
Version=1.0
Type=Application
Terminal=0

При отсутствии ярлыка его можно сделать и ручками создав файл /home/user/desktop/netbeans-8.1.desktop с аналогичным содержимым. Если ярлык из "Меню приложений - Разработка" не имеет иконки, тогда возможно стоит проверить правильность содержимого файла /home/user/.local/share/applications/netbeans-8.1.desktop

Как удалить NetBeans IDE?

Завершите работу среды IDE и запустите uninstall.sh из каталога установки, в нашем случае это /opt/netbeans8/uninstall.sh


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме