AJUDA! Compilar remotamente programas em C no Linux!

1. AJUDA! Compilar remotamente programas em C no Linux!

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 26/08/2013 - 19:37h

Fala pessoal,
Preciso de ajuda para concluir uma tarefa no Linux.

Seguinte, meu notebook não tem placa gráfica dedicada (GPU). Mas meu Desktop tem. Quando vou pra aula, não posso compilar meus programas, pois meu note não permite. Trabalho com programação paralela em GPU, ou seja, não executo apenas na CPU meu código, mas sim em GPU! Por isso, PRECISO de placa gráfica para executar e compilar os programas.

Estou tentando criar uma maneira, de compilar os codigos que escrevo no meu note, em minha casa! Entendem?

Quero criar um Script, pra que meu Desktop aceite conexões de qualquer IP! Desde que eu passe a senha, claro. Assim, posso compilar do meu note, ou de outro PC! ;-)

Eu estou dando passos iniciais!!! BEM iniciais mesmo!!!

Comecei com testes basicos, dentro da mesma rede!
Eu tenho um Note (IP: .3) e uma VM (IP .128). No meu note, eu tenho o arquivo "Teste2.c".
É um simples Hello Word em c. Eu mando esse arquivo pra VM (linha abaixo), e mando compilar lá. Ele copia, compila mas NAO executa!!! Ou seja, meu problema esta no final da linha abaixo:

ssh -T root@192.168.125.128 "gcc /home/douglas/teste2.c -o /home/douglas/teste2 | ./teste2"

O problema esta aqui: " | ./teste2" "

O erro é esse: bash: ./teste2: No such file or directory

Quando eu compilo um codigo no linux, ele cria um executavel. Ou seja, eu tenho o codigo em C chamado "Teste2.c" e rodo no terminal: " gcc teste2.c -o teste "
Ele gera um executavel chamado "teste2"
Depois, eu preciso compilar: " ./teste2 "

So que, quando eu copio o "teste2.c" no comando la em cima, ele nao espera pra criar o arquivo compilado... Ele ja quer executar "sem ter o executavel", entendem? Por isso o erro!
Uma saida, seria uma "pausa" (eu acho), entre copiar (1), compilar (2) e executar (3).

Preciso ainda, que o resultado da compilação que aconteceu no meu Desktop, apareça no meu note... Ou seja, o "Hello Word" apareça no terminal do meu note, mesmo estando executando no terminal do meu Desktop!!!

Por favor, podem me ajudar?
Obrigado!!!

Abração!


  


2. Re: AJUDA! Compilar remotamente programas em C no Linux!

Fernando
phoemur

(usa Debian)

Enviado em 26/08/2013 - 21:28h

Já experimentou assim?

ssh -T root@192.168.125.128 "gcc /home/douglas/teste2.c -o /home/douglas/teste2 && chmod +x /home/douglas/teste2 && /home/douglas/teste2"


3. Ajuda no Script

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 27/08/2013 - 14:37h

Funcionou phoemur!!!
Cara MUITO obrigado mesmo!!!

Mas eu percebi um erro na linha que te mandei!
Olha so... Preciso que o meu script faça 4 coisas:
1) Conecte no meu pc em casa; (ssh ou scp? );
2) Copie o algoritmo para o pc (SCP, certo?);
3) Execute o arquivo copiado, gerando o executavel (gcc ...);
4) Compile o executavel "teste2".

O comando deve iniciar com SSH ou uso direto o SCP? Pois pelo que percebi, eu estou usando o arquivo que ja esta la no PC, quando copiei com o SCP!
Quando uso o SCP, ele conecta e copia, certo? Eh mais util usar ele que o SSH e depois SCP?

Phoemur, pode me ajudar, por favor, a criar um Script para o comando que preciso criar?
Alguns codigos sao "pesados"... Vc acha que precisa de um tempo entre compilar e executar?! A função para esperar é "Sleep", certo?
Pode me ajudar, por favor?!

Obrigado de verdade!!!


4. Re: AJUDA! Compilar remotamente programas em C no Linux!

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 27/08/2013 - 15:50h

Como eu vi que eu nao estava copiando o arquivo, eu estou tentando algo assim:

