corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Tutorial de desenvolvimento remoto C/C++ - NetBeans IDE 6.9

Conteúdos

O conteúdo desta página se aplica ao NetBeans IDE 6.9
Introdução
Conceitos de desenvolvimento remoto
Configurando o sistema
Configurando IDE
Construindo um projeto local em uma máquina remota
Iniciando uma sessão terminal na máquina remota
Dicas de desenvolvimento remoto

Requisitos

Para seguir este tutorial, é necessário o seguinte software.

Software Versão necessária
NetBeans IDE (incluindo o suporte C/C++) Versão 6.9
Java Development Kit (JDK) Versão 6
Compiladores C e C++, criar, gdb
em um sistema remoto Solaris ou Linux
Conjuntos de ferramentas C/C++ testados com o NetBeans IDE

Consulte as Instruções de instalação do NetBeans IDE 6.9 e a Configuração do NetBeans IDE para o C/C++/Fortran
para obter informações sobre o download e a instalação do software necessário.

Introdução

Este tutorial demonstra como utilizar o desenvolvimento remoto de projetos C/C++. Alguma vez já desejou desenvolver um aplicativo SolarisTM ou Linux no seu laptop executando o Windows 7 ou o Mac OS X? Ou testar seu aplicativo em sistemas operacionais diferentes sem sair do IDE? Ou simplesmente compilar aplicativos grandes em servidores rápidos com vários núcleos em vez de compilar na sua estação de trabalho habitual? A resposta à todas estas necessidades é a funcionalidade de desenvolvimento remoto do NetBeans IDE 6.9.

Consulte este tutorial para descobrir como utilizar este recurso.

Conceitos de desenvolvimento remoto

O desenvolvimento remoto funciona da seguinte forma:
Execute o NetBeans IDE no sistema do cliente e você poderá criar projetos, editar arquivos e utilizar os recursos de assistência a códigos da mesma forma que faz em projetos locais. No entanto, ao construir, executar ou depurar o projeto, o processo é executado no servidor remoto com a saída e a entrada transferidas para o sistema do cliente. Desta forma, não devem haver diferenças no fluxo de trabalho entre o desenvolvimento local e remoto após a configuração da máquina de desenvolvimento remoto.

Os elementos necessários para permitir o uso de uma máquina remota para a execução das ferramentas são:

  • O sistema do cliente local e o sistema remoto devem ter acesso aos arquivos do projeto, ou através de recursos compartilhados, ou através do uso do protocolo Secure Shell (SSH).
  • O cliente deve poder se conectar a um sistema remoto através de uma secure shell (SSH) mesmo se os arquivos do projeto estiverem em pastas compartilhadas.
  • O sistema remoto deve ter acesso a uma coleção de ferramentas suportadas.
  • O sistema remoto deve possuir as bibliotecas do sistema de suporte que seu projeto necessita para habilitar a assistência ao código.

Cada um destes requisitos são explicados abaixo.

Compartilhando fontes

Tanto o sistema do cliente como o servidor remoto devem ter conhecimento dos arquivos de origem. Os arquivos de origem podem estar em um caminho de rede compartilhada ou podem ser copiados de forma segura pelo IDE a partir do sistema local para o sistema remoto. Na seção Configurando o sistema, é possível encontrar mais detalhes sobre as formas de configurar as pastas compartilhadas em diferentes sistemas.

Conectividade

Todas as transferências de dados entre o cliente e o servidor, exceto o caminho de rede compartilhada, são feitas através do protocolo Secure Shell (SSH). O SSH é um protocolo comum para comunicações seguras entre dois dispositivos de rede. Para permitir a conexão SSH entre o sistema do cliente e o servidor, o seu servidor deve ter o servidor SSH instalado.

Coleções de ferramentas

O IDE deve estar habilitado a encontrar uma coleção de ferramenta suportada: Coleção do compilador GNU, Sun Studio ou Oracle Solaris Studio. As ferramentas executáveis devem estar no caminho da conta do usuário utilizada para conectar à máquina remota, de forma que o IDE possa localizar facilmente tais ferramentas. Isto é verdadeiro principalmente em caso de as ferramentas estarem instaladas em uma localização sem ser a padrão.

