В этом учебном руководстве показано использование функции удаленной разработки проектов C/C++. Вы хотите разрабатывать приложения SolarisTM или Linux на ноутбуке с ОС Windows 7 или Mac OS X? Вы хотите тестировать приложение в других операционных системах прямо в среде IDE? Вы хотите компилировать крупные приложения на быстром многоядерном сервере, а не на обычной рабочей станции? Все это возможно с помощью функции удаленной разработки среды IDE NetBeans 6.9.
Ознакомьтесь с этим учебным руководством, чтобы получить сведения об использовании этой функции.
Ключевые понятия удаленной разработки
Удаленная разработка осуществляется следующим образом:
Запустите среду IDE NetBeans на клиентской системе. Это позволит создавать проекты, редактировать файлы и использовать вспомогательные функции ввода кода таким же образом, как и для локальных проектов. При этом в ходе построения, выполнения или отладки проекта процесс выполняется на удаленном сервере, а входные и выходные данные передаются в клиентскую систему. В идеальном случае после настройки удаленного узла разработчик не замечает разницы между рабочим процессом локальной и удаленной разработки.
Для использования удаленного узла при запуске различных средств необходимо выполнение следующих условий.
Локальная клиентская система и удаленная система должны иметь доступ к файлам проекта через ресурсы с совместным доступом или при помощи протокола безопасного интерпретатора команд (ssh).
Клиент должен обладать возможностью подключения к удаленной системе через безопасный интерпретатор команд (ssh), даже если файлы проекта находятся в папках совместного доступа.
В удаленной системе должен быть реализован доступ к поддерживаемому набору средств.
В удаленной системе должны присутствовать системные библиотеки, необходимые для активации помощника при работе с кодом в проекте.
Все эти требования описаны ниже.
Совместное использование исходного кода
Клиентская система и удаленный сервер должны иметь сведения о файлах исходного кода. Файлы исходного кода могут находиться в каталоге с совместным доступом или могут быть безопасным образом скопированы средой IDE из локальной системы в удаленную. В разделе Настройка системы приведены дополнительные сведения о способах настройки папок совместного доступа в различных системах.
Средства связи
Передача данных между клиентом и сервером вне сетевого каталога с совместным доступом выполняется через протокол SSH. SSH представляет собой распространенный протокол для безопасного обмена данными между двумя сетевыми устройствами. На сервер должен быть установлен сервер SSH, а соединение SSH между клиентской и серверной системой должно быть разрешено.
Наборы средств
Поддерживаемый набор средств (набор компиляторов GNU, либо Sun Studio или Oracle Solaris Studio) должен быть доступен в среде IDE. Исполняемые файлы средств должны находиться в пути учетной записи пользователя, используемой для подключения к удаленному узлу, для быстрого доступа среды IDE к этим средствам. В особенности это касается средств, установленных в местоположениях, отличных от местоположений по умолчанию.
Вспомогательные функции
Для корректной поддержки функций редактора (например, автозавершения кода и семантического выделения, окна классов и др.) необходимо использовать проект в корректно настроенной среде, т.е. среда должна содержать системные файлы include, определения макроса, платформу и пр. Эти данные поступают с удаленного сервера и хранятся локально в клиентской системе, поэтому при локальном изменении проекта помощник при работе с кодом будет активен, даже если проект настроен для работы с удаленным узлом разработки.
Настройка системы
Удаленный сервер должен разрешить взаимодействие через протокол SSH с клиентского компьютера, на котором запущена среда IDE. При необходимости использования совместного доступа к файлам вместо копирования файлов средой IDE на удаленный сервер необходимо настроить совместный доступ к файлам для обеих систем.
Протокол SSH
Сервер SSH обычно содержится в операционных системах Linux и Solaris и по умолчанию запускается в большинстве случаев. Если сервер не запущен, то для получения сведений об установке и управлении SSH обратитесь к статье http://en.wikipedia.org/wiki/Secure_Shell
Среда IDE предоставляет собственный клиент ssh, так что нет необходимости устанавливать клиент ssh на локальном компьютере.
Необходимо активировать соединение SSH между клиентской и серверной системами, что, как правило, означает наличие на сервере открытого порта 22. Если порт 22 отключен, то вам может понадобиться доступ с правами пользователя root (администратора) или помощь администратора системы.
Между системами должен быть активирован SSH, даже если параметр "Безопасная смарт-копия" для переноса файлов проекта на удаленный сервер не используется.
Совместное использование исходного кода
Если совместный доступ к файлам между вашей системой Windows и удаленным узлом для других пользователей не настроен, рекомендуется использовать параметр "Безопасная смарт-копия" вместо совместного доступа к файлам.
Для конфигурации "Windows-UNIX®" существует два способа совместного доступа к ресурсам:
Сервер Samba в системе UNIX
Пакет служб Windows для UNIX (SFU), установленный в системе Windows
Упорядочивание исходного кода с помощью сервера Samba
Сервер Samba позволяет пользователю Windows отображать папки NFS как сетевые диски Windows. Пакет Samba входит в состав большинства дистрибутивов операционных систем Linux и Solaris. Если он не входит в дистрибутив, то его можно загрузить на веб-сайте www.samba.org
При наличии доступа к серверу с правами пользователя root (администратора) сервер Samba можно настроить самостоятельно при помощи указаний, приведенных в документах ниже. В противном случае для этого необходимо связаться с администратором системы.
После запуска сервера Samba папки сервера UNIX можно отобразить так же, как и папки Windows.
Службы Windows для UNIX (SFU)
Другой возможностью являются "Службы Windows для UNIX" - набор средств, предоставляемый компанией Майкрософт для доступа к файловым системам NFS из Windows.
Эти службы можно загрузить из Центра загрузки Майкрософт, а также просмотреть документацию на странице служб Windows для Unix.
Пакет SFU недоступен пользователям Windows Vista или Windows 7. Версии Windows 7 Корпоративная и Максимальная содержат компоненты служб для Unix с именами "Подсистема для приложений на основе UNIX" (SUA) и "Клиент для NFS v 3". Дополнительные сведения приведены в статье http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX
Настройка Mac OS X
Система Mac OS X поддерживает подключение к серверам Samba. Кроме того, система Mac OS X может монтировать совместно используемые системы NFS сервера.
Можно использовать команду "Средство поиска" > "Переход" > "Подключиться к серверу" и ввести адрес сервера.
Для подключения к серверам SMB/CIFS (Windows) и папкам совместного доступа введите адрес сервера в одной из следующих форм:
Запрос имени пользователя и пароля не выводится, однако выполняется проверка подлинности уникального идентификатора Mac. Уникальный идентификатор (UID) является уникальным целым числом, присваиваемым имени пользователя в ОС типа Unix, например Mac OS X, Solaris и Linux. Для использования NFS уникальный идентификатор Mac должен совпадать с уникальным идентификатором учетной записи на сервере.
Конфигурация "UNIX-UNIX"
Для совместного доступа к файлам между системами Solaris или Linux не требуется специальной настройки. В одной из систем должна находиться папка с возможностью совместного доступа. Возможно также использование домашнего каталога, если он смонтирован на сетевом файловом сервере и доступен из обеих систем.
Отображение пути
При использовании модели с ресурсами совместного доступа может возникнуть необходимость сопоставления расположения исходного кода на локальном узле с путем, используемым на удаленном узле.
Например, рассмотрим следующую конфигурацию:
Сервер Solaris solserver с папкой совместного доступа /export/pub
Рабочая станция под управлением Windows XP с установленными службами SFU и расположением \\solserver\export\pub, смонтированным в качестве диска P:
Файлы исходного кода проекта расположены на сервере solserver в папке /export/pub/myproject
В этом случае с точки зрения сервера файлы исходного кода расположены в каталоге /export/pub/myproject. В то же время с точки зрения клиента файлы исходного кода расположены в каталоге P:\myproject. Таким образом, следует уведомить среду IDE о том, что эти пути сопоставлены:
/export/pub -> P:\
При создании ресурса совместного доступа для файлов исходного кода перед настройкой удаленного узла в среде IDE NetBeans среда IDE в большинстве случаев автоматически определит требуемые сопоставления пути.
Настройка среды IDE
В следующем примере клиентский узел является рабочей станцией под управлением Windows Vista. Удаленный узел с именем b20 представляет собой сервер под управлением ОС Solaris.
Щелкните правой кнопкой мыши узел "Узлы разработки C/C++" и выберите команду "Добавить новый узел".
В диалоговом окне узла "Новый удаленный узел разработки" среда IDE выполняет обнаружение локальных узлов сети. Имена узлов добавляются в таблицу в диалоговом окне и помечаются надписью "Доступно", если на них выполняется сервер SSH.
Дважды щелкните имя требуемого сервера или введите его имя непосредственно в поле "Имя сервера". Нажмите кнопку "Далее".
Введите в окне "Настройка узла" имя пользователя и пароль, используемые для входа на удаленный узел, и выберите метод проверки подлинности. При работе с данным учебным курсом выберите "Пароль" и нажмите кнопку "Далее".
Для использования ключей ssh сначала необходимо настроить их вне среды IDE. Затем можно указать местоположение ключей ssh в среде IDE, и в среде появится возможность использовать эти ключи для установки соединения ssh с удаленным узлом разработки.
После установки соединения с сервером введите пароль в диалоговом окне "Проверка подлинности".
Дополнительно можно щелкнуть "Запомнить пароль" для выполнения в среде IDE шифрования и сохранения пароля на локальном диске, чтобы ввод пароля не требовался при каждом подключении среды IDE к удаленному узлу.
Среда IDE настраивает удаленный узел и выполняет поиск наборов средств удаленного узла.
После успешной настройки узла на странице общих сведений выводится информация об удаленном узле: платформа, имя узла, имя пользователя для входа, а также найденные наборы средств.
В нижней части страницы общих сведений отображаются еще два параметра. Если найдено несколько наборов средств, выберите один из них для определения его как набора средств по умолчанию.
Для параметра синхронизации:
Если в клиентской системе и узле удаленной разработки закрыт общий доступ к файлам проекта, выберите интеллектуальное безопасное копирование. При выборе интеллектуального безопасного копирования файлы проекта будут скопированы с помощью команды scp или sftp в домашний каталог на сервере.
Если клиент и сервер имеют общий доступ к одному и тому же файлу, выберите совместное использование файловой системы (без синхронизации).
Для выхода из мастера нажмите кнопку "Готово".
Новый удаленный узел отображается в окне "Службы" в узле "Узлы разработки C/C++". Разверните новый узел: список "Наборы средств" должен содержать один или несколько наборов средств.
Если наборы средств отсутствуют в списке:
На удаленном узле добавьте в пользовательский путь узла каталог bin набора средств. Если наборы средств на удаленном узле недоступны, следует установить набор компиляторов GNU, либо программное обеспечение Sun Studio или Oracle Solaris Studio.
Если путь к исполняемым файлам средств находится в пользовательском пути к удаленному узлу, можно попытаться повторно настроить набор средств в локальной системе. Щелкните правой кнопкой мыши узел в окне "Службы" и выберите команду "Восстановить наборы средств по умолчанию" для выполнения в среде IDE повторной попытки поиска наборов средств на удаленном узле.
Также можно щелкнуть правой кнопкой мыши узел в окне "Службы" и выбрать команду "Добавить набор средств" для указания или поиска пути к набору средств на удаленном узле.
После вывода набора средств в списке создание удаленного узла разработки будет завершено. Теперь обратимся к разработке приложений с помощью наборов.
Создание локального проекта на удаленном узле
Создадим пример проекта с помощью команд "Файл" > "Новый проект".
Откройте "Примеры" > "C/C++", затем выберите пример проекта Welcome и нажмите кнопку "Далее".
В этом примере папки совместного доступа не используются, поэтому можно хранить проект в местоположении по умолчанию в папке NetBeansProjects пользовательского каталога Windows, закрытого для совместного доступа.
При использовании файлов исходного кода с совместным доступом убедитесь в том, что в качестве расположения проекта выбран путь, который может совместно использоваться с удаленным сервером.
Выберите новый удаленный узел в качестве узла разработки. Список наборов средств будет обновлен для отображения доступных средств удаленного узла.
Для создания проекта нажмите кнопку "Готово". Обратите внимание, что при наведении курсора мыши на имя проекта в окне "Проекты" выводится всплывающая подсказка с именем проекта и удаленным узлом, настроенным для построения проекта.
Теперь нажмите кнопку "Построить" на панели инструментов или щелкните узел проекта правой кнопкой мыши и выберите команду "Построить". Пример проекта будет построен на выбранном удаленном узле разработки.
Следующий снимок экрана демонстрирует всплывающую подсказку со сведениями, что исходный файл расположен на локальном компьютере, и функция поддержки помощника при работе с кодом активируется при нажатии сочетания клавиш CTRL+ПРОБЕЛ и наведении курсора на символ argc.
В окне "Вывод" отображается имя узла, на котором было собрано приложение. Удаленные компиляторы и средство make этого узла были использованы для построения. Файлы проекта расположены в пользовательском каталоге .netbeans/remote/system-platform на удаленном узле.
После настройки удаленного узла различия в рабочем процессе незаметны. Разработчик может пользоваться всеми функциями редактора (построение, запуск, тестирование и отладка) таким же образом, как при локальной работе.
Запуск сеанса работы с терминалом на удаленном узле
Можно запустить сеанс работы с терминалом безопасного интерпретатора команд (ssh) в рамках среды IDE для подключения к удаленной или локальной системе. Эта функция в особенности подходит для платформ Windows, изначально не поддерживающих SSH.
Выберите в среде IDE команду "Окно" > "Вывод" > "Терминал", чтобы открыть вкладку "Терминал", которую можно использовать для запуска сеанса работы с терминалом на локальном или удаленном узле.
Введите имя пользователя и имя узла, а затем нажмите кнопку "ОК".
В среде IDE будет запущен сеанс ssh для указанного узла, а на вкладке "Терминал" будет выведен запрос на регистрацию на удаленном узле.
Перейдите к каталогу $HOME/.netbeans/remote для просмотра файлов проекта, которые по умолчанию хранятся в подкаталогах, обозначающих имя локальной системы и платформы создания проекта.
Можно использовать локальный терминал среды IDE для выполнения действий, обычно выполняемых в сеансе ssh на удаленном узле.
Рекомендации по удаленной разработке
Можно переключить узел разработки проекта, щелкнув узел проекта правой кнопкой мыши и выбрав "Установить узел удаленной разработки".
Чтобы изменить свойства удаленного узла разработки после начальной настройки, щелкните этот узел в окне "Службы" и выбрав команду "Свойства".
Если удаленный узел используется для создания и запуска приложения с графическим интерфейсом, можно выбрать в свойствах узла параметр "Включить перенаправление X11" для отображения интерфейса пользователя в локальной системе при его выполнении на удаленном узле.
Данные по удаленному узлу и средствам доступны в меню среды IDE "Сервис", а также в окне "Службы". Выберите меню "Сервис" > "Параметры" > "C/C++" > "Средства построения" и нажмите кнопку "Изменить" рядом со списком "Узел разработки".
При использовании функции совместного доступа к файлам проекта можно отобразить локальный и удаленный путь к папкам совместного доступа при помощи функции "Отображение пути". Отображение можно установить, выбрав меню "Сервис" > "Параметры" > "C/C++" > "Средства построения" > "Изменить". Затем выберите удаленный узел и нажмите кнопку "Отображение пути".
Если в ходе построения проекта выполняется компиляция библиотек или создание других файлов в дополнение к основному продукту построения, среда IDE выведет запрос на загрузку файлов в локальную систему. При этом можно выбрать измененные файлы для загрузки.
Дополнительные сведения о поддержке языков C/C++/Фортран
Обратитесь к учебной карте по языкам C/C++ для получения дополнительных сведений о работе с функциями C/C++/Фортран в среде IDE.