Вопрос или проблема
Я недавно экспериментировал с некоторыми инструментами для хакеров (например, 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 в вашей системе. Рассмотрим подробно, как решить эту проблему.
Причины возникновения ошибки
-
Устаревший Python: В последних версиях Ubuntu, начиная с версии 20.04, система не предостовляет пакет
python
по умолчанию, так как он устарел и был заменен наpython3
. Вместо этого система теперь использует только Python 3. -
Команда установки: Когда вы выполнили команду
sudo apt install python
, система сообщает, что пакет не доступен, но предлагает альтернативные решения, однако пакет, который вы ищете, отсутствует.
Рекомендуемое решение
Чтобы избежать подобных проблем при запуске скриптов, которые ссылаются на команду python
, вы можете выполнить одно из следующих действий:
-
Установка пакета
python-is-python3
:
Этот пакет создает символическую ссылку для командыpython
, перенаправляя её наpython3
. Для установки выполните команду:sudo apt install python-is-python3
-
Создание символической ссылки вручную:
Если по какой-то причине вы предпочитаете не устанавливать пакет, вы можете создать символическую ссылку вручную:sudo ln -s /usr/bin/python3 /usr/bin/python
-
Установка 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, вам придется собрать его из исходников, так как он не поддерживается официально:
-
Скачайте исходный код Python 1.6.1:
wget https://www.python.org/ftp/python/1.6.1/Python-1.6.1.tgz
-
Распакуйте архив и соберите 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 является стандартом. Перед тем как пытаться установить старые версии, рекомендуется ознакомиться с возможностями современных языков программирования и инструментов. В случае вопросов или возникновения проблем с установкой, вы всегда можете обратиться к сообществу или документации для получения помощи.