Assistência ao código

Para um suporte correto dos recursos do editor, como por exemplo a conclusão de código e o realce semântico, a janela Classes, e outros, o projeto deve ser utilizado no ambiente apropriado, o que significa que o sistema inclui definições macro, plataforma, etc. Todas estas informações são reunidas no servidor remoto e armazenadas localmente no sistema do cliente, de forma que, ao editar localmente, a assistência de código funcionará mesmo quando o projeto estiver configurado para utilizar uma máquina de desenvolvimento remoto.

Configurando o sistema

O sistema remoto deve permitir que haja comunicação através do protocolo SSH do cliente no qual se está executando o IDE. Se quiser utilizar o compartilhamento de arquivos em vez de permitir que o IDE copie os arquivos para o servidor remoto, o compartilhamento de arquivos de ambos os sistemas deve ser configurado na rede.

Protocolo SSH

O servidor SSH geralmente está incluído nos sistemas operacionais Linux e Solaris e, na maioria dos casos, é executado por padrão. Caso não esteja, é possível encontrar informações sobre a instalação e o gerenciamento do SSH em http://en.wikipedia.org/wiki/Secure_Shell

O IDE fornece seu próprio cliente ssh, de forma que não é necessário instalar o cliente ssh no computador local.

Uma conexão SSH deve ser permitida entre o cliente e os sistemas do servidor, o que geralmente significa que a porta 22 deve estar aberta no servidor. Pode ser necessário o acesso de raiz ou a ajuda do administrador de sistema caso a porta 22 esteja desativada.

A SSH deve estar ativada entre os sistemas mesmo se não estiver usando a opção Smart Secure Copy para transferir os arquivos de projetos para um servidor remoto.

Compartilhando fontes

Caso ainda não tenha arquivos de configuração compartilhada entre seu sistema Windows e uma máquina remota Unix para outros usos, é bem mais simples utilizar a opção Smart Secure Copy ao invés do compartilhamento de arquivos.

Para a configuração do Windows para o UNIX®, há duas principais formas de compartilhamento de fontes:

  • Servidor Samba no sistema UNIX
  • Pacote Windows Services for UNIX (SFU) instalado no sistema Windows

Organização de fontes usando o Samba

Um servidor Samba permite que o usuário Windows mapeie as pastas NFS compartilhadas como unidades de rede do Windows. O pacote Samba está incluído na maioria das distribuições dos sistemas operacionais Linux e Solaris. Caso não esteja incluído na sua distribuição, é possível fazer seu download em www.samba.org

Caso possua o acesso raiz no seu servidor, você mesmo pode configurar o Samba seguindo as instruções nos links seguintes. Caso contrário, você terá que contatar o administrador do sistema.

Depois de iniciar o Samba, é possível mapear as pastas do servidor UNIX da mesma forma que as pastas do Windows.

Windows Services para UNIX (SFU)

Outra opção é o Windows Services For UNIX, um conjunto de utilitários fornecido pela Microsoft para acessar os sistemas de arquivos NFS a partir do Windows.
É possível baixá-los no Centro de download da Microsoft e ler a documentação na página Windows Services for Unix.

O pacote SFU não está disponível para os usuários do Windows Vista ou do Windows 7. O Windows Vista e o Windows 7 Enterprise e Ultimate Editions incluem os componentes do Services for Unix, renomeados para os aplicativos com base no Subsystem for UNIX (SUA), e o Client for NFS v3. Para obter mais informações, consulte http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX

Configuração do Mac OS X

O Mac OS X inclui suporte para conexão aos servidores Samba. O Mac OS X também pode montar NFS compartilhados a partir de um servidor.

É possível utilizar Localizador > Ir > Conectar ao servidor e inserir um endereço do servidor.

Para conectar aos servidores SMB/CIFS (Windows) e às pastas compartilhadas, insira o endereço do servidor em um destes formulários:

