E: Пакет ‘python’ не имеет подходящего кандидата для установки

Вопрос или проблема

Я недавно экспериментировал с некоторыми инструментами для хакеров (например, hydro) и наткнулся на инструмент под названием Responder. Он в основном открывает SMB-сервер, который захватывает NetNTLMv для административного пользователя с сервера/клиента (Кстати, я все еще новичок, так что, пожалуйста, не судите строго, если я ошибаюсь). Я пытался запустить скрипт, набрав ./Responder.py -I tun0, но он сказал /usr/bin/env: ‘python’: Нет такого файла или каталога. Я понял, что python не был установлен, поэтому запустил sudo apt install python, но вместо того, чтобы сказать мне, что установка завершена, он выдал следующее:

Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Пакет python недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника
Тем не менее, следующие пакеты заменяют его:
  2to3 python2-minimal:i386 python2:i386 python2-minimal python2 dh-python
  python-is-python3

E: Пакет 'python' не имеет кандидата на установку

Вывод остался прежним даже после выполнения sudo apt update && sudo apt upgrade и после перезагрузки.

Я помню, что python работал до последнего обновления, поэтому я не совсем уверен, что делать.

Версия: Ubuntu 22.04 amd64

(Примечание: Я заглянул в код Responder.py и увидел, что в строке shebang он конкретно требует python 1, так что python 2 и 3 не должны работать… Я все равно попробовал, и, как я и предполагал, это не сработало.)

Все недавние установки Ubuntu используют только python3.

Чтобы запускать программы, указывающие на python, установите пакет python-is-python3:

sudo apt install python-is-python3

Или вручную создайте символическую ссылку на python3 (что, по сути, и делает вышеупомянутый пакет):

sudo ln -s /usr/bin/python3 /usr/bin/python

Если вы хотите установить Python 2 на Ubuntu 22.04, рецепт таков:

$ sudo apt update
$ sudo apt install python2

$ python2 -V
Python 2.7.18

Но, как уже упоминалось, Python 2.7 больше не поддерживается (с 2020-01-01) и устарел в последних выпусках Ubuntu.


Если вам действительно нужен Python 1.x … вам потребуется скачать исходный код для 1.6.1 и собрать его самостоятельно. Это было бы довольно безумно … так как 1.6.1 официально прекратил поддержку в 2000 году.

Я получил это из Установить python2 на ubuntu 23.04 ?!:

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
sudo tar xzf Python-2.7.9.tgz
cd Python-2.7.9
sudo ./configure --enable-optimizations
sudo make altinstall

затем:

python2.7 -V
~ Python 2.7.9
sudo ln -sfn '/usr/local/bin/python2.7' '/usr/bin/python2'
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1

Ответ или решение

Решение проблемы: E: Package ‘python’ has no installation candidate

При исследовании инструментов для хакинга, таких как Responder, вы столкнулись с ошибкой, связанной с отсутствием пакета Python в вашей системе. Рассмотрим подробно, как решить эту проблему.

Причины возникновения ошибки

  1. Устаревший Python: В последних версиях Ubuntu, начиная с версии 20.04, система не предостовляет пакет python по умолчанию, так как он устарел и был заменен на python3. Вместо этого система теперь использует только Python 3.

  2. Команда установки: Когда вы выполнили команду sudo apt install python, система сообщает, что пакет не доступен, но предлагает альтернативные решения, однако пакет, который вы ищете, отсутствует.

Рекомендуемое решение

Чтобы избежать подобных проблем при запуске скриптов, которые ссылаются на команду python, вы можете выполнить одно из следующих действий:

  1. Установка пакета python-is-python3:
    Этот пакет создает символическую ссылку для команды python, перенаправляя её на python3. Для установки выполните команду:

    sudo apt install python-is-python3
  2. Создание символической ссылки вручную:
    Если по какой-то причине вы предпочитаете не устанавливать пакет, вы можете создать символическую ссылку вручную:

    sudo ln -s /usr/bin/python3 /usr/bin/python
  3. Установка Python 2:
    Если вам необходимо использовать Python 2 (например, для запуска Responder), вы можете установить его следующим образом:

    sudo apt update
    sudo apt install python2

    После установки проверьте, установилась ли версия Python 2:

    python2 -V

    Обратите внимание, что Python 2.7 больше не поддерживается с января 2020 года и может содержать уязвимости безопасности.

Установка Python 1.x (не рекомендуется)

Если по каким-то причинам вам необходимо установить Python 1.x, вам придется собрать его из исходников, так как он не поддерживается официально:

  1. Скачайте исходный код Python 1.6.1:

    wget https://www.python.org/ftp/python/1.6.1/Python-1.6.1.tgz
  2. Распакуйте архив и соберите Python:

    sudo tar xzf Python-1.6.1.tgz
    cd Python-1.6.1
    sudo ./configure
    sudo make
    sudo make install

Поскольку Python 1.x является устаревшей версией, его использование нецелесообразно и создаст потенциальные проблемы с безопасностью и совместимостью.

Заключение

В современных системах на базе Ubuntu использование Python 3 является стандартом. Перед тем как пытаться установить старые версии, рекомендуется ознакомиться с возможностями современных языков программирования и инструментов. В случае вопросов или возникновения проблем с установкой, вы всегда можете обратиться к сообществу или документации для получения помощи.

Оцените материал
Добавить комментарий

Капча загружается...