• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Проблемы с зависимостями при установки пакета

noskov3

Well-known member
20.07.2020
65
0
BIT
472
Всем добра! Столкнулся со следующей проблемой. ОС - Kali Linux 2023, при установки пакета, кому интересно - это Tails-installer, в выводе получаю следующее сообщение:
The following packages have unmet dependencies:
tails-installer : Depends: python (< 2.8) but it is not installable
Depends: python (>= 2.7) but it is not installable
Depends: python:any (>= 2.6.6-7~) but it is not installable
Depends: python-configobj but it is not installable
Depends: python-gi but it is not installable
Depends: python-urlgrabber but it is not installable
E: Unable to correct problems, you have held broken packages.

Да, я понимаю что есть альтернативы этому пакету, но будут и варианты когда альтернатив не будет, хочу просто научиться вручную решать эту проблему, ведь ее решить я так понимаю можно! Можно же помимо рабочей версии Python установить дополнительные, которые будут в системе параллельно, можно же установить старые дополнительные библиотеки, которые будут использованы лишь в данных версиях, и конфликта между ними быть не должно? Короче говоря, прошу помощи, все кто знает, как это все установить!
P.S.: вариант с докер-контейнером не подходит, так как данный пакет мне нужен именно на хостовой машине, плюс ко всему, как я уже описал выше, сталкиваюсь иногда с такими проблемами при установке, с зависимостями от других пакетов и библиотек, более старых версий! Хочу просто понять алгоритм действий по решению данных проблем, куда и что устанавливать!
Заранее благодарю всех откликнувшихся!
 

noskov3

Well-known member
20.07.2020
65
0
BIT
472
Открываете файл в текстовом редакторе удаляете из него все что там есть вставляете код:
Bash:
# ~/.bashrc: executed by bash(1) for non-login shells.

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# Enable color support for ls and add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias dir='dir --color=auto'
    alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# Some more alias to avoid making mistakes
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Custom aliases
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'

# Set prompt
PS1='\[\e]0;\u@\h: \w\a\]\[\033[01;34m\]\u@\h:\w\$\[\033[00m\] '

# Enable history appending instead of overwriting
shopt -s histappend

# Check the window size after each command and, if necessary, update the values of LINES and COLUMNS.
shopt -s checkwinsize

# Enable programmable completion features (you don't need to enable this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sourced on interactive shells).
if ! shopt -oq posix; then
    if [ -f /usr/share/bash-completion/bash_completion ]; then
        . /usr/share/bash-completion/bash_completion
    elif [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
    fi
fi

# Pyenv initialization
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
сохраняете и применяете командой:
Код:
source ~/.bashrc
Все сделал как вы написали, результат тот же. Вот вывод source ~/.bashrc

Command 'shopt' not found, did you mean:
command 'shout' from deb libshout-tools
Try: apt install <deb name>
Command 'shopt' not found, did you mean:
command 'shout' from deb libshout-tools
Try: apt install <deb name>
Command 'shopt' not found, did you mean:
command 'shout' from deb libshout-tools
Try: apt install <deb name>
Command 'shopt' not found, did you mean:
command 'shout' from deb libshout-tools
Try: apt install <deb name>
complete: command not found
complete: command not found
complete: command not found
complete: command not found
complete: command not found
complete: command not found
complete: command not found
complete: command not found
complete: command not found
_comp_dequote__initialize:unset:2: no such hash table element:
/usr/share/bash-completion/bash_completion:615: parse error near `&'

\[\e]0;\u@\h: \w\a\]\[\033[01;34m\]\u@\h:\w$\[\033[00m\]

/usr/share/bash-completion/bash_completion:615: parse error near `&' данная строчка отличается от предыдущих выводов
 

noskov3

Well-known member
20.07.2020
65
0
BIT
472
то что я вам прислал - это минимальная настройка + pyenv, сохраните ваш файл в сторонке - потом восстановите если что, а вообще можно на него взглянуть? можно файл прикрепить к сообщению
Эх, невнимательный я... Я его заменил и сохранил уже в новом виде...
 

Koloboking

Green Team
12.01.2017
166
52
BIT
848
Код:
echo $SHELL
Результат должен быть /bin/bash или аналогичный путь, указывающий на Bash. Если это не так, переключитесь на Bash:
Код:
chsh -s /bin/bash
exec /bin/bash
 

noskov3

Well-known member
20.07.2020
65
0
BIT
472
то что я вам прислал - это минимальная настройка + pyenv, сохраните ваш файл в сторонке - потом восстановите если что, а вообще можно на него взглянуть? можно файл прикрепить к сообщению

Код:
echo $SHELL
Результат должен быть /bin/bash или аналогичный путь, указывающий на Bash. Если это не так, переключитесь на Bash:
Код:
chsh -s /bin/bash
exec /bin/bash
Результат выполнения такой
/usr/bin/zsh
 

Koloboking

Green Team
12.01.2017
166
52
BIT
848
Результат выполнения такой
/usr/bin/zsh
Вот минималистичный файл .zshrc, который поможет настроить вашу среду включая инициализацию pyenv:
Код:
# ~/.zshrc: executed by zsh for interactive shells.

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# Enable color support of ls and add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias dir='dir --color=auto'
    alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# Some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

# Set prompt
PROMPT='%F{cyan}%n@%m%f:%F{yellow}%~%f %# '

# Enable command history appending instead of overwriting
setopt APPEND_HISTORY

# Check the window size after each command and, if necessary, update the values of LINES and COLUMNS.
autoload -Uz compinit && compinit
zmodload zsh/complist

# Enable programmable completion features
if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

# Pyenv initialization
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
После внесения изменений в .zshrc, сохраните файл и примените изменения:
Код:
source ~/.zshrc
 

noskov3

Well-known member
20.07.2020
65
0
BIT
472
Вот минималистичный файл .zshrc, который поможет настроить вашу среду включая инициализацию pyenv:
Код:
# ~/.zshrc: executed by zsh for interactive shells.

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# Enable color support of ls and add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias dir='dir --color=auto'
    alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# Some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

# Set prompt
PROMPT='%F{cyan}%n@%m%f:%F{yellow}%~%f %# '

# Enable command history appending instead of overwriting
setopt APPEND_HISTORY

# Check the window size after each command and, if necessary, update the values of LINES and COLUMNS.
autoload -Uz compinit && compinit
zmodload zsh/complist

# Enable programmable completion features
if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

# Pyenv initialization
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
После внесения изменений в .zshrc, сохраните файл и примените изменения:
Код:
source ~/.zshrc
значит я проделываю все вышеописанное, но с другим файлом?
 

noskov3

Well-known member
20.07.2020
65
0
BIT
472

Koloboking

Green Team
12.01.2017
166
52
BIT
848
Попробовал изменить оболочку по умолчанию используя данную статью Статья - Как поменять Shell на Bash
результат тот же, оболочка по умолчанию осталась zsh... что-то тут не то
я не пользуюсь Kali, но знаю что есть достаточно документации, я бы почитал документацию, изучил бы как пользоваться оболочками, что делают команды, а уж потом можно было бы и про зависимости подумать
 

noskov3

Well-known member
20.07.2020
65
0
BIT
472
я не пользуюсь Kali, но знаю что есть достаточно документации, я бы почитал документацию, изучил бы как пользоваться оболочками, что делают команды, а уж потом можно было бы и про зависимости подумать
Я извиняюсь, просто надо было перезагрузить. Оболочку поменял, все операции вышеописанные проделал, все получилось без ошибок, спасибо вам огромное!! Но приключения продолжаются))
После ввода команды pyenv install 2.7.18 вывод следующий