smb://DNSname/sharename
smb://IPaddress/sharename

Será solicitado inserir o nome do usuário e a senha para a pasta compartilhada. Para mais informações, consulte Como conectar ao Compartilhamento de arquivos do Windows (SMB) em uma base de conhecimento da Apple.

Para conectar ao servidor NFS, digite o nome e o caminho do servidor para as pastas compartilhadas do NFS em um destes formulários:

nfs://servername/path/to/share/
nfs://IPaddress/path/to/share

Para mais informações, consulte Uso do Localizador para montar as exportações NFS na base de conhecimento da Apple.

Não será solicitado inserir o nome do usuário e a senha, mas será verificada a autorização contra seu Mac UID. O UID é um inteiro exclusivo designado para o nome de usuário em sistemas operacionais similares ao Unix, como o Max OS X, o Solaris e o Linux. Para utilizar o NFS, o Mac UID deve ser o mesmo que o UID da sua conta no servidor.

Configuração UNIX-UNIX

Para compartilhamento de arquivos entre os sistemas Solaris ou Linux, não é necessária nenhuma configuração especial. Só é preciso compartilhar uma pasta de um dos sistemas ou pode utilizar o diretório inicial, caso este esteja montado em um servidor de arquivo de rede e esteja acessível a partir de ambos os sistemas.

Mapeamento de caminho

Ao utilizar o modelo de fontes compartilhadas, pode ser necessário mapear a localização das fontes na máquina local para o caminho utilizado na máquina remota para obter as fontes.

Por exemplo, observe esta configuração:

  • Servidor Solaris solserver com a pasta compartilhada /export/pub
  • Estação de trabalho com Windows XP em execução, com o SFU instalado e o caminho \\solserver\export\pub montado como unidade P:
  • Arquivos de origem do projeto localizados em solserver na pasta /export/pub/myproject

Neste caso, do ponto de vista do servidor, os arquivos de origem estão localizados no /export/pub/myproject. Porém, do ponto de vista do cliente, a localização dos arquivos de origem é P:\myproject. Portanto, é necessário informar ao IDE que estes caminhos estão mapeados:

/export/pub -> P:\

Se for configurado o recurso compartilhado para os arquivos de origem antes de configurar a máquina remota no NetBeans IDE, o IDE descobrirá automaticamente os mapeamentos dos caminhos necessários na maioria dos casos.

Configurando o IDE

