Не может определить местоположение файла из родительского каталога (каталогов)

Извинения, если это не соответствующее место для этого вопроса

Я выполняю VPS Amazon Lightsail с изображением Ubuntu 14.04 и пытаюсь установить различные пакеты через npm. Одна конкретная установка пакета перестала работать, потому что она не может определить местоположение файла в

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

Когда я проверяю каталог, файл определенно существует и имеет ожидаемое содержание и соответствующие полномочия

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

Но интересно, когда я пытаюсь определить местоположение файла через find это указывает, что файл не может быть найден от за пределами его каталога, даже при том, что это перечислено в выводе (сокращенный для краткости)

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

Это приводит меня полагать, что существует некоторая причуда с файлом в файловой системе или полномочиях, которые препятствуют тому, чтобы он был найден (как плохой кэш или что-то), в противоположность ошибке с пакетом/диспетчером пакетов, но я честно понятия не имею, где начать как новичок Linux

Любые идеи значительно ценились бы

0
задан 22 September 2017 в 19:31

1 ответ

Ваше выполнение той команды неправильный путь, это:

find ./pkgconfig cairo.pc

должен был быть:

find ./pkgconfig -name cairo.pc

В Вашем случае Ваше выяснение find для поиска в двух путях ./pkgconfig и cairo.pc (который является файлом не каталог). Если Вы сделали:

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

Это нашло бы cairo.pc в тех двух местах, но в Вашем случае Ваш поиск во всего pkgconfig папка так find ./pkgconfig -name cairo.pc является правильной командой для использования.

см. man find для того, как использовать команду находки и здесь для большего количества объяснений.

2
ответ дан 2 November 2019 в 05:27

Другие вопросы по тегам:

Похожие вопросы: