Não é possível localizar o arquivo do (s) diretório (s) pai (s)

0

Desculpas se este não for o local adequado para esta questão

Estou executando um VPS do Amazon Lightsail com uma imagem do Ubuntu 14.04 e tentando instalar vários pacotes através de npm . Uma instalação específica do pacote falha porque não consegue localizar um arquivo em

/usr/lib/x86_64-linux-gnu/pkgconfig/cairo.pc

Quando eu verifico o diretório, o arquivo definitivamente existe e tem o conteúdo esperado e as permissões apropriadas

user@hostname:/usr/lib/x86_64-linux-gnu$ stat -c "%a %n" ./pkgconfig/cairo.pc
  644 ./pkgconfig/cairo.pc

user@hostname:/usr/lib/x86_64-linux-gnu$ locate cairo.pc
  /usr/lib/x86_64-linux-gnu/pkgconfig/cairo.pc
  /usr/lib/x86_64-linux-gnu/pkgconfig/pangocairo.pc

user@hostname:/usr/lib/x86_64-linux-gnu$ cat ./pkgconfig/cairo.pc
  prefix=/usr
  exec_prefix=${prefix}
  libdir=${prefix}/lib/x86_64-linux-gnu
  ...
  //etc. - excluded for brevity

Mas, curiosamente, quando tento localizar o arquivo via find , ele afirma que o arquivo não pode ser encontrado fora do diretório, mesmo que esteja listado na saída (encurtado para abreviar)

user@hostname:/usr/lib/x86_64-linux-gnu/pkgconfig$ find cairo.pc
  cairo.pc

user@hostname:/usr/lib/x86_64-linux-gnu/pkgconfig$ cd ..

user@hostname:/usr/lib/x86_64-linux-gnu$ find ./pkgconfig cairo.pc
  ./pkgconfig
  ./pkgconfig/gio-2.0.pc

  ...
  ./pkgconfig/gmodule-2.0.pc
  ./pkgconfig/cairo-ft.pc
  ./pkgconfig/cairo.pc
  ./pkgconfig/xau.pc
  ./pkgconfig/cairo-svg.pc
  ./pkgconfig/gmodule-export-2.0.pc
  ...

  find: 'cairo.pc': No such file or directory

Isso me leva a crer que há alguma peculiaridade com o arquivo no sistema de arquivos ou permissões que o impedem de ser encontrado (como um cache ruim ou algo assim), ao contrário de um erro com o gerenciador de pacotes / pacotes, mas honestamente não tenho idéia de onde começar como um novato linux

Qualquer ideia seria muito apreciada

    
por Segolia 23.09.2017 / 02:31

1 resposta

2

Você está executando esse comando da maneira errada, isso:

find ./pkgconfig cairo.pc

deveria ter sido:

find ./pkgconfig -name cairo.pc

No seu caso, você está pedindo para o find procurar em dois caminhos ./pkgconfig e cairo.pc (que é um arquivo e não um diretório). Se você tivesse feito:

find ./pkgconfig ./another_folder -name cairo.pc

Ele localizaria cairo.pc nesses dois locais, mas, no seu caso, a pesquisa será feita em apenas pkgconfig pasta, então find ./pkgconfig -name cairo.pc é o comando correto a ser usado.

Por favor, veja man find para saber como usar o comando find e aqui para mais explicações.

    
por George Udosen 23.09.2017 / 05:42