No exemplo seguinte, a máquina do cliente é uma estação de trabalho que executa o Windows Vista. A máquina remota chamada b20 é um servidor que executa o sistema operacional Solaris.

  1. Abra a janela Serviços selecionando Janela > Serviços.
  2. Clique com o botão direito no nó Máquinas de desenvolvimento C/C++ e selecione Adicionar nova máquina.
    Imagem mostrando o processo de adição da nova máquina para desenvolvimento remoto.
    Na caixa de diálogo Nova máquina de desenvolvimento remoto, o IDE descobre suas máquinas de rede locais. Os nomes das máquinas são adicionados a uma tabela na caixa de diálogo e são marcados como Disponível se estiverem em execução no servidor SSH.
  3. Clique duas vezes no nome do servidor desejado, ou digite o nome do servidor diretamente no campo Nome da máquina. Clique em Próximo.
    Imagem mostrando a caixa de diálogo Configuração da máquina para desenvolvimento remoto.


  4. Na tela Configuração da máquina, digite o nome do usuário que você utiliza para efetuar o login na máquina remota, e selecione um método de autenticação. Para este tutorial, selecione Senha e clique em Próximo.
    Imagem mostrando as opções de autorização para conexão da Máquina de desenvolvimento remoto.
  5. Caso deseje utilizar as teclas ssh, será necessário configurá-las primeiro fora do IDE. Então, será possível especificar a localização para as teclas ssh no IDE, e utilizar as teclas para fazer a conexão ssh à máquina de desenvolvimento remoto.

  6. Após ter sido feita a conexão ao servidor, insira a senha na caixa de diálogo Autenticação.
  7. Outra opção é clicar em Lembrar senha para que o IDE seja criptografado e salve a senha no disco local, de forma que não seja necessário inseri-la cada vez que o IDE se conectar a uma máquina remota.
  8. O IDE configura a máquina remota e procura por coleções de ferramentas na máquina remota.

  9. Quando a máquina é configurada com êxito, uma página de resumo exibe informações sobre a máquina remota: a plataforma, o nome da máquina, o nome de usuário utilizado para login e as coleções de ferramentas encontradas.
    Imagem mostrando a conclusão do processo de adição de uma nova máquina para desenvolvimento remoto.
  10. Na parte inferior da página de resumo são exibidas duas opções adicionais. Caso sejam encontradas mais de uma coleção de ferramentas, é possível selecionar uma das coleções para ser a Coleção de ferramentas padrão.
  11. Para obter a opção Sincronização:
    • Selecione a opção Smart Secure Copy se o sistema do cliente e a máquina de desenvolvimento remoto não tiverem acesso compartilhado aos arquivos do projeto. Ao selecionar a opção Smart Secure Copy, os arquivos do projeto serão copiados no diretório Home do servidor usando o comando scp ou sftp.
    • Selecione Compartilhamento do sistema de arquivos (sem sincronização) se o cliente e o servidor tiverem acesso à mesma pasta.
  12. Clique em Concluir para completar o assistente.
  13. Na janela Serviços, a nova máquina remota é exibida sob o nó Máquinas de desenvolvimento C/C++. Expanda o nó para a nova máquina e deverá obter uma ou mais coleções de ferramentas na lista Coleções de ferramentas.
  14. Imagem mostrando as Coleções de ferramentas remotas.
  15. Caso não esteja listada nenhuma coleção de ferramentas:

    • Na máquina remota, adicione o diretório bin da coleção de ferramentas ao caminho do usuário na máquina. Caso não haja nenhuma coleção disponível na máquina remota, será necessário instalar a coleção do compilador GNU ou o software do Sun Studio ou do Oracle Solaris Studio na máquina remota.
    • Quando o caminho para as ferramentas executáveis estiver no caminho do usuário da máquina remota, você pode tentar configurar novamente a coleção de ferramentas no sistema local. Clique com o botão direito na máquina na janela Serviços e selecione Restaurar coleções de ferramentas padrão, para fazer com que o IDE tente encontrar novamente as coleções de ferramentas na máquina remota.
    • Alternativamente, clique com o botão direito na máquina na janela Serviços e selecione Adicionar coleção de ferramentas para especificar ou procurar por um caminho para uma coleção de ferramentas na máquina remota.
  16. Ao obter uma coleção de ferramentas listada, a criação da máquina de desenvolvimento remoto está concluída. Vamos ver como se pode utilizá-la para o desenvolvimento.