ssh -T root@192.168.125.128 | scp /Users/douglas/Desktop/teste2.c root@192.168.125.128:/home/douglas "gcc /home/douglas/teste2.c -o /home/douglas/teste2 && chmod +x /home/douglas/teste2 && /home/douglas/teste2"

ou

scp /Users/douglas/Desktop/teste2.c root@192.168.125.128:/home/douglas | ssh -T root@192.168.125.128 "gcc /home/douglas/teste2.c -o /home/douglas/teste2 && chmod +x /home/douglas/teste2 && /home/douglas/teste2"

Mas nao funciona de nenhum jeito!
No primeiro comando, ele nao encontra o arquivo "teste2.c" e para;
No segundo, ele ficando dando "permissao negada"!!! Mesmo eu passando a senha corretamente... =/


5. Re: AJUDA! Compilar remotamente programas em C no Linux!

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 27/08/2013 - 16:49h

Pessoal,
Assim eu consigo efetuar a copia e executar+compilar o codigo:

scp /Users/douglasborges/Desktop/teste2.c root@192.168.125.128:/home/douglasborges && chmod +x /home/douglasborges/teste2 | ssh -T root@192.168.125.128 "gcc /home/douglasborges/teste2.c -o /home/douglasborges/teste2 && chmod +x /home/douglasborges/teste2 && /home/douglasborges/teste2"

POREM, pede senha de Root duas vezes!!! :-(
E isso nao eh legal! =/

No script, eu posso colocar a senha para nao precisar ficar digitando?!
Alguem pode me ajudar com o Script, por favor?!


6. Re: AJUDA! Compilar remotamente programas em C no Linux!

Fernando
phoemur

(usa Debian)

Enviado em 27/08/2013 - 20:41h

Por que você não cria login no seu ssh com chaves RSA pra não precisar de senha, daí não vai precisar digitar nada se você tiver a chave correta:

http://www.vivaolinux.com.br/artigo/Conexoes-SSH-sem-senha-facil-e-descomplicado


7. Re: AJUDA! Compilar remotamente programas em C no Linux!

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 27/08/2013 - 22:04h

Eu vou tentar fazer então com chaves phoemur.

Criei um script, olha como ficou:

#!/bin/bash
#Copia o arquivo teste.c para a máquina virtual ip 192.168.125.128 (usuário root) no diretório /home/destino
scp /Users/douglas/Desktop/teste2.c root@192.168.125.128:/home/douglas
#Compila o arquivo na máquina virtual e executa.
ssh -T root@192.168.125.128 "gcc /home/douglas/teste2.c -o /home/douglas/teste2 && chmod +x /home/douglas/teste2 && /home/douglas/teste2"

Assim esta funcionando! Eu preciso apenas rodar o script.
Mas preciso dgitar a senha duas vezes! :-(
E nao da pra continuar assim! =/

Pensei em uma coisa!
Eu tenho que setar manualmente o nome do arquivo que quero copiar! Isso tambem nao eh legal...
Eu queria poder passar o nome do arquivo na hora de executar o script, entende?
Por ex: " ./script "nome_prog.c" "
Entende?
./executar.sh teste2.c

O que vc acha?
Tem alguma ideia sobre isso? Vc acha que esta certo meu script?
Vou tentar fazer funcionar as chaves ate amanha!

Obrigado Phoemur!
Abração!!!


8. Re: AJUDA! Compilar remotamente programas em C no Linux!

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 29/08/2013 - 15:26h

phoemur escreveu:

Por que você não cria login no seu ssh com chaves RSA pra não precisar de senha, daí não vai precisar digitar nada se você tiver a chave correta:

http://www.vivaolinux.com.br/artigo/Conexoes-SSH-sem-senha-facil-e-descomplicado



Phoemur,
Pensei no seguinte:
Como eu posso precisar compilar, de diferentes lugares o algoritmo (no note, ou em outro pc), e sempre no meu Desktop, eu devo gerar a publica e a privada no meu servidor (Desk/VM) e divulgar a publica, para poder fazer o acesso externo sem senha, certo?


9. Re: AJUDA! Compilar remotamente programas em C no Linux!

Fernando
phoemur

(usa Debian)

Enviado em 29/08/2013 - 22:00h

sim






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts