Python-Setup reparieren

13

Auf meinem Kubuntu 14.4 (das standardmäßig Python 2.7.6 enthält) ist mein Python defekt, nachdem ich versucht habe, Python 2.7.10 zu installieren, nachdem ich aus dem Quellcode von python.org mithilfe von Wie installiere ich die neueste Python-Version unter Debian separat oder Aktualisierung? . Ich kann es nicht mit den Standardbefehlen reparieren, von denen ich vermute, dass mein dpkg in Bezug auf die Python-Installation irgendwie verwirrt / kaputt ist. Ich möchte dpkg in diesem Aspekt beheben. Ich vermute , dass dies etwas mit dem zu tun , Datei /var/lib/dpkg/statusund /var/lib/dpkg/availableund /var/lib/dpkg/info/*particularily die ersten. Ich denke, ich muss dpkgirgendwie zurücksetzen , aber ich bin wirklich kein Experte. Der Grund, warum ich das denke, ist:

$ apt-cache policy python
python:
  Installed: 2.7.10-1
  Candidate: 2.7.10-1
  Version table:
*** 2.7.10-1 0
    100 /var/lib/dpkg/status
2.7.5-5ubuntu3 0
    500 http://de.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

$ /usr/bin/python2.7
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Der Grund, warum ich versucht habe, Python 2.7.10 zu installieren, ist, dass ich es für ein anderes Programm brauchte (wegen Problemen mit ssl / openssl von Python 2.7.6), aber jetzt möchte ich nur mein System reparieren lassen - lass es einfach Python 2.7 sein .6.


Die volle technische

Ich habe versucht, dieses Problem zu lösen, indem ich auf ubuntu /ubuntu/648424/muon-is-gone-after-change-of-python-issues-after-python-2-7-10-installation- gefragt habe. am aber ich habe dort keine antwort bekommen. Vielleicht war es die falsche Menge. Ich habe seitdem einiges versucht und habe eine Idee, was das Problem ist, kenne aber nicht die Schritte, um dies zu erreichen.

Es begann damit, dass ich Myon nicht installieren konnte mit sudo apg-get install muon:

$ sudo apt-get install muon
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 muon : Depends: apt-xapian-index but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Der typische Hinweis (zB von /ubuntu/118749/package-system-is-broken-how-to-fix-it ) hilft nicht:

sudo apt-get autoremove
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade -f
sudo apt-get -f install muon

oder

sudo apt-get -f install

oder

sudo dpkg --configure -a 
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install muon

oder

sudo apt-get -o dpkg::options::="--force-confnew" -o dpkg::options::="--force-confmiss" --reinstall install muon

hat nicht geholfen. Also habe ich es versucht

$ sudo apt-get install apt-xapian-index
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 apt-xapian-index : Depends: python-xapian (>= 1.0.2) but it is not going to be installed
                    Depends: python-apt (>= 0.7.93.2) but it is not going to be installed
                    Depends: python-debian (>= 0.1.14) but it is not going to be installed
                    Depends: python:any (>= 2.7.1-0ubuntu2)
E: Unable to correct problems, you have held broken packages.

und fand heraus, dass das Problem auch bei anderen Programmen wie

$ sudo apt-get install meld 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 meld : Depends: python:any (>= 2.7.1-0ubuntu2)
        Depends: python-gtk2 (>= 2.14) but it is not going to be installed
        Depends: python-glade2 (>= 2.14) but it is not going to be installed
        Depends: python-gobject-2 (>= 2.16) but it is not going to be installed
        Recommends: python-gnome2 but it is not going to be installed
        Recommends: python-gconf but it is not going to be installed
        Recommends: python-gtksourceview2 (>= 2.4) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Also habe ich es versucht (ohne Glück)

$ sudo update-alternatives --config python
update-alternatives: error: no alternatives for python

Folgendes hat auch nicht geholfen:

sudo dpkg -P python2.7
sudo apt-get install python2.7
sudo dpkg -P python-minimal
sudo apt-get autoremove && sudo apt-get clean sudo apt-get update && sudo apt-get -f install

ich bekomme

$ apt-cache policy python
python:
  Installed: 2.7.10-1
  Candidate: 2.7.10-1
  Version table:
*** 2.7.10-1 0
    100 /var/lib/dpkg/status
2.7.5-5ubuntu3 0
    500 http://de.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Der Versuch, Python neu zu installieren, funktioniert nicht

$ sudo apt-get -o dpkg::options::="--force-confnew" -o dpkg::options::="--force-confmiss" --reinstall install python
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reinstallation of python is not possible, it cannot be downloaded.
0 upgraded, 0 newly installed, 0 to remove and 16 not upgraded.

oder

$ sudo apt-get -o dpkg::options::="--force-confnew" -o dpkg::options::="--force-confmiss" --reinstall install python2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package python2

und der Versuch, ein Deinstallationsprogramm zu erstellen, funktioniert auch nicht:

~/Python-2.7.10$ sudo make uninstall 
make: *** No rule to make target `uninstall'.  Stop.

Also begann ich zu vermuten, dass ich dpkg irgendwie reparieren lassen muss, weil

$ apt-cache policy python
python:
  Installed: 2.7.10-1
  Candidate: 2.7.10-1
  Version table:
*** 2.7.10-1 0
    100 /var/lib/dpkg/status
2.7.5-5ubuntu3 0
    500 http://de.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

$ /usr/bin/python2.7
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Weitere Informationen (Anhang)

$ dpkg -l python* | grep -v ^un
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
    Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                                        Version                                 Architektur  Beschreibung
+++-===========================================-=======================================-============-=====================================================================================================================================================================================================================
ii  python                                      2.7.10-1                                amd64        Python 2.7.10
ii  python-apt-common                           0.9.3.5ubuntu1                          all          Python interface to libapt-pkg (locales)
ii  python-chardet-whl                          2.2.1-2~ubuntu1                         all          universal character encoding detector
ii  python-colorama-whl                         0.2.5-0.1ubuntu2                        all          Cross-platform colored terminal text in Python - Wheels
ii  python-cups                                 1.9.66-0ubuntu2                         amd64        Python bindings for CUPS
rc  python-cupshelpers                          1.4.3+20140219-0ubuntu2.6               all          Python modules for printer configuration with CUPS
ii  python-dbus-dev                             1.2.0-2build2                           all          main loop integration development files for python-dbus
ii  python-distlib-whl                          0.1.8-1ubuntu1                          all          low-level components of python distutils2/packaging
rc  python-gobject-2                            2.28.6-12build1                         amd64        deprecated static Python bindings for the GObject library
ii  python-html5lib-whl                         0.999-3~ubuntu1                         all          HTML parser/tokenizer based on the WHATWG HTML5 specification
ii  python-ldb                                  1:1.1.16-1                              amd64        Python bindings for LDB
ii  python-minimal                              2.7.5-5ubuntu3                          amd64        minimal subset of the Python language (default version)
ii  python-ntdb                                 1.0-2ubuntu1                            amd64        Python bindings for NTDB
ii  python-pam                                  0.4.2-13.1ubuntu3                       amd64        Python interface to the PAM library
ii  python-pip-whl                              1.5.4-1ubuntu3                          all          alternative Python package installer
ii  python-renderpm                             3.0-1build1                             amd64        python low level render interface
ii  python-reportlab-accel                      3.0-1build1                             amd64        C coded extension accelerator for the ReportLab Toolkit
ii  python-requests-whl                         2.2.1-1ubuntu0.3                        all          elegant and simple HTTP library for Python, built for human beings
ii  python-setuptools-whl                       3.3-1ubuntu2                            all          Python Distutils Enhancements (wheel package)
ii  python-six-whl                              1.5.2-1ubuntu1                          all          Python 2 and 3 compatibility library (universal wheel)                                               
rc  python-support                              1.0.15                                  all          automated rebuilding support for Python modules                                                      
ii  python-talloc                               2.1.0-1                                 amd64        hierarchical pool based memory allocator - Python bindings                                           
ii  python-tdb                                  1.2.12-1                                amd64        Python bindings for TDB                                                                              
ii  python-twisted-bin                          13.2.0-1ubuntu1                         amd64        Event-based framework for internet applications                                                      
rc  python-twisted-core                         13.2.0-1ubuntu1                         all          Event-based framework for internet applications                                                      
rc  python-ubuntu-sso-client                    13.10-0ubuntu6                          all          Ubuntu Single Sign-On client - Python library                                                        
ii  python-urllib3-whl                          1.7.1-1ubuntu3                          all          HTTP library with thread-safe connection pooling                                                     
ii  python2.7                                   2.7.6-8ubuntu0.2                        amd64        Interactive high-level object-oriented language (version 2.7)                                        
ii  python2.7-minimal                           2.7.6-8ubuntu0.2                        amd64        Minimal subset of the Python language (version 2.7)                                                  
ii  python3                                     3.4.0-0ubuntu2                          amd64        interactive high-level object-oriented language (default python3 version)                            
ii  python3-apport                              2.14.1-0ubuntu3.11                      all          Python 3 library for Apport crash report handling                                                    
ii  python3-apt                                 0.9.3.5ubuntu1                          amd64        Python 3 interface to libapt-pkg                                                                     
ii  python3-aptdaemon                           1.1.1-1ubuntu5.2                        all          Python 3 module for the server and client of aptdaemon                                               
ii  python3-chardet                             2.2.1-2~ubuntu1                         all          universal character encoding detector for Python3                                                    
ii  python3-colorama                            0.2.5-0.1ubuntu2                        all          Cross-platform colored terminal text in Python - Python 3.x                                          
ii  python3-commandnotfound                     0.3ubuntu12                             all          Python 3 bindings for command-not-found.                                                             
ii  python3-dbus                                1.2.0-2build2                           amd64        simple interprocess messaging system (Python 3 interface)                                            
ii  python3-dbus.mainloop.qt                    4.10.4+dfsg-1ubuntu1                    amd64        D-Bus Support for PyQt4 with Python 3
ii  python3-debian                              0.1.21+nmu2ubuntu2                      all          Python 3 modules to work with Debian-related data formats
ii  python3-defer                               1.0.6-2build1                           all          Small framework for asynchronous programming (Python 3)
ii  python3-dev                                 3.4.0-0ubuntu2                          amd64        header files and a static library for Python (default)
ii  python3-distlib                             0.1.8-1ubuntu1                          all          low-level components of python distutils2/packaging
ii  python3-distupgrade                         1:0.220.7                               all          manage release upgrades
ii  python3-gdbm:amd64                          3.4.0-0ubuntu1                          amd64        GNU dbm database support for Python 3.x
ii  python3-gi                                  3.12.0-1ubuntu1                         amd64        Python 3 bindings for gobject-introspection libraries
ii  python3-html5lib                            0.999-3~ubuntu1                         all          HTML parser/tokenizer based on the WHATWG HTML5 specification (Python 3)
ii  python3-minimal                             3.4.0-0ubuntu2                          amd64        minimal subset of the Python language (default python3 version)
ii  python3-pip                                 1.5.4-1ubuntu3                          all          alternative Python package installer - Python 3 version of the package
ii  python3-pkg-resources                       3.3-1ubuntu2                            all          Package Discovery and Resource Access using pkg_resources
ii  python3-problem-report                      2.14.1-0ubuntu3.11                      all          Python 3 library to handle problem reports
ii  python3-pycurl                              7.19.3-0ubuntu3                         amd64        Python 3 bindings to libcurl
ii  python3-pykde4                              4:4.13.3-0ubuntu0.1                     amd64        Python 3 bindings for the KDE Development Platform
ii  python3-pyqt4                               4.10.4+dfsg-1ubuntu1                    amd64        Python3 bindings for Qt4
ii  python3-requests                            2.2.1-1ubuntu0.3                        all          elegant and simple HTTP library for Python3, built for human beings
ii  python3-setuptools                          3.3-1ubuntu2                            all          Python3 Distutils Enhancements
ii  python3-sip                                 4.15.5-1build1                          amd64        Python 3/C++ bindings generator runtime library
ii  python3-six                                 1.5.2-1ubuntu1                          all          Python 2 and 3 compatibility library (Python 3 interface)
ii  python3-software-properties                 0.92.37.3                               all          manage the repositories that you install software from
ii  python3-uno                                 1:4.2.8-0ubuntu2                        amd64        Python-UNO bridge
ii  python3-update-manager                      1:0.196.13                              all          python 3.x module for update-manager
ii  python3-urllib3                             1.7.1-1ubuntu3                          all          HTTP library with thread-safe connection pooling for Python3
ii  python3-wheel                               0.24.0-1~ubuntu1                        all          built-package format for Python
ii  python3-xkit                                0.5.0ubuntu2                            all          library for the manipulation of xorg.conf files (Python 3)
ii  python3.4                                   3.4.0-2ubuntu1.1                        amd64        Interactive high-level object-oriented language (version 3.4)
ii  python3.4-dev                               3.4.0-2ubuntu1.1                        amd64        Header files and a static library for Python (v3.4)
ii  python3.4-minimal                           3.4.0-2ubuntu1.1                        amd64        Minimal subset of the Python language (version 3.4)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.2 LTS
Release:        14.04
Codename:       trusty

$ grep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
/etc/apt/sources.list:deb http://de.archive.ubuntu.com/ubuntu/ trusty main restricted
/etc/apt/sources.list:deb-src http://de.archive.ubuntu.com/ubuntu/ trusty main restricted
/etc/apt/sources.list:deb http://de.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
/etc/apt/sources.list:deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
/etc/apt/sources.list:deb http://de.archive.ubuntu.com/ubuntu/ trusty universe
/etc/apt/sources.list:deb-src http://de.archive.ubuntu.com/ubuntu/ trusty universe
/etc/apt/sources.list:deb http://de.archive.ubuntu.com/ubuntu/ trusty-updates universe
/etc/apt/sources.list:deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-updates universe
/etc/apt/sources.list:deb http://de.archive.ubuntu.com/ubuntu/ trusty multiverse
/etc/apt/sources.list:deb-src http://de.archive.ubuntu.com/ubuntu/ trusty multiverse
/etc/apt/sources.list:deb http://de.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
/etc/apt/sources.list:deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
/etc/apt/sources.list:deb http://de.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
/etc/apt/sources.list:deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu trusty-security main restricted
/etc/apt/sources.list:deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu trusty-security universe
/etc/apt/sources.list:deb-src http://security.ubuntu.com/ubuntu trusty-security universe
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu trusty-security multiverse
/etc/apt/sources.list:deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse
/etc/apt/sources.list:deb http://archive.canonical.com/ubuntu trusty partner
/etc/apt/sources.list:deb http://extras.ubuntu.com/ubuntu trusty main
/etc/apt/sources.list:deb http://cran.uni-muenster.de/bin/linux/ubuntu trusty/
/etc/apt/sources.list.d/fossfreedom-packagefixes-trusty.list:deb http://ppa.launchpad.net/fossfreedom/packagefixes/ubuntu trusty main
/etc/apt/sources.list.d/jitsi.list:deb http://download.jitsi.org/deb unstable/
/etc/apt/sources.list.d/leviatan1-ppa-trusty.list:deb http://ppa.launchpad.net/leviatan1/ppa/ubuntu trusty main

$ whereis python
python: /usr/bin/python /usr/bin/python3.4-config /usr/bin/python3.4 /usr/bin/python3.4m /usr/bin/python2.7 /usr/bin/python3.4m-config /etc/python /etc/python3.4 /etc/python2.7 /usr/lib/python3.4 /usr/lib/python2.7 /usr/bin/X11/python /usr/bin/X11/python3.4-config /usr/bin/X11/python3.4 /usr/bin/X11/python3.4m /usr/bin/X11/python2.7 /usr/bin/X11/python3.4m-config /usr/local/lib/python3.4 /usr/local/lib/python2.7 /usr/include/python3.4 /usr/include/python3.4m /usr/share/python /usr/share/man/man1/python.1.gz

$ whereis python2.7
python2: /usr/bin/python2.7 /usr/bin/python2 /etc/python2.7 /usr/lib/python2.7 /usr/bin/X11/python2.7 /usr/bin/X11/python2 /usr/local/lib/python2.7 /usr/share/man/man1/python2.1.gz
Make42
quelle
Was ist die Ausgabe von whereis python2.7und whereis python?
Wilf
Wenn Sie das nächste Mal Python aus dem Quellcode kompilieren und installieren möchten, ist es möglicherweise eine gute Idee, es an einem alternativen Speicherort zu installieren (zuerst). Python ist auf Ihrem System als Teil des Software-Stacks vorhanden, der von anderen Anwendungen verwendet wird. Es ist ein bisschen gefährlich, über die systemweite Python-Installation zu installieren, ohne sie zu testen. Sie können den Installationsort festlegen, indem Sie --prefix=/path/to/folderden ./configureBefehl eingeben.
Benjamin B.
@Wilf Ich habe die Informationen in den Anhang aufgenommen.
Make42
@BenjaminB. Können Sie dies erläutern, indem Sie den vollständigen Befehl bereitstellen? Was ist der Befehl ./configure? (Ich habe noch nicht mit Python programmiert / gearbeitet).
Make42
Wenn Sie die Anweisungen zu der anderen Stapelaustauschfrage befolgt haben, die Sie gestellt haben, sind Sie irgendwann gelaufen ./configure --prefix=/opt/python. Wenn Sie dies nicht getan haben, ist möglicherweise ein Fehler aufgetreten. Ohne das --prefix=/opt/pythonTeil zu liefern , können Sie die systemweite Installation überschreiben. Haben Sie diese Anweisungen genau befolgt?
Benjamin B.

Antworten:

20

Sie haben Python-Pakete installiert, die aktueller sind als die von Ihrer Distribution bereitgestellten. Beispielsweise haben Sie pythonVersion 2.7.10-1 installiert, aber Ihre Distribution hat nur Version 2.7.5-5ubuntu3.

APT stuft Pakete nur dann herunter, wenn Sie ausdrücklich dazu aufgefordert werden. Wenn Sie beispielsweise versuchen, ein Paket zu installieren, das von der genauen Version von Python abhängt, funktioniert es nicht, da das pythonPaket nicht heruntergestuft werden kann. apt-get --reinstall install pythonSchlägt sogar fehl, weil APT Python nicht auf 2.7.5 herunterstufen wird.

Um Ihr System reparieren zu können, müssen Sie APT erlauben, Downgrades durchzuführen. Definieren Sie dazu die APT-Einstellungen . Erstellen Sie eine Datei /etc/apt/preferences.d/allow-downgrademit

Package: *
Pin: release o=Ubuntu
Pin-Priority: 1001

Die Dateien in /etc/apt/preferences.d(plus /etc/apt/preferences) enthalten Prioritätserklärungen, die die Standardauswahl außer Kraft setzen, wenn mehrere Versionen eines Pakets verfügbar sind. Dies ist „die neueste Version aus der Zielverteilung bevorzugen“. Wenn Sie einem Paket eine Priorität über 1000 geben, wird es bevorzugt, auch wenn es eine ältere Version ist als ein Paket mit einer niedrigeren Priorität. Installierte Pakete haben die Priorität 500, damit das Paket von Ubuntu gewinnt. Weitere Informationen finden Sie unter:

man apt_preferences

Ich denke, sobald Sie diese Prioritäten festgelegt haben, können Sie ausführen

apt-get update
apt-get upgrade

um alle Pakete auf die Version in Ubuntu herunterzustufen (Pakete, die nicht in Ubuntu sind, werden nicht entfernt). Führen apt-get -f installSie auch eine andere Software aus und versuchen Sie nicht, sie zu installieren, bis dies erfolgreich abgeschlossen wurde.

Entfernen Sie die Voreinstellungsdatei, und führen Sie sie apt-get updateerneut aus, sobald ein Downgrade durchgeführt wurde.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Kennen Sie eine gute Ressource, in der ich mit apt etc. mehr über dieses Thema lesen kann? (Oder mit anderen Worten: Woher weißt du das?)
Make42
1
@ user49283 Ummm, unix.stackexchange.com/tags/apt und das Debian-Wiki (Link in Antwort)? Entschuldigung, das ist aus Erfahrung.
Gilles 'SO- hör auf böse zu sein'
@ Make42 man apt_preferences.
Faheem Mitha
0

Ich habe festgestellt, dass es nur einen Weg gibt, der funktioniert.

  1. Schritt 1: Laden Sie das Deb-Paket für Python 2.7 von hier herunter und installieren Sie es

    sudo dpkg -i <package-name>
  2. Verwenden Sie das Tool dbkg, um alle mit Python zusammenhängenden Informationen aufzulisten

    sudo dpkg -l | grep python
  3. entferne alles, was du oben gefunden hast

    sudo dpkg --purge --force-all Paketname

  4. Versuche es

    sudo apt upgrade

Am Ende erhalten Sie eine Liste der Pakete, die beschädigt sind. Entfernen Sie sie mit Schritt 3

  1. Wiederholen Sie die Schritte 3 bis 4, bis sudo apt upgrade keine Fehler mehr anzeigt

  2. Möglicherweise müssen Sie einen Symlink zu / usr / bin / python erstellen, indem Sie den Speicherort von Python 2.7 verwenden, das Sie als Deb-Paket installiert haben. ( locate bin/python) undln -s <path> /usr/bin/python

  3. In diesem Moment sollte Python behoben sein. Aber Do-Release-Upgrade (Lesen Sie das Handbuch für das Update auf das neueste Ubuntu, nicht LTS)

Stan Sokolov
quelle