Я столкнулся с аналогичной проблемой невостребованного беспроводного интерфейса Intel.
Я установил Ubuntu 16.04 на невостребованный беспроводной интерфейс Intel (который я недавно купил). Но Wi-Fi не работал. Команда lshw -c network показала, что беспроводной интерфейс Intel невостребован.
Кажется, Ubuntu 16.04 поставляется с ядром v4.4 (https://wiki.ubuntu.com/Kernel/Support#A16.04. x_Ubuntu_Kernel_Support).
После установки ядра v4.13 проблема решена.
sudo apt-get install linux-image-4.13.0 linux-headers-4.13.0 linux-image-extra-4.13.0
Вы можете использовать команду dpkg, чтобы узнать, какой установленный пакет принадлежит файлу:
Из man dpkg:
-S, --search filename-search-pattern... Search for a filename from installed packages.Пример:
$ dpkg -S /bin/ls
coreutils: /bin/ls
Вы можете искать с полным путем или только с именем файла.
Если вы хотите найти файлы, еще не установленные на вашем компьютере, вы можете использовать Ubuntu Packages Search
Я пытался отслеживать, что установлено which в моей системе. После небольшой работы я создал apt-whatprovides
#!/bin/sh
#apt-whatprovides ver. 201801010101 Copyright alexx, MIT Licence
#rdfa:deps="[realpath,apt-file,grep,which,sh,echo]"
BINARY=$(realpath $(which $@))
PACKAGE=$(apt-file search $BINARY|grep -E ":\s*${BINARY}$")
echo ${PACKAGE%:*}
Хотя для большинства THING вы можете просто использовать
apt-file search $(realpath $(which THING))|grep 'THING$'
Вы имеете в виду, какой пакет, а не какое приложение. Приложение является вашим менеджером пакетов, например. Software Center.
Использование dpkg:
dpkg -S /usr/lib/tracker/tracker-store
dpkg -S tracker-extract
dpkg -S tracker-miner-fs
Пример
% dpkg -S /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store
Использование apt-file: [ ! d5] apt-file search /usr/lib/tracker/tracker-store
или также возможно:
apt-file search --regex /tracker-extract$
apt-file search --regex /tracker-miner-fs$
Пример
% apt-file search /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store
Или онлайн здесь, в разделе Search the contents of packages.
Пример
Команда apt-file может сделать это для вас из командной строки. Я часто использую его при создании пакетов из исходного кода.
Для установки apt-file выполните следующие действия:
sudo apt-get install apt-file
Затем вам нужно обновить его базу данных:
apt-file update
И, наконец, искать файл:
$ apt-file find kwallet.h
kdelibs5-dev: /usr/include/kwallet.h
libkf5wallet-dev: /usr/include/KF5/KWallet/kwallet.h
Однако гораздо более дружелюбным способом является использование apt-file Веб-сайт. Они имеют возможность «искать содержимое пакетов» для определенного имени файла.
Вы можете искать содержимое пакетов, включенных в различные выпуски Ubuntu на веб-сайте Ubuntu Packages. Посмотрите под заголовком «Поиск содержимого пакетов».
Например, вот результаты поиска для libnss3.so в lucid (10.04):
Также есть apt-файл для поиска файлов в пакетах, которые не установлены. Например:
apt-file list packagename
Одна из причин, по которой вам может понадобиться сделать это, - это если вы компилируете программное обеспечение, которое уже есть пакет ubuntu, вы можете запустить apt-get build-dep $PACKAGENAME. Это установит все пакеты, необходимые для компиляции $PACKAGENAME.
Я пытался отслеживать, что установлено which в моей системе. После небольшой работы я создал apt-whatprovides
#!/bin/sh
#apt-whatprovides ver. 201801010101 Copyright alexx, MIT Licence
#rdfa:deps="[realpath,apt-file,grep,which,sh,echo]"
BINARY=$(realpath $(which $@))
PACKAGE=$(apt-file search $BINARY|grep -E ":\s*${BINARY}$")
echo ${PACKAGE%:*}
Хотя для большинства THING вы можете просто использовать
apt-file search $(realpath $(which THING))|grep 'THING$'
Это расширение для отличного ответа Alexx Roche. Я попытался внести изменения в этот ответ, но он был отклонен (хотя не Alexx)
Я пытался отслеживать, что установлено which в моей системе. После небольшой работы, которую я создал /usr/local/bin/apt-whatprovides
#!/bin/sh
#apt-whatprovides ver. 201801010101 Copyright alexx, MIT Licence
#rdfa:deps="[realpath,apt-file,grep,which,sh,echo]"
BINARY="$(realpath $(which $@) 2>/dev/null)"
[ -z "$BINARY" ] && BINARY="$@"
echo Searching for $BINARY
PACKAGE="$(apt-file search $BINARY|grep -E ":.*[^-.a-zA-Z0-9]${BINARY}$")"
echo "${PACKAGE}"
Хотя для большинства установленных THING вы можете просто использовать:
apt-file search $(realpath $(which THING)) | grep 'THING$'
Для ВСТРОЕННЫХ, которые не установлены, вы можете use:
apt-file search THING | grep '/THING$'
Скрипт apt-whatprovides работает для файлов, которые находятся и не находятся в вашей системе. Например, моей системе не хватало dig, но было ping, поэтому это привело к следующему:
pi@raspberrypi:~ $ apt-whatprovides ping
Searching for /bin/ping
inetutils-ping: /bin/ping
iputils-ping: /bin/ping
pi@raspberrypi:~ $ apt-whatprovides dig
Searching for dig
dnsutils: /usr/bin/dig
epic4: /usr/share/epic4/script/dig
epic4-help: /usr/share/epic4/help/8_Scripts/dig
knot-dnsutils: /usr/bin/dig
Обратите внимание, что Searching for - это полный путь для ping (установлен) и только двоичный имя для dig не установлено. Это помогло мне обнаружить, что мне нужно было установить dnsutils, не требуя поиска Отличный ответ Alexx Roche
Вы имеете в виду, какой пакет, а не какое приложение. Приложение является вашим менеджером пакетов, например. Software Center.
Использование dpkg:
dpkg -S /usr/lib/tracker/tracker-store
dpkg -S tracker-extract
dpkg -S tracker-miner-fs
Пример
% dpkg -S /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store
Использование apt-file: [ ! d5] apt-file search /usr/lib/tracker/tracker-store
или также возможно:
apt-file search --regex /tracker-extract$
apt-file search --regex /tracker-miner-fs$
Пример
% apt-file search /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store
Или онлайн здесь, в разделе Search the contents of packages.
Пример
Команда apt-file может сделать это для вас из командной строки. Я часто использую его при создании пакетов из исходного кода.
Для установки apt-file выполните следующие действия:
sudo apt-get install apt-file
Затем вам нужно обновить его базу данных:
apt-file update
И, наконец, искать файл:
$ apt-file find kwallet.h
kdelibs5-dev: /usr/include/kwallet.h
libkf5wallet-dev: /usr/include/KF5/KWallet/kwallet.h
Однако гораздо более дружелюбным способом является использование apt-file Веб-сайт. Они имеют возможность «искать содержимое пакетов» для определенного имени файла.
Вы можете искать содержимое пакетов, включенных в различные выпуски Ubuntu на веб-сайте Ubuntu Packages. Посмотрите под заголовком «Поиск содержимого пакетов».
Например, вот результаты поиска для libnss3.so в lucid (10.04):
Также есть apt-файл для поиска файлов в пакетах, которые не установлены. Например:
apt-file list packagename
Одна из причин, по которой вам может понадобиться сделать это, - это если вы компилируете программное обеспечение, которое уже есть пакет ubuntu, вы можете запустить apt-get build-dep $PACKAGENAME. Это установит все пакеты, необходимые для компиляции $PACKAGENAME.