LINUX.ORG.RU

Почему apt-file не показывает пакет, в котором есть искомый файл?

 , , ,


0

1

Система: Debian 9 Stable

Нужно мне найти пакет по известному имени файла. Файл /usr/bin/npm.

На всякий случай обновляю apt-get и apt-file:

apt-get update
apt-file update

Начинаю искать, в каком пакете содержится файл:
apt-file search /usr/bin/npm
npm: /usr/bin/npm

Так, файл устанавливается из пакета npm. Хм. А я такой пакет не ставил. Убеждаюсь в этом:
apt-cache policy npm
npm:
  Установлен: (отсутствует)

Получается, что файл установлен минуя пакетный менеджер? Но я ничего такого не ставил. Начинаю ручками искать дальше, и нахожу, что такой же файл есть в пакете nodejs, и этот пакет установлен.

Вопрос: почему команда «apt-file search /usr/bin/npm» не находит файл в пакете nodejs?

★★★★★

Вопрос: почему команда «apt-file search /usr/bin/npm» не находит файл в пакете nodejs?

Это не связано с alternatives?

Deleted ()
Ответ на: комментарий от Zubok

А у меня есть:

> dpkg -L nodejs | grep 'npm$'
/usr/lib/node_modules/npm
/usr/lib/node_modules/npm/node_modules/node-fetch-npm
/usr/lib/node_modules/npm/node_modules/is-npm
/usr/lib/node_modules/npm/bin/npm
/usr/bin/npm

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

У вас видимо «перацкий» Node.js, потому что в пакете:

http://ftp.ru.debian.org/debian/pool/main/n/nodejs/nodejs_4.8.2~dfsg-1_amd64.deb

Такого файла нет.

Да и Как лучше установить npm в debian stretch? намекает на то, что были проделаны какие-то дополнительные действия.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от Zubok

Да вот не помню, вроде штатными методами.

В /etc/apt/sources.list ничего лишнего не прописано, только дебиановские

stretch-updates
contrib
non-free
stretch-backports

То есть,левых репозитариев нет. Я всегда оставляю добавляемые репозитарии, а если они не нужны - комментирую, но не удаляю.

У меня есть специальный каталог install, куда я складываю дистры всех скачанных левых программ и пакетов. И тоже никогда там не удаляю. Ни Node ни Npm там тоже нет.

У меня есть специальный каталог build, где я собираю левые пакеты и тоже никогда там не удаляю ничего. Ни Node ни Npm там тоже нет.

Похоже, что ставил штатными средствами. Но когда и как - вообще не помню.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

Если штатными, то, значит, из какого-то стороннего репозитория. apt-file не ищет среди фактически установленных пакетов. Он ищет по репозиториям.

Zubok ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.