"owned by OS" bei upgrade versuch (debian)

Probleme bei der Installation?
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

Hallo =(

Mir ist der ganze Linux-Befehlszeilen Kram einfach zu hoch und es ist ein einziges Wirrwarr :(

Ausgangssituation:
Debian 8.1 mit Python 2.7 und Python 3.4.3 installiert. Mit "pip ..." wird 2.7 verwendet und mit "pip3.4 ..." wird python 3.4.3 verwendet, der Ordner heißt Python3.
Wie ich damals genau python und pip usw installiert habe, kann ich nicht mehr sagen.

Problem:
Sogut wie jeder "pip upgrade" Befehl wird mit der "owned by OS" Fehlermeldung ignoriert.
So würde ich gerne zb

Code: Alles auswählen

pip install --upgrade setuptools
ausführen, aber ich bekomme halt:

Code: Alles auswählen

Downloading/unpacking setuptools from https://files.pythonhosted.org/packages/66/e8/570bb5ca88a8bcd2a1db9c6246bb66615750663ffaaeada95b04ffe74e12/setuptools-40.2.0-py2.py3-none-any.whl#sha256=ea3796a48a207b46ea36a9d26de4d0cc87c953a683a7b314ea65d666930ea8e6
  Downloading setuptools-40.2.0-py2.py3-none-any.whl (568kB): 568kB downloaded
Installing collected packages: setuptools
  Found existing installation: setuptools 5.5.1
    Not uninstalling setuptools at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed setuptools
Cleaning up...
Nach stundenlangem Googlen bin ich auf diverse Vorschläge zur Lösung des Problems gestoßen. Doch bei allen Lösungsvorschlägen gab es auch wieder Einwände von anderen Usern, dass es hier und da und dort wiede rneue Probleme verursacht usw usf (zb uninstall und neu installieren). Ich als jemand der davon nun garkeine Ahnung hat, ist jetzt einfach nur super verwirrt und befürchte ich egal was ich mache, ich mache nur noch mehr kaputt.
Angeblich hängt es wohl mit den verschiedenen Möglichekiten zusammen, wie Dinge installiert werden können. Einmal apt-get, dann pip und easy_install. Mal wird was ins usr/bin und mal in usr/local/bin gelegt oderso.

Was ich nun brauche:
Bitte sagt mir, dass ihr eine verständliche und leichte Aneleitung für Dummies habt, wie ich jetzt 100% korrekt und ohne neue Fehler:
1) Rausfinden kann, was bei meiner Installation schiefgegangen ist, bzw für dieses Durcheinander gesorgt hat
2) Anhand von 1) dann die genaue Lösung des Problems mit Schritt für Schritt durchführen kann

LG
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Scholastik: Das ist ja nicht wirklich eine Fehlermeldung sondern sagt nur das ein in `/usr/lib/python2.7/dist-packages` nicht deinstalliert wurde, weil das zum Betriebssystem gehört. Das ist ganz normal. Deine Installation mit ``pip`` sollte nach `/usr/local/lib/python2.7/dist-packages` erfolgt sein, und das sollte vor dem vom Betriebssystem im Suchpfad kommen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

okay danke, das klingt als gäbe es eine einfache Lösung?

Klingt als müsste ich irgendwo die Reihenfolge von aufgelisteten Pfaden ändern? Wo und wie mache ich das genau?
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Scholastik: Das müsstest Du eigentlich gar nicht tun müssen. Keine Ahnung was da bei Dir kaputt (gegangen) ist.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

liegt es vielleicht am "user scheme" ? https://packaging.python.org/guides/ins ... ian-ubuntu

Oder wie kann ich denn rausfinden was genau die Lage ist, damit ihr mir besser helfen könnt?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Benutz doch einfach ein virtualenv. Das sollte installierbar sein per paketmanager, und IN deinem venv kannst du zb setuptools und alles andere upgraden.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Scholastik: das Paket wurde für Deinen Nutzer installiert, es existiert aber auch eine globale Installation. Das ist aber normalerweise kein Problem, weil Importe erst im Nutzerverzeichnis gesucht werden.

Wo hast Du also ein Problem? Zeig doch mal die Fehlermeldung, wenn Du versuchst, Setuptools zu benutzen.
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

