Как подключить установленные пакеты к apt-cache?

Пожалуйста, выполните следующие действия. Для запуска некоторых из них вам понадобятся права root, поэтому используйте «sudo», например, когда это необходимо.

Если ваш беспроводной интерфейс не работает, запустите:

ifconfig wlan0 up

Then , execute:

wpa_passphrase <ssid> > <filename>

Где ssid - это SSID вашей сети, а имя файла - это имя файла, в котором будет храниться ключ («wlan.conf» может быть именем). Вам будет немедленно предложено ввести «wifi» PASSWORD. Сделайте это.

Затем выполните:

wpa_supplicant -Dwext -i wlan0 -c <filename> -B

Наконец, попросите IP-адрес:

dhclient -r
dhclient wlan0

И вы готовы.

2
задан 22 May 2018 в 18:11

3 ответа

в [ф6] синтаксис, что вы уже догадались, специфические для команды [ф7] и не будет работать в этом контексте. Вы могли бы использовать [ф8] экс.

[Ф1]

на самом деле [ф9] своя [ф10]-подобный синтаксис, который Вы можете использовать здесь, т. е.

[Ф2]

хотя она избыточна в данном случае (это полезно для случаев, когда вы хотите заменить передается значение в точке, чем в конце команды).

, однако [ф11] команда почти наверняка не то, что вы хотите здесь - это поиск по всему (онлайн) каталог для пакетов, которые соответствуют каждому из результатов [ф12]. Даже если ограничить область поиска с помощью [от f13] вы все равно получите много ложных срабатываний (т. е. подстроки соответствия между пакетов и пакетов, которые не являются). Это же будет ужасно неэффективно.

для этой конкретной задачи я бы пропустить [ф14] в целом и использовать более низкого уровня [ф15] команда экс.

[Ф3]

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

если вы хотите ограничить вывод пакетов, установленных в настоящее время добавить [ф16] поле и фильтровать, например,

[Ф4]

или

[ф5]
4
ответ дан 8 June 2018 в 14:02
  • 1
    У меня есть 2 замечания: 1) первая команда звучит хорошо, но это дает описание всех пакетов: это не совсем то, что я ищу. 2) вторая команда выглядит удивительно быстро, однако я вижу пакеты, которые не показаны в [Ф1]: почему ? – Soleil 22 May 2018 в 18:37
  • 2
    Для первой команды, лучше было бы иметь [Ф1]. Как кормить аргумент с "^" ? – Soleil 22 May 2018 в 18:43
  • 3
    @Soleil вы можете добавить --names-only, чтобы ограничить область поиска именами пакетов – steeldriver 22 May 2018 в 18:47
  • 4
    К сожалению, [Ф1] не работает/помогает. – Soleil 22 May 2018 в 23:07
  • 5
    dpkg-query -W -f='${binary:Package}: ${binary:Summary}\n' предоставляет пакеты, которые я установил, затем удалил. Как я могу очистить их от появления здесь? – Soleil 22 May 2018 в 23:07

Синтаксис {} \;, который вы догадались, специфичен для команды find и не будет работать в этом контексте. Вы можете использовать xargs ex.

apt list --installed | sed 's/\/.*//' | xargs -n1 apt-cache search

На самом деле xargs имеет свой собственный синтаксис {}, который вы можете использовать здесь, то есть

. . . | xargs -n1 -I{} apt-cache search {}

, хотя он (это полезно в тех случаях, когда вы хотите подставить значение канала в точке, отличной от конца команды).

Однако команда apt-cache search почти наверняка не то, что вы хотите здесь - он будет искать весь (онлайн) каталог для пакетов, которые соответствуют каждому из результатов работы apt list --installed. Даже если вы ограничите область поиска с помощью --names-only, вы все равно получите много ложных срабатываний (т. Е. Подстрока совпадает между пакетами, которые установлены ARE, и пакеты, которые НЕ являются). Это будет ужасно неэффективно.

Для этой конкретной задачи я пропустил apt в целом и использовал команду нижнего уровня dpkg-query ex.

dpkg-query -W -f='${binary:Package}: ${binary:Summary}\n'

, которая будет (только один раз перейдите по списку пакетов) и будет строго ограничен локальным каталогом пакетов.

Если вы хотите ограничить вывод пакетами, которые в настоящее время установлены, добавьте поле db:Status-Abbrev и фильтруйте, например,

dpkg-query -W -f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n' | awk '/^ii/'

или

dpkg-query -W -f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n' | awk -F'\t' '/^ii/ {print $2}'
4
ответ дан 17 July 2018 в 13:42

Синтаксис {} \;, который вы догадались, специфичен для команды find и не будет работать в этом контексте. Вы можете использовать xargs ex.

apt list --installed | sed 's/\/.*//' | xargs -n1 apt-cache search

На самом деле xargs имеет свой собственный синтаксис {}, который вы можете использовать здесь, то есть

. . . | xargs -n1 -I{} apt-cache search {}

, хотя он (это полезно в тех случаях, когда вы хотите подставить значение канала в точке, отличной от конца команды).

Однако команда apt-cache search почти наверняка не то, что вы хотите здесь - он будет искать весь (онлайн) каталог для пакетов, которые соответствуют каждому из результатов работы apt list --installed. Даже если вы ограничите область поиска с помощью --names-only, вы все равно получите много ложных срабатываний (т. Е. Подстрока совпадает между пакетами, которые установлены ARE, и пакеты, которые НЕ являются). Это будет ужасно неэффективно.

Для этой конкретной задачи я пропустил apt в целом и использовал команду нижнего уровня dpkg-query ex.

dpkg-query -W -f='${binary:Package}: ${binary:Summary}\n'

, которая будет (только один раз перейдите по списку пакетов) и будет строго ограничен локальным каталогом пакетов.

Если вы хотите ограничить вывод пакетами, которые в настоящее время установлены, добавьте поле db:Status-Abbrev и фильтруйте, например,

dpkg-query -W -f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n' | awk '/^ii/'

или

dpkg-query -W -f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n' | awk -F'\t' '/^ii/ {print $2}'
3
ответ дан 20 July 2018 в 13:47

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

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