Após horas de dificuldades e centenas de instantes de instalação / desinstalação de pacotes python, parece que consegui instalar pacotes python incluindo python-minimal
. Deixe-me compartilhar minha história de sucesso.
-
No começo, eu nem consegui desinstalar o Python-minimal. Toda vez que mostrou o erro que mencionei na minha pergunta durante a instalação / desinstalação. Até tentou
sudo apt-get -f install
mas sem nenhum ganho. De alguma forma eu descobri que só pode ser desinstalado com alguns outros pacotes juntos. Seguindo os comandos, eu usei para concluir a remoção dos pacotes quebrados e residuais depython-minimal
:sudo apt-get autoremove libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2.7 python2.7-minimal
Isso removeria todos os pacotes python e os softwares que dependem do python. Eu sei que isso foi extremo, mas acredite, eu não estava tendo escolha.
sudo apt-get remove --purge $(sudo dpkg -l | egrep "^(rc|iU)" | awk '{print $2}' | tr '\n' ' ')
Para remover o restante dos pacotes residuais e de borken, se houver.
Observação : copiei a lista de pacotes que foram removidos nesta etapa. Eu sabia que precisaria disso de novo!
-
Em seguida, procurei em todos os lugares onde o python2.7 foi instalado e removi todos os arquivos e diretórios do padrão python . Desejei não ter que apagá-los manualmente, mas não tive escolha:
sudo find / -iname python2.7 /etc/python2.7 /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/lib/python2.7 /usr/bin/python2.7.13/lib/python2.7 /usr/bin/python2.7.13/bin/python2.7 /usr/bin/python2.7.13/include/python2.7 /usr/bin/python2.7 /usr/include/x86_64-linux-gnu/python2.7 /usr/include/python2.7 /usr/share/doc/python2.7 /usr/share/binfmts/python2.7 /usr/share/lintian/overrides/python2.7 /proc/sys/fs/binfmt_misc/python2.7 /var/lib/binfmts/python2.7
Eu não precisava excluir todos os arquivos / diretórios listados acima e excluí apenas a versão padrão:
sudo rm -rf /etc/python2.7 /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/lib/python2.7
Havia outras versões do python e não estavam causando problemas. Acredito que a pesquisa pode variar por usuário e o comando
whereis python
pode ser usado para obter o caminho do python padrão instalado. -
Em seguida, eu instalei o python com sucesso:
sudo apt-get install python Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2.7 python2.7-minimal Suggested packages: python-doc python-tk python2.7-doc The following NEW packages will be installed: libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal 0 upgraded, 7 newly installed, 0 to remove and 21 not upgraded. Need to get 0 B/3,877 kB of archives. After this operation, 16.6 MB of additional disk space will be used. Do you want to continue? [Y/n] y Selecting previously unselected package libpython2.7-minimal:amd64. (Reading database ... 250996 files and directories currently installed.) Preparing to unpack .../libpython2.7-minimal_2.7.12-1ubuntu0~16.04.3_amd64.deb ... Unpacking libpython2.7-minimal:amd64 (2.7.12-1ubuntu0~16.04.3) ... Selecting previously unselected package python2.7-minimal. Preparing to unpack .../python2.7-minimal_2.7.12-1ubuntu0~16.04.3_amd64.deb ... Unpacking python2.7-minimal (2.7.12-1ubuntu0~16.04.3) ... Selecting previously unselected package python-minimal. Preparing to unpack .../python-minimal_2.7.12-1~16.04_amd64.deb ... Unpacking python-minimal (2.7.12-1~16.04) ... Selecting previously unselected package libpython2.7-stdlib:amd64. Preparing to unpack .../libpython2.7-stdlib_2.7.12-1ubuntu0~16.04.3_amd64.deb ... Unpacking libpython2.7-stdlib:amd64 (2.7.12-1ubuntu0~16.04.3) ... Selecting previously unselected package python2.7. Preparing to unpack .../python2.7_2.7.12-1ubuntu0~16.04.3_amd64.deb ... Unpacking python2.7 (2.7.12-1ubuntu0~16.04.3) ... Selecting previously unselected package libpython-stdlib:amd64. Preparing to unpack .../libpython-stdlib_2.7.12-1~16.04_amd64.deb ... Unpacking libpython-stdlib:amd64 (2.7.12-1~16.04) ... Processing triggers for man-db (2.7.5-1) ... Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) ... Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ... Processing triggers for mime-support (3.59ubuntu1) ... Setting up libpython2.7-minimal:amd64 (2.7.12-1ubuntu0~16.04.3) ... Setting up python2.7-minimal (2.7.12-1ubuntu0~16.04.3) ... Linking and byte-compiling packages for runtime python2.7... Setting up python-minimal (2.7.12-1~16.04) ... Selecting previously unselected package python. (Reading database ... 251742 files and directories currently installed.) Preparing to unpack .../python_2.7.12-1~16.04_amd64.deb ... Unpacking python (2.7.12-1~16.04) ... Processing triggers for doc-base (0.10.7) ... Processing 1 added doc-base file... Registering documents with scrollkeeper... Processing triggers for man-db (2.7.5-1) ... Setting up libpython2.7-stdlib:amd64 (2.7.12-1ubuntu0~16.04.3) ... Setting up python2.7 (2.7.12-1ubuntu0~16.04.3) ... Setting up libpython-stdlib:amd64 (2.7.12-1~16.04) ... Setting up python (2.7.12-1~16.04) ...
NOTA: Isso só instalou os pacotes python muito necessários e mínimos. Você ainda pode precisar instalar todos os outros pacotes python que foram desinstalados na primeira etapa.
Algumas notas extras:
O segundo passo também excluiu pacotes python de terceiros que foram instalados globalmente usando pip . Infelizmente, eu não estava tendo a lista e acabei com alguns problemas que meus projetos precisam deles. Mas isso não foi grande coisa, pois todos os meus projetos estavam tendo seu próprio arquivo python requirements.txt. Mas ainda sugiro que todos salvem os pacotes python em um arquivo antes de iniciar o primeiro passo. O seguinte comando pode ser útil:
pip freeze > python_pip_packages.txt
Além disso, tive que excluir arquivos e diretórios pip (da mesma forma que excluí os arquivos e diretórios padrão do python) e o pip reinstalado:
sudo apt-get install python-pip # installing pip
sudo pip install --upgrade pip # upgrading pip to latest version using pip itself
sudo pip install -r python_pip_packages.txt # re-installing all 3rd party python packages which were removed in 2nd step.
Espero que os outros não sofram como eu:)