Construção de um projeto local em uma máquina remota

  1. Vamos criar um novo projeto modelo selecionando Arquivo > Novo projeto.
  2. Expanda a opção Modelos > C/C++ e selecione Bem vindo ao projeto modelo e, a seguir, clique em Próximo.
  3. Neste exemplo, nós não utilizaremos as pastas compartilhadas, portanto podemos manter a localização sugerida para o projeto na pasta Projetos NetBeans, no diretório de usuário Windows, o qual não é compartilhado.
  4. Caso queira utilizar os arquivos de origem compartilhados, certifique-se de selecionar, na opção Localização do projeto, um caminho que seja compartilhado com o servidor remoto.

  5. Selecione a nova máquina remota para a Máquina de desenvolvimento. A lista de coleção de ferramentas está atualizada para exibir as ferramentas disponíveis na máquina remota.
  6. Imagem mostrando o assistente Novo projeto com a máquina de desenvolvimento remoto selecionada.
  7. Clique em Concluir para criar o projeto. Observe que quando você posiciona o mouse sobre o nome do projeto na janela Projetos, uma dica de ferramenta exibe a localização do projeto e a máquina remota que está configurada para construção.
  8. Agora, clique em Construir na barra de ferramentas ou clique com o botão direito do mouse no nó do projeto e selecione Construir, e o projeto modelo será construído remotamente na máquina remota de desenvolvimento selecionada.
  9. Na captura de tela a seguir, é possível ver em uma dica de ferramenta que o arquivo original está localizado na máquina local e o suporte de assistência ao código está funcionando ao pressionar Ctrl-Espaço com o cursor no símbolo argc.

    Na janela Saída é possível ver o nome da máquina onde o aplicativo foi construído e que os compiladores remotos e os utilitários de execução foram utilizados para a construção. Os arquivos de projeto estão no diretório do usuário .netbeans/remote/plataforma do sistema na máquina remota.

    Imagem mostrando a saída da construção.

    Quase não há diferença no fluxo de trabalho depois da configuração de uma máquina remota. Você pode utilizar todos os recursos do editor, construir, executar, testar e depurar como está acostumado a fazer localmente.

    Iniciando uma sessão terminal na máquina remota

    É possível iniciar a sessão terminal da secure shell dentro do IDE para conectar ao sistema remoto ou ao sistema local. Este recurso é conveniente principalmente nas plataformas Windows, as quais não suportam nativamente a SSH.

    • No IDE, selecione Janela > Saída > Terminal para abrir a aba Terminal, que pode ser utilizada para iniciar uma sessão terminal na máquina local ou remota.
    • Clique no botão Criar terminal remoto para abrir a caixa de diálogo Conexão SSH.
    • Imagem mostrando a caixa de diálogo Terminal SSH.
    • Insira o nome do usuário e o nome da máquina e, a seguir, clique em OK.
    • O IDE inicia a sessão ssh para a máquina especificada e a aba Terminal exibe a solicitação de login na máquina remota.
    • Vá para o diretório $HOME/.netbeans/remote para ver seus arquivos de projeto, os quais, por padrão, são salvos em subdiretórios que indicam o nome e a plataforma do sistema local onde o projeto foi criado.

    É possível utilizar o terminal interno IDE para fazer qualquer coisa que feita geralmente em uma sessão ssh para uma máquina remota.

    Dicas de desenvolvimento remoto

    • É possível alternar a máquina de desenvolvimento para um projeto clicando com o botão direito do mouse no nó Projeto e selecionando Definir a máquina de desenvolvimento remoto.
    • Imagem mostrando o menu Definir máquinas remotas.
    • É possível mudar as propriedades de uma máquina de desenvolvimento remoto após uma configuração inicial, clicando com o botão direito na máquina na janela Serviços e selecionando Propriedades.
    • Caso esteja usando uma máquina remota para construir e executar um aplicativo com uma UI gráfica, é possível selecionar Ativar X11 Forwarding nas propriedades das máquinas de forma que a UI possa ser vista no seu sistema local enquanto é executada na máquina remota.
    • É possível acessar a máquina remota e as informações sobre ferramentas a partir do menu Ferramentas do IDE, assim como a janela Serviços. Selecione Ferramentas > Opções > C/C++ > Construir ferramentas e clique no botão Editar ao lado da lista Máquina de desenvolvimento.
    • Ao utilizar o compartilhamento de arquivo para os arquivos do projeto, é possível mapear o local e os caminhos remotos para a pasta compartilhada através do recurso Mapeamento do caminho. É possível definir o mapeamento selecionando Ferramentas > Opções > C/C++ > Construir ferramentas > Editar. A seguir, selecione a máquina remota e clique no botão Mapeamento do caminho.
    • Caso esteja construindo o projeto remotamente ao compilar bibliotecas ou gerar outros arquivos adicionais ao produto de construção principal, o IDE solicitará o download dos arquivos para o sistema local. É possível selecionar quais os arquivos alterados devem ser baixados.

    Mais informações sobre C/C++/Suporte Fortran

    Consulte C/C++ Trilha de aprendizagem para mais informações sobre o uso dos recursos C/C++/Fortran do IDE.