Не удается подключиться к сети Wi-Fi после обновления kali Linux

Краткий ответ

Первая команда

aptitude search '?and(?installed,?origin(backports))'

находит пакеты, которые установлены и имеют доступный резервный порт , но обратный порт есть не обязательно установлен. (Может быть, backport установлен, а может и нет.)

Напротив, вторая команда

aptitude search '?narrow(?installed,?origin(backports))'

находит пакет, который установлен , , а установленная в настоящее время версия взята из резервного порта, {{1} } т.е. фактически установленные резервные порты. Это более строгий поиск, потому что набор установленных резервных портов является подмножеством доступных резервных портов. { {1}} Вы можете думать об этом так:

  • все пакеты

    • установленные пакеты

      • установленные пакеты с доступным резервным портом (первая команда)

        • установленным обратным портом (вторая команда)

В вашей системе , первая команда возвращает результаты , а вторая ничего не возвращает. Это означает, что вы установили пакеты с доступными обратными портами, но очевидно, что ни один из этих резервных портов в настоящее время не установлен.

Длинный ответ

Это связано с различием aptitude между соответствием пакету и соответствием версии пакета . От { {1}} документация :

Существует тонкое, но важное различие между сопоставлением шаблона с пакетом и сопоставлением его со всеми версиями этого {{1} } упаковка. Когда шаблон сопоставляется с пакетом, каждый из его терминов сопоставляется с пакетом, и поэтому каждый термин будет соответствовать, если любая версия пакета совпадает. Напротив, когда шаблон сопоставляется с каждой версией пакета, он будет успешно соответствовать, если он совпадает, когда все его термины сопоставляются с той же версией пакета упаковка.

Например: предположим, что версия 3.0-1 пакета aardvark установлен, но доступна эта версия 4.0-1 . Тогда поисковое выражение ? Версия (4 \ .0-1)? Установлен соответствует трубкозубу, потому что ? Версия (4 \ .0-1) соответствует версии 4.0-1 aardvark, а ? Installed соответствует версии 3.0-1 . С другой стороны, это выражение не соответствует всем версиям aardvark , потому что ни одна версия не установлена, а также имеет номер версии 4.0 -1 .

Документация для ? И гласит:

? И (шаблон1, шаблон2), шаблон1 шаблон2

Соответствует пакетам, которые соответствуют обоим ] шаблон1 и шаблон2 .

Обратите внимание, что это соответствует пакетам , а не одиночным версиям . Итак, этот запрос:

aptitude search '?and(?installed, ?origin(backports))'

получает список всех версий пакета , которые установлены, затем список всех версий пакета с источник, соответствующий регулярному выражению , возвращает , , а затем возвращает пакеты , которые появляются в обоих списках.

С другой стороны, документация для ? Узкий гласит:

? Узкий (фильтр, шаблон), ~ S шаблон фильтра

Выберите пакеты, для которых одна версия соответствует как фильтру, так и шаблону.

Вот почему этот запрос показывает только пакеты , в которых единственная установленная версия имеет источник, который соответствует backports :

aptitude search '?narrow(?installed, ?origin(backports))'

Имеется связанный обсуждение для функции ? any-version :

? any-version (pattern)

Соответствует пакету, если какая-либо из его версий соответствует приложенному шаблону.

Примечание: этот термин тесно связан с ? Узким . Фактически, ? Any-version (шаблон1 шаблон2) в точности совпадает с ? wide (шаблон1, шаблон2) .

Примечание. Чтобы быть точным, как и в случае с любым другим шаблоном, сопоставляются не пакеты, а версии пакетов. Для поиска aptitude и других вариантов использования это не имеет большого значения, но версии aptitude будут отображать только совпадающие версии, а не все версии пакет, для которого соответствует любая версия .

Запустив версии aptitude вместо aptitude search , мы обнаруживаем, что все эти запросы дают одинаковый результат:

aptitude versions '?and(?installed, ?origin(backports))'
aptitude versions '?installed?origin(backports)'
aptitude versions '?narrow(?installed, ?origin(backports))'

Уф! Если вы находите язык запросов для aptitude запутанным (как и я), вы можете предпочесть другой подход, например, привязку Python к ] libapt . Вместо сопоставления строк версии вы можете напрямую проверить исходную строку, например:

import apt

apt_cache = apt.Cache()

for pkg in apt_cache:
    if pkg.is_installed:
        for pkg_origin in pkg.installed.origins:
            if pkg_origin.origin == 'Debian Backports':
                print(pkg.name)
1
22.04.2017, 20:41
1 ответ

Это связано с тем, что при обновлении с помощью dist-upgrade вы получаете новую версию NetworkManager. NetworkManager теперь обрабатывает изменения MAC-адреса и поэтому конфликтует со всем, что пытается его изменить. Это может быть полезно для вас, если вы хотите иметь другой MAC-адрес, связанный с сетью. Вы должны изменить файл /etc/NetworkManager/NetworkManager.conf и удалить конфигурацию SSID в /etc/NetworkManager/system-connections после обновления файла конфигурации. Затем, конечно, перезапустите network manager

service network-manager restart

Вы обнаружите, что в этой статье блога описано, как начать работу. Но также прочитайте страницу man, чтобы узнать, какие опции доступны. У меня была та же проблема, которую вы описываете, и теперь macchanger устарел. Я выбираю вариант stable, а не random, но решать вам.

2
27.01.2020, 23:34

Теги

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