Obergeordnetes Ziel ist es aktuell "signalr-client" zu installieren https://github.com/TargetProcess/signalr-client-py
(In den Installationsanweisungen steht schon was drin, dass es bei Debian und gevent etwas zu beachten gäbe, vllt ist das auch die Ursache der folgendenen Meldung.)

Dies produziert eine Fehlermeldung und googlen da nach wirft sehr oft die Empfehlung auf, dass die Setuptools veraltet seien und aktualsisiert werden sollten.
Die Fehlermeldung kommt auch für python 2.7.

Code: Alles auswählen

root@MainServer:~# pip3.4 install signalr-client
Downloading/unpacking signalr-client
  Downloading signalr_client-0.0.7-py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python3/dist-packages (from signalr-client)
Requirement already satisfied (use --upgrade to upgrade): websocket-client in /usr/local/lib/python3.4/dist-packages/websocket_client-0.35.0-py3.4.egg (from signalr-client)
Downloading/unpacking gevent (from signalr-client)
  Downloading gevent-1.3.6.tar.gz (4.5MB): 4.5MB downloaded
  Running setup.py (path:/tmp/pip-build-2w31ic1x/gevent/setup.py) egg_info for package gevent
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip-build-2w31ic1x/gevent/setup.py", line 418, in <module>
        run_setup(EXT_MODULES, run_make=_BUILDING)
      File "/tmp/pip-build-2w31ic1x/gevent/setup.py", line 402, in run_setup
        "signal_os_incompat = gevent.monkey:_subscribe_signal_os",
      File "/usr/lib/python3.4/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 262, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 287, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/lib/python3/dist-packages/pkg_resources.py", line 603, in resolve
        requirements = list(requirements)[::-1]
      File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2721, in parse_requirements
        "version spec")
      File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2697, in scan_list
        raise ValueError(msg, line, "at", line[p:])
    ValueError: ("Expected ',' or end-of-list in", "cffi >= 1.11.5 ; sys_platform == 'win32' and platform_python_implementation == 'CPython'", 'at', " ; sys_platform == 'win32' and platform_python_implementation == 'CPython'")
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/tmp/pip-build-2w31ic1x/gevent/setup.py", line 418, in <module>

    run_setup(EXT_MODULES, run_make=_BUILDING)

  File "/tmp/pip-build-2w31ic1x/gevent/setup.py", line 402, in run_setup

    "signal_os_incompat = gevent.monkey:_subscribe_signal_os",

  File "/usr/lib/python3.4/distutils/core.py", line 108, in setup

    _setup_distribution = dist = klass(attrs)

  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 262, in __init__

    self.fetch_build_eggs(attrs['setup_requires'])

  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 287, in fetch_build_eggs

    replace_conflicting=True,

  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 603, in resolve

    requirements = list(requirements)[::-1]

  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2721, in parse_requirements

    "version spec")

  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2697, in scan_list

    raise ValueError(msg, line, "at", line[p:])

ValueError: ("Expected ',' or end-of-list in", "cffi >= 1.11.5 ; sys_platform == 'win32' and platform_python_implementation == 'CPython'", 'at', " ; sys_platform == 'win32' and platform_python_implementation == 'CPython'")

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-2w31ic1x/gevent
Storing debug log for failure in /root/.pip/pip.log

@_deets_: Habe mir mal diese Seite angeschaut: https://wiki.ubuntuusers.de/virtualenv/ doch das klingt viiiel zu kompliziert für mich, mit der Anwendung würde ich sicherlich nicht klarkommen.
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

@Scholastik: Mit `pipenv` sind virtuelle Umgebungen sehr einfach geworden (Die 3.7 entsprechend mit einer installierten Pythonversion ersetzen):

Code: Alles auswählen

/tmp/signalr-test » pipenv --python 3.7
[...]
/tmp/signalr-test » pipenv install signalr-client
[...]
Installing collected packages: certifi, idna, chardet, urllib3, requests, greenlet, gevent, six, sseclient, websocket-client, signalr-client
Successfully installed certifi-2018.8.24 chardet-3.0.4 gevent-1.3.6 greenlet-0.4.15 idna-2.7 requests-2.19.1 signalr-client-0.0.7 six-1.11.0 sseclient-0.0.19 urllib3-1.23 websocket-client-0.52.0

