Descobrir se o gcc make foi bem-sucedido

1

Eu sou um usuário do Ubuntu muito inexperiente. Eu estou usando um cluster de computador na minha universidade via SSH. O cluster tem uma versão do gcc que era muito antiga para outra coisa que eu precisava instalar, e estou tentando instalar uma versão atualizada dele apenas no meu espaço de usuário. Eu estou tentando instalar a versão 4.9.4, enquanto o cluster tem 4.4.7. Eu não tenho privilégios sudo e não posso usar o apt-get. Estou seguindo as instruções da página oficial do gcc (que também foi explicada em esta postagem do blog que encontrei).

A página do gcc diz que a etapa make pode levar muito tempo, então deixei ela em execução da noite para o dia. Em algum momento, acho que minha conexão foi interrompida, porque hoje de manhã, meu terminal disse "Pipeline quebrado". Esta é a última coisa que foi mostrada do comando make para o terminal no meu laptop:

make[2]: Entering directory '/nfs/thry/drpv/Gowri/Software/objdir'
make[3]: Entering directory '/nfs/thry/drpv/Gowri/Software/objdir'
rm -f stage_current
make[3]: Leaving directory '/nfs/thry/drpv/Gowri/Software/objdir'
Comparing stages 2 and 3
warning: gcc/cc1-checksum.o differs
warning: gcc/cc1plus-checksum.o differs

Eu esperaria que mesmo que minha conexão ssh fosse interrompida, o comando que eu digitei nos computadores do cluster deve terminar a execução. Estou errado em assumir isso?

Eu decidi ir em frente e tentar make install de qualquer maneira, e depois de alguns minutos de execução (e mostrando um monte de etapas na tela), eu entendi:

make[3]: Entering directory '/nfs/thry/drpv/Gowri/Software/objdir/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common'
Makefile:373: .deps/sanitizer_allocator.Plo: No such file or directory
Makefile:374: .deps/sanitizer_common.Plo: No such file or directory
Makefile:375: .deps/sanitizer_common_libcdep.Plo: No such file or directory
Makefile:376: .deps/sanitizer_coverage.Plo: No such file or directory
Makefile:377: .deps/sanitizer_flags.Plo: No such file or directory
Makefile:378: .deps/sanitizer_libc.Plo: No such file or directory
Makefile:379: .deps/sanitizer_libignore.Plo: No such file or directory
Makefile:380: .deps/sanitizer_linux.Plo: No such file or directory
Makefile:381: .deps/sanitizer_linux_libcdep.Plo: No such file or directory
Makefile:382: .deps/sanitizer_mac.Plo: No such file or directory
Makefile:383: .deps/sanitizer_platform_limits_linux.Plo: No such file or directory
Makefile:384: .deps/sanitizer_platform_limits_posix.Plo: No such file or directory
Makefile:385: .deps/sanitizer_posix.Plo: No such file or directory
Makefile:386: .deps/sanitizer_posix_libcdep.Plo: No such file or directory
Makefile:387: .deps/sanitizer_printf.Plo: No such file or directory
Makefile:388: .deps/sanitizer_stackdepot.Plo: No such file or directory
Makefile:389: .deps/sanitizer_stacktrace.Plo: No such file or directory
Makefile:390: .deps/sanitizer_stacktrace_libcdep.Plo: No such file or directory
Makefile:391: .deps/sanitizer_stoptheworld_linux_libcdep.Plo: No such file or directory
Makefile:392: .deps/sanitizer_suppressions.Plo: No such file or directory
Makefile:393: .deps/sanitizer_symbolizer.Plo: No such file or directory
Makefile:394: .deps/sanitizer_symbolizer_libbacktrace.Plo: No such file or directory
Makefile:395: .deps/sanitizer_symbolizer_libcdep.Plo: No such file or directory
Makefile:396: .deps/sanitizer_symbolizer_posix_libcdep.Plo: No such file or directory
Makefile:397: .deps/sanitizer_symbolizer_win.Plo: No such file or directory
Makefile:398: .deps/sanitizer_thread_registry.Plo: No such file or directory
Makefile:399: .deps/sanitizer_win.Plo: No such file or directory
make[3]: *** No rule to make target '.deps/sanitizer_win.Plo'.  Stop.
make[3]: Leaving directory '/nfs/thry/drpv/Gowri/Software/objdir/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/nfs/thry/drpv/Gowri/Software/objdir/x86_64-unknown-linux-gnu/libsanitizer'
make[1]: *** [install-target-libsanitizer] Error 2
make[1]: Leaving directory '/nfs/thry/drpv/Gowri/Software/objdir'
make: *** [install] Error 2

Isso significa que a instalação não funcionou corretamente e eu deveria tentar refazer o make ? Eu gostaria de evitar o longo tempo de espera, se possível, mas posso refazê-lo se necessário. Desculpas para a longa pergunta e obrigado antecipadamente.

    
por Gowri 14.04.2018 / 22:19

1 resposta

0

Você pode redirecionar sua saída para uma leitura posterior:

make <options> 2>&1 | tee make.out;  echo status $?

Mas eu acho que o link ssh quebrado vai parar de completá-lo. Se isso é um problema, use algo como mosh. Mosh permitirá que você reconecte uma sessão quebrada, mesmo se você perder toda a conectividade, hibernar, alterar APs, etc.

    
por Eric 14.04.2018 / 23:08