Fix: Python-Fehler bei Ubuntu Upgrade

  • strict warning: Non-static method view::load() should not be called statically in /usr/share/nginx/www/drupal/sites/all/modules/views/views.module on line 1113.
  • strict warning: Declaration of views_handler_field::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_field.inc on line 0.
  • strict warning: Declaration of views_handler_field_user::init() should be compatible with views_handler_field::init(&$view, $options) in /usr/share/nginx/www/drupal/sites/all/modules/views/modules/user/views_handler_field_user.inc on line 0.
  • strict warning: Declaration of views_handler_argument::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_argument::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_relationship::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_relationship.inc on line 0.
  • strict warning: Declaration of views_plugin_query::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_query.inc on line 0.
  • strict warning: Declaration of views_plugin_argument_validate::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_argument_validate.inc on line 0.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_row.inc on line 0.

Momentan nutze ich zwar sogut wie keine Gnome-Oberfläche (da ich dem wmii-Windw-Manager verfallen bin), wollte aber dennoch mein Ubuntu-Grundsystem von Version 9.04 auf die eben erschienene Version 9.10 aktualisieren. Dazu gibt es verschiedene Wege, bber keiner funktionierte bei mir auf Anhieb. Egal ob man den grafischen Update-Manager (System > Administration > Update Manager oder sudo update-manager) oder ein Upgrade auf der Konsole mittels sudo do-release-upgrade bemüht, letztendlich werden die apt-Programme immer eine Rolle spielen. Dazu zählt z. B. auch dpkg und oft sind es Python-Scripte die in diesem Zusammenhang ausgeführt werden.

Leider hatte ich einige Zeit lang Probleme mit Python und diverse Fehler versperrten die Verwendung mancher Tools und auch das Upgrade wurde verweigert.

1. python-apt

Lange quälte mich folgende Meldung (ohne Trace):

ImportError: No module named apt

Nun meinte die Packetverwaltung, dass python-apt aber installiert sei und auch eine reinstallation des Packets führte nicht zum Ergebnis. Wie sich später herausstellte war das Packet aber nur für Python 2.5 installiert und nicht im verwendeten Python 2.6. Abhilfe wurde durch eine Diskussion bei ubuntuforums.org gebracht: Die Datei "/var/lib/dpkg/status" muss bearbeitet werden:
sudo gedit /var/lib/dpkg/status

Darin muss dann der Eintrg zum Packet phython-apt manuell entfert werden, bei mir sah der Abschnitt folgendermaßen aus:
Package: python-apt
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 3268
Maintainer: APT Development Team <deity@lists.debian.org>
Architecture: amd64
Version: 0.7.91
Provides: python2.4-apt, python2.5-apt, python3.1-apt
Depends: python (<< 3.2), python (>= 2.4), python-central (>= 0.6.11), libapt-inst-libc6.9-6-1.1, libapt-pkg-libc6.9-6-4.7, libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.2.1), lsb-release
Recommends: iso-codes, libjs-jquery
Suggests: python-apt-dbg, python-gtk2, python-vte
Breaks: debdelta (<< 0.28~)
Description: Python interface to libapt-pkg
 The apt_pkg Python interface will provide full access to the internal
 libapt-pkg structures allowing Python programs to easily perform a
 variety of functions, such as:
 .
  - Access to the APT configuration system
  - Access to the APT package information database
  - Parsing of Debian package control files, and other files with a
    similar structure
 .
 The included 'aptsources' Python interface provides an abstraction of
 the sources.list configuration on the repository and the distro level.
Python-Version: 2.4, 2.5, 3.1

Anschließend muss das nun (scheinbar) fehlende Packet komplett neu installiert werden:
sudo apt-get update
sudo apt-get upgrade -f

Damit war nun python-apt auch in Version 2.6 verfügbar.

2. Python default version

Die nächsten Steine wurden durch eine anscheinend falsch konfigurierte Defaultversion von Python in den Weg gelegt. Versin 2.5 und 2.6 von Python sind installiert und /usr/bin/python zeigte auf Version 2.5. Folgender Fehler wurde mir präsentiert:

$ sudo do-release-upgrade
Checking for a new ubuntu release
Done Upgrade tool signature
Done Upgrade tool
Done downloading            
extracting 'karmic.tar.gz'
authenticate 'karmic.tar.gz' against 'karmic.tar.gz.gpg'

Reading cache

Checking package manager

Can not upgrade

Your python install is corrupted. Please fix the '/usr/bin/python'
symlink.

Änderte ich den SymLink so, dass er auf Python 2.6 zeigte, waren andere Fehler die Folge. Aber anscheinend war der SymLink kein Problem mehr:
'module' object has no attribute '_COMPAT_0_7'

Der entscheidente Hinweis war auf ubuntugeek.com zu finden: Man sollte sicher stellen, dass der SymLink /usr/bin/python auf die selbe Version zeigt, die in der Datei /usr/share/python/debian_defaults angegeben ist. In der Tat, sah der Inhalt der Datei bei mir folgendermaßen aus:
[DEFAULT]
# the default python version
default-version = python2.5

# all supported python versions
supported-versions = python2.5, python2.6

# formerly supported python versions
old-versions = python2.3, python2.4

# unsupported versions, including older versions
unsupported-versions = python2.3, python2.4

Die Lösung bestand nun darin den /usr/bin/python-SymLink auf Version 2.6 zu setzen und in der eben gezeigten Datei die Defaultversion auf python2.6 zu ändern.

Die nun behobenen Python-Probleme waren auch der Grund warum das Update-Script der Alternate-CD seinen dienst mit folgender Meldung beendete:

Could not find the upgrade application archive, exiting

Nun werkelt das Update-Script und alles scheint zu klappen :-).

Momentan nutze ich zwar sogut wie keine Gnome-Oberfläche (da ich dem wmii-Windw-Manager verfallen bin), wollte aber dennoch mein Ubuntu-Grundsystem von Version 9.04 auf die eben erschienene Version 9.10 aktualisieren. Dazu gibt es verschiedene Wege, bber keiner funktionierte bei mir auf Anhieb. Egal ob man den grafischen Update-Manager (System > Administration > Update Manager oder sudo update-manager) oder ein Upgrade auf der Konsole mittels sudo do-release-upgrade bemüht, letztendlich werden die apt-Programme immer eine Rolle spielen.

Trackback URL for this post:

https://blog.voodoo-arts.net/trackback/42
cool, vielen Dank für die

cool, vielen Dank für die Ausführung...Mich würde übrigens interessieren, wie man es schafft, sich in diesen ganzen Dingen so gut auszukennen. Ist das nur reines Hobby?

Submitted by Immobilien Neuss (not verified) on Mon, 2009-11-09 09:41.
Freut mich, wenn es etwas

Freut mich, wenn es etwas gebracht hat. Um ehlich zu sein, in den meisten Fällen eigne ich mir das Wissen erst kurze Zeit vorm Schreiben an. Grundsätzlich bastel ich sehr gern an kleinen Problemen herum, will aber die Lösung nicht vergessen und dokumentiere hier meine Erkentnisse. Bedingt durch mein Studium (Informatik) ist das alles nicht nur Hobby, aber irgendwie bedingt es sich gegenseitig :-).

Submitted by tom on Tue, 2009-11-10 22:35.

Tags for Fix: Python-Fehler bei Ubuntu Upgrade