Как установить NetBeans IDE в Linux? Для установки NetBeans в Linux потребуется пакет разработчика Java (JDK) 7 либо JDK 8. Установка NetBeans сводится к выполнению нескольких нажатий клавиш, однако здесь мы упомянем несколько моментов которые полезно будет знать.
NetBeans является программой с открытым исходным кодом и распространяется бесплатно, так сказать на халяву. Теоретически можно установить NetBeans на любой Linux дистрибутив и он должен работать, однако в данном примере платформой для установки будет использована последняя версия полюбившегося лично нам Debian GNU/Linux (Jessie на данный момент).
- Установка JDK из .deb пакетов
- Ручная установка JDK в Linux с сайта oracle.com
- Установка NetBeans в Linux
- Проблемы с NetBeans в Linux?
Установка 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.
Проблемы с 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