Adding signalr-client to Pipfile's [packages]...
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (ac2e8b)!
Installing dependencies from Pipfile.lock (ac2e8b)...
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 11/11 — 00:00:02
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
pipenv install signalr-client  18,82s user 2,18s system 77% cpu 27,116 total
/tmp/signalr-test »
Davor muss `pipenv` mit `pip`(oder besser über den Distributions-Paketmanager) installiert werden.

Der Hinweis auf Debian bedeutet, dass auf debianbasierten Systemen jeweils `python-dev` oder `python3-dev` installiert sein muss.
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

Also gibt es keine Lösung ohne virtual environments?
Wäre es vllt sogar das Beste, alles nochmal neu aufzusetzen und diesmal gleich nur mit pipenv zu arbeiten?

Ich brauch aber leider eine Schritt für schritt Anleitung für alles. Und dummerweise kann ich nicht beurteilen wie gut diese Anleitung ist. Ich bin für die Einrichtung meines aktuellen Systems bereits nur solchen Anleitung gefolgt, aber es ist ja scheinbar dennoch Murks bei rausgekommen.

Ich würde es also eig schon gerne vermeiden nochmal alles neu machen zu müssen, zumal das auch wieder eine ganze Woche dauern wird, bis endlich wieder alles so läuft, wie es das aktuell tut =/

edit:
Gibts unter Debian 8.1 denn eine Möglichkeit, wie ich alles python-spezifische entferne? So müsste ich "nur" was python betrifft alles neu machen und nicht auch noch die komplette Debian Einrichtung.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Scholastik: die Frage ist eigentlich nur, warum ~/.local/python im Suchpfad nicht oder hinter /usr/lib/python3/dist-packages steht? Oder hast Du setuptools gar nicht für Python3 installiert?

Warum willst Du eigentlich setuptools nur als User installieren? Ich vermute mal, Du wolltest eigentlich

Code: Alles auswählen

sudo python3 -m pip install --upgrade setuptools
aufrufen.
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

Sirius3 hat geschrieben: Samstag 8. September 2018, 14:46 @Scholastik: die Frage ist eigentlich nur, warum ~/.local/python im Suchpfad nicht oder hinter /usr/lib/python3/dist-packages steht? Oder hast Du setuptools gar nicht für Python3 installiert?

Warum willst Du eigentlich setuptools nur als User installieren? Ich vermute mal, Du wolltest eigentlich

Code: Alles auswählen

sudo python3 -m pip install --upgrade setuptools
aufrufen.
Aber den Suchpfad ändern kann ich nicht?
Dein Befehl hat dasselbe Ergebnis und install sagt es ist installiert.

Code: Alles auswählen

root@MainServer:~# sudo python3 -m pip install --upgrade setuptools
Downloading/unpacking setuptools from https://files.pythonhosted.org/packages/66/e8/570bb5ca88a8bcd2a1db9c6246bb66615750663ffaaeada95b04ffe74e12/setuptools-40.2.0-py2.py3-none-any.whl#sha256=ea3796a48a207b46ea36a9d26de4d0cc87c953a683a7b314ea65d666930ea8e6
  Downloading setuptools-40.2.0-py2.py3-none-any.whl (568kB): 568kB downloaded
Installing collected packages: setuptools
  Found existing installation: setuptools 5.5.1
    Not uninstalling setuptools at /usr/lib/python3/dist-packages, owned by OS
Successfully installed setuptools
Cleaning up...

root@MainServer:~# pip3.4 install setuptools
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python3/dist-packages
Cleaning up...
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Eine Venv ist meiner Meinung nach einfacher, als das Problem mit der nicht gefundenen aktuellen Version der `setuptools` (aus der Ferne) zu lösen. Und da das Systempython die Venv nicht beeinflusst, gibt es auch nicht wirklich einen Grund, alles neu zu machen.

Was gibt `python3 -c 'import sys; print(sys.path)'` aus?

Hast du es mit Pipenv denn mal probiert? Mit den zwei (bzw. drei) Befehlen aus meinem letzten Post?

Code: Alles auswählen

# In einem sinnvoll gewählten Projektverzeichnis
python3 -m pip install pipenv
pipenv --python 3.4
pipenv install signalr-client
Du solltest übrigens nicht als root arbeiten, wenn du es nicht unbedingt brauchst. Ein `pip install` sollte auch als normaler Nutzer funktionieren. (Eventuell ist das auch die Lösung...) Und wenn du Rootrechte brauchst, dann solltest du `sudo` benutzen.