Downloading Python-2.7.18.tar.xz...
->
Installing Python-2.7.18...
patching file configure
patching file configure.ac
patching file setup.py
patching file Mac/Tools/pythonw.c
patching file setup.py
patching file Doc/library/ctypes.rst
patching file Lib/test/test_str.py
patching file Lib/test/test_unicode.py
patching file Modules/_ctypes/_ctypes.c
patching file Modules/_ctypes/callproc.c
patching file Modules/_ctypes/ctypes.h
patching file Modules/_ctypes/callproc.c
patching file setup.py
patching file Mac/Modules/qt/setup.py
patching file setup.py
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named readline
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named bz2
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/root/.pyenv/versions/2.7.18/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/root/.pyenv/versions/2.7.18/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/root/.pyenv/versions/2.7.18/lib/python2.7/ssl.py", line 98, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: No module named _ssl
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.


BUILD FAILED (Kali 2023.4 using python-build 2.4.7)

Inspect or clean up the working tree at /tmp/python-build.20240713094801.2873
Results logged to /tmp/python-build.20240713094801.2873.log

Last 10 log lines:
rm -f /root/.pyenv/versions/2.7.18/share/man/man1/python.1
(cd /root/.pyenv/versions/2.7.18/share/man/man1; ln -s python2.1 python.1)
if test "xno" != "xno" ; then \
case no in \
upgrade) ensurepip="--upgrade" ;; \
install|*) ensurepip="" ;; \
esac; \
LD_LIBRARY_PATH=/tmp/python-build.20240713094801.2873/Python-2.7.18 ./python -E -m ensurepip \
$ensurepip --root=/ ; \
fi

Очевидно что версия не установилась, так как при вводе pyenv global 2.7.18 в выводе сообщалось что данная версия не установлена
 

Koloboking

Green Team
12.01.2017
166
52
BIT
848
Ошибки, которые вы получили при установке Python 2.7.18, связаны с отсутствием необходимых библиотек и пакетов для успешной компиляции
Убедитесь, что у вас установлены все необходимые библиотеки и заголовочные файлы. Вот команды для установки необходимых пакетов:
Код:
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

  • Убедитесь, что у вас установлены следующие библиотеки:
    • GNU readline: libreadline-dev
    • bzip2: libbz2-dev
    • SQLite3: libsqlite3-dev
    • OpenSSL: libssl-dev
  • Попробуйте снова установить Python 2.7.18
