Dependências não atendidas devido ao pacote ligeiramente novo instalado

0

Quando tentei apt-get upgrade (sim, atualizei primeiro), recebo o seguinte:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 python-samba : Depends: libwbclient0 (= 2:4.5.12+dfsg-2+deb9u2) but 2:4.5.12+dfsg-2+deb9u3 is installed
                Depends: samba-libs (= 2:4.5.12+dfsg-2+deb9u2) but 2:4.5.12+dfsg-2+deb9u3 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Assim, o culpado parece ser libwbclient0 , o que é necessário na subversão deb9u2 , mas aparentemente instalado em deb9u3 . Quando tento executar --fix-broken como sugerido por apt-get , os scripts de remoção parecem travar devido a um pacote ausente maketrans e posterior ConfigParser :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  python-samba
Suggested packages:
  python-gpgme
The following packages will be upgraded:
  python-samba
1 upgraded, 0 newly installed, 0 to remove and 91 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,364 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Reading changelogs... Done
(Reading database ... 567338 files and directories currently installed.)
Preparing to unpack .../python-samba_2%3a4.5.12+dfsg-2+deb9u3_amd64.deb ...
Traceback (most recent call last):
  File "/usr/bin/pyclean", line 32, in <module>
    from debpython.namespace import add_namespace_files
  File "/usr/share/python/debpython/namespace.py", line 28, in <module>
    from debpython.pydist import PUBLIC_DIR_RE
  File "/usr/share/python/debpython/pydist.py", line 27, in <module>
    from string import maketrans
ImportError: cannot import name 'maketrans'
dpkg: warning: subprocess old pre-removal script returned error exit status 1
dpkg: trying script from the new package instead ...
Traceback (most recent call last):
  File "/usr/bin/pyclean", line 32, in <module>
    from debpython.namespace import add_namespace_files
  File "/usr/share/python/debpython/namespace.py", line 28, in <module>
    from debpython.pydist import PUBLIC_DIR_RE
  File "/usr/share/python/debpython/pydist.py", line 27, in <module>
    from string import maketrans
ImportError: cannot import name 'maketrans'
dpkg: error processing archive /var/cache/apt/archives/python-samba_2%3a4.5.12+dfsg-2+deb9u3_amd64.deb (--unpack):
 subprocess new pre-removal script returned error exit status 1
Traceback (most recent call last):
  File "/usr/bin/pycompile", line 35, in <module>
    from debpython.version import SUPPORTED, debsorted, vrepr, \
  File "/usr/share/python/debpython/version.py", line 24, in <module>
    from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/python-samba_2%3a4.5.12+dfsg-2+deb9u3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu estou no debian stretch 9.4 com o kernel: Linux 3.10-2-amd64 #1 SMP Debian 3.10.7-1

Depois que minhas tentativas falharam e não consegui encontrar nada on-line sobre como corrigir isso, pedi a aptitude e synaptic que tentassem. Ambos tentaram algo, mas também falharam.

Eu nem preciso do samba, então me livrar dele seria ótimo, mas apt não quer remover nada antes de eu não consertar o pacote quebrado:

 package is in a very bad inconsistent state; you should
 reinstall it before attempting a removal
    
por bitmask 22.08.2018 / 14:37

1 resposta

3
ImportError: cannot import name 'maketrans'

é um erro do Python 3, que resulta da tentativa de importar maketrans como você faria no código do Python 2. Isso significa que /usr/bin/python no seu sistema é um interpretador do Python 3; isto quebra os derivados do Debian.

Para corrigir isso, supondo que python2.7 ainda esteja instalado, é necessário corrigir o symlink /usr/bin/python para que ele aponte para /usr/bin/python2.7 :

sudo ln -s python2.7 /usr/bin/python
    
por 22.08.2018 / 15:59