Eine Schritt-für-Schritt-Anleitung für alles wird wahrscheinlich nicht zu finden sein. Es ist mittelfristig einfacher, selbst genug zu lernen, dass man keine Schritt-für-Schritt-Anleitungen mehr braucht. Oder dass man wenigstens die Qualität davon beurteilen kann.
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

@narpfel:
Der print befehl gibt aus:

Code: Alles auswählen

['', '/usr/local/lib/python3.4/dist-packages/pusherclient-0.3.0-py3.4.egg', '/usr/local/lib/python3.4/dist-packages/websocket_client-0.35.0-py3.4.egg', '/usr/lib/python3/dist-packages', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/root/.local/lib/python3.4/site-packages', '/usr/local/lib/python3.4/dist-packages']
Ok, dann öffne ich mich mal dem pipenv Thema:
Ich würde dann gerne direkt Python 3.6 damit installieren (3.7 noch nicht nehmen,oder?) und alles auf den neusten Stand haben.
- Doch du schreibst ich installiere es mit "pip", doch pip gehört doch bereits zu der "vermurksten" Python Installation, das ist doch keine gute Idee das dann zu verwenden, oder?
- auch das mit dem Projektverzeichnis musst du mir erklären (wo/wie erstelle ich das), bitte keine Schritte auslassen, sonst vermurkse ich es nur noch mehr =(
- und wie nutze ich das dann später explizit in meinen Python Skripten? Ich nehme mal an die Skripte selbst ändern sich nicht, sondern die art wie ich sie starte. Aktuell starte ich meine Skripte in Debian über einen "service" , also eine Main.service in der drin steht:

Code: Alles auswählen

[Unit]
Description=Main

[Service]
Type=simple
ExecStart=/usr/bin/python3.4 /MainAll.py
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
Das Skript selbst liegt direkt im obersten root Ordner.
ich nehme an die ExecStart Zeile müsste ich dann auf den Ordner mit der v.env. setzen?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Weder pip und virtualenv alleine noch die Kombination mit pipenv kann die Python Version ändern. Wenn du 3.6 willst (3.7 ist released, kannst du also auch nehmen) musst du die selbst installieren.

Wo du irrst ist, dass die bestehende Installation ein Problem darstellt. Normalerweise nicht. Virtualenv isoliert dich von anderen Paketen. Sofern der python Interpreter nicht total verfummelt ist, ist alles gut.
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

__deets__ hat geschrieben: Samstag 8. September 2018, 17:43 Weder pip und virtualenv alleine noch die Kombination mit pipenv kann die Python Version ändern. Wenn du 3.6 willst (3.7 ist released, kannst du also auch nehmen) musst du die selbst installieren.

Wo du irrst ist, dass die bestehende Installation ein Problem darstellt. Normalerweise nicht. Virtualenv isoliert dich von anderen Paketen. Sofern der python Interpreter nicht total verfummelt ist, ist alles gut.
dann erschließt sich mir der Sinn einer v.env nicht so richtig. Ich weiß aus eigener Erfahrung, dass es eine riesige Katastrophe geben kann, wenn man sich nicht perfekt auskennt und python 2, python 3 und vllt noch andere python installationen wie python anaconda oder wie das heißt, installiert. Das gibt ein einziges wirrwar. Daher dachte ich jetzt, dass nun also python direkt in so eine v. env. rein installiere und so alles gut ist (und python getrennt vom OS ist)

Warum es hilfreich sein sollte installierte Module voneinander zu trennen, sehe ich nicht, was ja dann der einzige Sinn von v. env zu sein scheint?

Daher werd ich mich auch hüten auf dem System wo nun schon 2.7 und 3.4 "vermurkst" sind, auch noch python 3.6 (3.7) zu installieren... Dann lieber erstmal alles python spezifische deinstallieren und nur 3.6 (oder 3.7) installieren und sonst nichts.
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

Immerhin habe ich eine offizielle Antwort gefunden, dass sich signalr-client wegen gevent und wegen setuptools nicht installieren lässt:
http://www.gevent.org/install.html
If you see ValueError: ("Expected ',' or end-of-list in", "cffi >= 1.11.5 ; sys_platform == 'win32' and platform_python_implementation == 'CPython'", 'at', " ; sys_platform == 'win32' and platform_python_implementation == 'CPython'"), the version of setuptools is too old. Install a more recent version of setuptools.
Bleibt also weiterhin die Frage offen, wie ich setuptools upgrade =(
Oder wie ich alle versionen von python deinstalliere und dann sauber und korrekt mit funktionierenden upgrades die neuste python version installiere...
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

@Scholastik: Venvs sind genau dazu da, das Problem zu lösen, das du gerade hast: Du möchtest ein Paket in einer bestimmten Version installieren. In deinem Fall `setuptools`. Problem: Setuptools ist bereits installiert, aber in einer anderen Version als von dir gewünscht/gebraucht. Und irgend ein anderes Paket/Modul hängt von der älteren Version ab. Ergo: Du möchtest zwei verschiedene Versionen gleichzeitig haben. Das geht, indem du die neue (die nur von `signalr-client`benötigt wird) in eine Venv installierst.

Wenn du ein anderes Python als 2.7 oder 3.4 nutzen möchtest, musst du entweder auf Debian stable aktualisieren (potentiell nervig) oder das andere Python an der Paketverwaltung vorbei installieren. Etwa wie hier bei ubuntuusers.de beschrieben. Python 3.7 ist im Prinzip kein Problem, wenn alle verwendeten Module es unterstützen.

Alles, was mit Python zusammenhängt, zu deinstallieren, wird nicht möglich sein, weil die Debian-Basisinstallation an sich auch von Python abhängt. Sollte aber auch nicht nötig sein, weil verschiedene Python-Versionen nebeneinander existieren können, ohne sich zu stören.

Mit dem Projektverzeichnis ist das Verzeichnis gemeint, in dem dein Projekt gespeichert ist. Pipenv ordnet jedem Verzeichnis, in dem eine Datei mit dem Namen `Pipfile` existiert, eine eigene Venv zu. Wenn du dein Programm dann mit systemd starten möchtest, musst du dementsprechend das Arbeitsverzeichnis in der Service Unit auf das Projektverzeichnis setzen.

Hintergrundlektüre: http://pipenv.org
Scholastik
User
Beiträge: 53
Registriert: Freitag 7. Juli 2017, 12:35

@narpfel: Naja, so ganz korrekt ist dein erster Absatz nicht. Ich will und brauche nur die aktuellste setuptools. Doch OS lässt mich nichts aktualisieren. Auch pip und andere (vermutlich auf debian vorinstallierte) Dinge lassen sich nicht aktualisieren. Wundert mich, dass Debian zwanghaft die veraltete Version will bzw warum es nicht standardmäßig möglich ist, neuere Versionen ohne v.env zu nutzen, während das OS seine alte version behalten kann.

Naja, ich hab jedenfalls erstmal genug davon...
Ich habe mir nun stattdessen "signalr-clients-threads" installiert, das kommt ohne gevent aus und ist hoffentlich kein so großer performance verlust.

Dennoch würde ich mich noch über eine Anleitung freuen, wie ich beim nächsten mal wenn ich Debian neu installiere, sicherstelle, dass alles seine Ordnung hat und upgradebar ist, ohne v.env nutzen zu müssen. Denn entweder ist es auf debian immer so dass ich nichts von den vorinstallierten Dingen upgraden kann, oder ich habe bei der Installation Mist gebaut. Aktuell halte ich beides für gleich wahrscheinlich.
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Hast du es denn mal versucht, `setuptools` als normaler Benutzer mit `pip` zu installieren? Das sollte eigentlich auch dann funktionieren, wenn `setuptools` über den Paketmanager installiert ist.

Es mag sein, dass du nur das aktuellste `setuptools` willst, aber andere Python-Pakete (die über den Paketmanager der Distribution installiert sind) können vom alten `setuptools` abhängen. Wenn nichts von `python3-setuptools` abhängt, dann kannst du das einfach deinstallieren und die neue Version mit `pip` installieren.

Deine Anleitung ist der Wiki-Artikel von Ubuntuusers, den ich verlinkt habe. Wenn du komplett unabhängig vom Paketmanager der Distribution sein willst, musst du alles selber installieren.
Antworten