Если это не поможет, предоставьте последнюю часть файла журнала /tmp/python-build.20240713094801.2873.log
 

Koloboking

Green Team
12.01.2017
166
52
BIT
848
Я извиняюсь, просто надо было перезагрузить. Оболочку поменял, все операции вышеописанные проделал, все получилось без ошибок, спасибо вам огромное!! Но приключения продолжаются))
После ввода команды pyenv install 2.7.18 вывод следующий

Downloading Python-2.7.18.tar.xz...
->
Installing Python-2.7.18...
patching file configure
patching file configure.ac
patching file setup.py
patching file Mac/Tools/pythonw.c
patching file setup.py
patching file Doc/library/ctypes.rst
patching file Lib/test/test_str.py
patching file Lib/test/test_unicode.py
patching file Modules/_ctypes/_ctypes.c
patching file Modules/_ctypes/callproc.c
patching file Modules/_ctypes/ctypes.h
patching file Modules/_ctypes/callproc.c
patching file setup.py
patching file Mac/Modules/qt/setup.py
patching file setup.py
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named readline
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named bz2
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/root/.pyenv/versions/2.7.18/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/root/.pyenv/versions/2.7.18/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/root/.pyenv/versions/2.7.18/lib/python2.7/ssl.py", line 98, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: No module named _ssl
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.


BUILD FAILED (Kali 2023.4 using python-build 2.4.7)

Inspect or clean up the working tree at /tmp/python-build.20240713094801.2873
Results logged to /tmp/python-build.20240713094801.2873.log

Last 10 log lines:
rm -f /root/.pyenv/versions/2.7.18/share/man/man1/python.1
(cd /root/.pyenv/versions/2.7.18/share/man/man1; ln -s python2.1 python.1)
if test "xno" != "xno" ; then \
case no in \
upgrade) ensurepip="--upgrade" ;; \
install|*) ensurepip="" ;; \
esac; \
LD_LIBRARY_PATH=/tmp/python-build.20240713094801.2873/Python-2.7.18 ./python -E -m ensurepip \
$ensurepip --root=/ ; \
fi

Очевидно что версия не установилась, так как при вводе pyenv global 2.7.18 в выводе сообщалось что данная версия не установлена
ImportError: No module named readline
ImportError: No module named bz2
No module named _sqlite3
No module named _sqlite3
информация взята из вашего сообщения, учитывайте что то что вы видите в терминале это не безсвязный набор символов а вполне читаемая информация и выводится она что б вы понимали что происходит
 

noskov3

Well-known member
20.07.2020
65
0
BIT
472
ImportError: No module named readline
ImportError: No module named bz2
No module named _sqlite3
No module named _sqlite3
информация взята из вашего сообщения, учитывайте что то что вы видите в терминале это не безсвязный набор символов а вполне читаемая информация и выводится она что б вы понимали что происходит
Спасибо, я уже начал потихоньку понимать, и даже опережать ваши сообщения, когда вы мне ответили последний раз, часть библиотек я уже установил сам.
Выполнил практически все команды, без ошибок, все гладко, только вот проблема с последней
pip install urlgrabber
Вывод:
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at pip 21.0 will remove support for this functionality.
Collecting urlgrabber
Downloading urlgrabber-4.1.0.tar.gz (85 kB)
|████████████████████████████████| 85 kB 503 kB/s
Collecting pycurl
Downloading pycurl-7.43.0.5.tar.gz (216 kB)
|████████████████████████████████| 216 kB 4.7 MB/s

ERROR: Command errored out with exit status 1:
command: /root/.pyenv/versions/2.7.18/envs/tails-env/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hmf2Gx/pycurl/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hmf2Gx/pycurl/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-xl9RH5
cwd: /tmp/pip-install-hmf2Gx/pycurl/
Complete output (11 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-hmf2Gx/pycurl/setup.py", line 961, in <module>
ext = get_extension(sys.argv, split_extension_source=split_extension_source)
File "/tmp/pip-install-hmf2Gx/pycurl/setup.py", line 623, in get_extension
ext_config = ExtensionConfiguration(argv)
File "/tmp/pip-install-hmf2Gx/pycurl/setup.py", line 101, in __init__
self.configure()
File "/tmp/pip-install-hmf2Gx/pycurl/setup.py", line 238, in configure_unix
raise ConfigurationError(msg)
__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Это связано я так понимаю с конфликтом библиотек или опять не хватает в среде нужных библиотек для установки?
 

Koloboking

Green Team
12.01.2017
166
52
BIT
848
Ошибка при установке pycurl связана с отсутствием команды curl-config, которая необходима для успешной компиляции pycurl
Код:
sudo apt update
sudo apt install -y curl libcurl4-openssl-dev
потом
Код:
pip install urlgrabber
Если установка все еще не проходит успешно, попробуйте выполнить команду с флагом --no-cache-dir, чтобы избежать использования кэшированных данных:
Код:
pip install --no-cache-dir urlgrabber
 

Вложения

  • 1720894898137.png
    1720894898137.png
    79,5 КБ · Просмотры: 22
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!