Usando o PETSc sob o Cygwin

1

Estou tentando fazer o PETSc rodar no Cygwin em minha máquina Windows para testar o código paralelo. Infelizmente, há um problema em que o Cygwin está importando elementos do caminho do Windows do formulário:

C:\Program Files (x86)\...

E o problema é que os compiladores PETSc e MPI estão caindo em seus rostos porque eles não invocam o cygpath para corrigir os "" caracteres. Então, eu preciso de ajuda com uma das três coisas:

  1. Como obter o Cygwin para não carregar o caminho do Windows

    • Eu coloco em sua própria partição e estou tentando usar apenas compiladores nativos do Cygwin para que ele pudesse, esperançosamente, viver sem saber muito sobre o Windows.
  2. Reescreva minha variável PATH para escapar de todos os "" caracteres, substituindo-os por "\"

Eu sei disso:

       echo $PATH | sed 's/ /\ /g'

Faz exatamente o que eu preciso, mas não consigo executá-lo como um comando "export PATH=" no .bashrc. Eu tentei:

export PATH='echo $PATH | sed '"'"'s/ /\ /g'"'"' '

Que apenas interrompe minha sessão do Cygwin ao ponto que eu preciso reparar o .bashrc no Notepad ++ para inicializar novamente

export PATH="echo $PATH | sed 's/ /\ /g'"

Que apenas adiciona "echo" e acrescenta "| sed 's / \ / g" ao PATH.

export PATH='echo $PATH | sed "s/ /\ /g"'

Que substitui todo o meu caminho por apenas "echo $ PATH | sed" / \ / g "

  1. Algo em que não pensei em tudo.

Qualquer ajuda seria muito apreciada.

    
por Thulkos 14.09.2016 / 05:28

1 resposta

0

Como obter o Cygwin para não carregar o caminho do Windows

Para o shell bash , isso pode ser feito fazendo algumas pequenas alterações em ~/.bash_profile .

Eu gosto de ter controle completo sobre o PATH no Cygwin bash, então adicionei o seguinte código ao meu ~/.bash_profile

# Build up the path using the directories in ~/.path_elements
unset PATH
while read line; do 
  PATH="${PATH}$line"; 
done < ~/.path_elements

# Add current directory to path
export PATH=".:${PATH}"

Notas:

  • unset PATH remove qualquer PATH já configurado pela inicialização do Cygwin código.

  • O loop while lê os elementos de caminho de um arquivo no meu diretório pessoal ( ~/.path_elements ) para criar meu PATH

  • preferido
  • Por fim, adicionamos o diretório atual . ao PATH e o exportamos.

  • Adicionar o diretório atual ao PATH pode ser considerado um risco de segurança, já que os comandos internos podem ser substituídos por comandos localizados no diretório atual. Por favor, tenha isso em mente se você optar por usar o meu código.

O conteúdo do meu ~/.path_elements é o seguinte. Modifique e tempere ao seu gosto para adicionar elementos extras ao caminho.

/home/DavidPostill/bin:
/usr/local/bin:
/usr/bin:
/c/Windows/system32:
/c/Windows

Resultado:

DavidPostill@Hal /f/test
$ echo $PATH
.:/home/DavidPostill/bin:/usr/local/bin:/usr/bin:/c/Windows/system32:/c/Windows
    
por 14.09.2016 / 13:11