Ich habe einen Raspberry PI, der CentOS 7 verwenden muss. Ich versuche auch, das Papirus eInk-Display zu verwenden (https://github.com/PiSupply/PaPiRus)
Die Installationsanweisungen für Treiber und Abhängigkeiten verwenden Apt-Get, aber CentOS verwendet YUM. Was ist die beste/einfachste Methode zum Installieren dieser Abhängigkeiten?
Ich habe Anweisungen zur Installation von Apt-Get unter CentOS gesehen, aber dort herrscht Konsens darüber, dass das keine gute Idee ist. YUM ist unter CentOS viel besser.
Antwort1
Dies ist ein komplexes Problem, da die beiden aus mehreren Gründen nicht kompatibel sind und daher die direkte Konvertierung von einem zum anderen im Allgemeinen sehr schwierig ist.
Ein wenig Hintergrund
apt
( apt-get
) ist ein Paketmanager zum Installieren von .dpkg
Paketen im Debian-Stil und deren Abhängigkeiten.
yum
ist ein Paketmanager zum Installieren von .rpm
Paketen im Red-Hat-Stil und deren Abhängigkeiten.
Bevor Sie überhaupt anfangen, die direkten Kompatibilitätsprobleme zwischen . dpkg
und .rpm
Dateien zu diskutieren, gibt es ein allgemeineres Problem, für das .dpkg
/ apt-get
Abhängigkeiten geklärt werden müssenRaspbian. Diese stimmen nicht mit den Abhängigkeiten für CentOS überein. Die beiden Betriebssysteme verwenden nicht nur unterschiedliche Paketnamen, sondern haben auch unterschiedliche Versionen der jeweiligen Pakete installiert. Das bedeutet, dass Sie sogar auf einem anderen Debian-ähnlichen Betriebssystem wie Ubuntu möglicherweise Probleme haben.
Kurz gesagt werden Ihnen die .dpkg
/ -Pakete unter CentOS nicht von Nutzen sein.apt-get
Zusätzliche Komplikation
Da das Paket, das Sie installieren möchten, Python-bezogen ist, gibt es einen dritten Paketmanager, den Sie kennen sollten:Pip. Dasdürfenkann zusammen mit yum installiert werden, aber denken Sie daran, dass Sie bei der Installation mit yum yum auch erlauben, diese Pakete zu aktualisieren, wenn neuere verfügbar werden. Mit pip müssten Sie pip regelmäßig bitten, zu aktualisieren, da yum das nicht für Sie erledigt.
Was kannst du tun?
Sie können versuchen, in der Befehlszeile zu suchen: zB yum search pil
. Aber ehrlich gesagt bevorzuge ich für diese Aufgabe Google. Es bietet Ihnen viel mehr Kontext für Synonyme von Paketnamen. Sie haben eigentlich keine andere Wahl, als die benannten Abhängigkeiten selbst durchzugehen und ähnliche Pakete für CentOS und/oder Pip zu finden. Dies wird viel Zeit bei Google in Anspruch nehmen, um die richtige Liste zu ermitteln.
Beispielsweise (vorausgesetzt, Sie installieren mit yum
und nicht pip
) die Anweisung:
sudo apt-get install python-pil python-smbus python-dateutil -y
Hier würde ich nach drei Dingen googeln:
- CentOS-Paket Python Pil
- CentOS-Paket Python SMBUS
- Centos-Paket Python Dateutil
Dies führte mich schließlich dazu, Pakete mit yum zu installieren:
yum install python-pillow i2c-tools-python python-dateutil
Beachten Sie, dass python-pil
wurde python-pillow
. Dies ist ein Fork desselben Pakets, wird aber hoffentlich kompatibel sein. Beachten Sie auch, dass python-smbus
wurde i2c-tools-python
. Dies scheint der korrekte Paketname auf Centos zu sein
Wenn Sie wirklich nicht das richtige Python-Paket als RPM finden können, müssen Sie möglicherweiseInstallieren Sie es mit pip.
Wenn das nicht funktioniert
Wie ich bereits erwähnt habe, stimmen die Paketversionen möglicherweise nicht überein, was bedeutet, dass Abhängigkeiten fehlschlagen. Wenn Sie alles installiert haben, was Sie können, und es immer noch nicht funktioniert. Ihr nächster Schritt sollte sein, zu den Software-Betreuern (auf GitHub) zurückzukehren und sie zu fragenhöflich, wenn sie Mitteum Ihnen zu helfen, die CentOS-Abhängigkeiten herauszufinden.
Antwort2
Ich nehme an, dass Ihnen folgender Teil Probleme bereitet:
# Install dependencies
sudo apt-get install git bc i2c-tools fonts-freefont-ttf whiptail make gcc -y
# For Python 2
sudo apt-get install python-pil python-smbus python-dateutil -y
# For Python 3
sudo apt-get install python3-pil python3-smbus python3-dateutil -y
Zunächst würde ich vorschlagen, sicherzustellen, dass epel-release installiert ist (ein zusätzliches Repository für Yum):
yum -y install epel-release
Jetzt können Sie für jedes dieser Pakete nach einem Äquivalent suchen und es installieren: zum Beispiel:
yum search i2c
gab mir:
i2c-tools.x86_64 : A heterogeneous set of I2C tools for Linux
i2c-tools-eepromer.x86_64 : Programs for reading / writing i2c / smbus eeproms
i2c-tools-python.x86_64 : Python bindings for Linux SMBus access through i2c-dev
Glücklicherweise hat das Paket den gleichen Namen. Daher kann ich Folgendes ausführen:
yum install i2c-tools
Wenn Sie Glück haben, sind alle Paketnamen gleich. Es ist jedoch möglich, dass einige davon unterschiedlich sind. Probieren Sie es einfach aus :)