2014-01-17 15 views
11

Für unsere Prod-Apps verwalten wir alle Pakete in RPM. In einer perfekten yum-only Welt ist das in Ordnung.Verwalten von Pip in einer RPM-Umgebung

Jede Sprache oder jedes Framework stellt jedoch in letzter Zeit eigene Paketmanager bereit. Für Python beispielsweise benutze ich fast immer pip und muss dann die Pakete für die rpm wieder aufbauen, wenn ich in Produktion gehe. Gleiches gilt für npm oder Edelsteine.

Ist das ein Problem, dem viele Leute hier begegnen? Was ist der beste Weg, all dies zu vermeiden? Beschäftigen sich die Leute damit, indem sie alles aufsaugen und alles manuell verpacken, oder gibt es einen automatisierten Weg, sie zu integrieren?

Ich würde gerne darüber Gedanken hören.

Antwort

8

Ich habe pyp2rpm verwendet, um RPM-Paket für rstr Modul zu bauen, und ich mag nicht zufällig Installationen einiger Dateien über pip auch:

pyp2rpm -n rstr > ~/rpmbuild/SPECS/rstr.spec 
rpmbuild -ba ~/rpmbuild/SPECS/rstr.spec 

aber ich weiß nicht, ob das gut genug ist für Ihre Produktionsnutzung.

+0

Großartig. Ich musste mit der Tatsache umgehen, dass RPM auf EL6 __python2 Makro nicht definiert, aber ansonsten hat es perfekt funktioniert. – cababunga

1

Ich bevorzuge die Installation auf eine andere Sitelib als das Standardsystem eins. Daher mache ich:

$ pip install --user django 

Weit davon entfernt, ideal, nicht mit DNF/rpm/yum spielt aber zugleich verwirrt nicht mit Ihrem System-Module. Und Sie können sie löschen, wann immer Sie wollen.

1

Sie können fpm installieren: https://github.com/jordansissel/fpm

Effing Paketverwaltung! Erstellen Sie Pakete für mehrere Plattformen (deb, rpm, etc) mit großer Leichtigkeit und Vernunft. http://fpm.readthedocs.io/en/latest/

Als nächstes können Sie laufen:

$ fpm -s python -t rpm pyramid 
no value for epoch is set, defaulting to nil {:level=>:warn} 
no value for epoch is set, defaulting to nil {:level=>:warn} 
Created package {:path=>"python-pyramid-1.9a2-1.noarch.rpm"} 

-s Quelltyp
-t Art von Paket
und als letzten Parameter der Name des Pakets

https://fpm.readthedocs.io/en/latest/source/python.html

zu erstellen