Libreoffice Abhängigkeiten

Fönwelle

Well-Known Member
Hey,

ich habe mir gerade mit viel Mühe meinen Drucker unter FreeBSD installiert. Voraussetzung dafür war unter anderem, dass ich mir gutenprint-cups 5.2.12 installiere, weil da mein Druckertreiber drin ist.

Jetzt wollte ich mir LibreOffice installieren und siehe da, in den Abhängigkeiten will er mir gutenprint 5.2.10 drüberbrezeln. Natürlich habe ich Angst, dass ich mir mein mühselig erstelle Druckerkonfiguration kille.

Könnt ihr mir sagen, wie ich LibreOffice (oder auch jedes andere Prog, dass gutenprint voraussetzt) installieren kann, ohne mir ein "altes" gutenprint unterzujubeln???
 
Hallo,
erstmal natuerlich wuerd ich die Dateien sicher die Du bearbeitet hast. Falls doch was schief geht. Und dann evtl. pkg lock -x gutenprint-cups
 
pkg lock -x gutenprint-base habe ich probiert (nicht -cups war das Problem, sondern -base), aber es wurde mir trotzdem die alte Version drübergespielt und Cups maulte erstmal, dass es den Druckertreiber nicht mehr findet. Ich habs dann auf die Brutale gemacht und zum Schluss die neue gutenprint-base-Version einfach auch wieder drüberinstalliert. Es funzt alles:D
 
Bis zum nächsten Update! Wenn man die Ports selber kompilieren möchte, sollte man sich die gleiche Version auschecken, die aktuell von PKG verwendet wird. Grundsätzlich ist das mischen von PKG und Ports möglich aber nicht wirklich sinnvoll. Alle 3 Monate gibt es einen neuen Quartals-Branch [1]. PKG verwendet immer den aktuellen Quartals-Branch. Die Ports können aber neuer sein.

Gruss

[1] https://svnweb.freebsd.org/ports/branches/
 
Eine andere Möglichkeit wäre es noch, sich die selbstgebaute gutenprint-base 5.2.12 Version als pkg zu sichern, dazu kann man aus dem selbstgebauten auch im nachhinein noch ein eigenes pkg erstellen, so lange es auf dem System installiert ist und nicht ersetzt wurde:
Code:
pkg create -x 'gutenprint-base'
 
@foxit: Danke für die Informationen. Ich bin noch ziemlich unbedarft, was pkg und Ports angeht. Aktuell bin ich froh, dass ich die Sachen installiert bekomme, die ich haben will. Das geht ja zum Glück ziemlich einfach. Meistens verwende ich pkg, weil das für einen Anfänger noch ein wenig einfacher ist und außerdem auf meinem alten Testrechner auch ein wenig schneller geht, als mit der Kompilierung über Ports (ich habe xorg mal über den Port gezogen... endlos!). Wie ich mir über Ports was installiere und dann die erforderliche gutenprint-version selbst dazu packe, ist mir momentan noch etwas zu hoch. Dazu muss ich mich mit dem Thema erst noch intensiver befassen.

@Fusselbär: Danke für den Hinweis. Ein Package habe ich noch nicht selbst gebaut. Die nötige gutenprint-Version habe ich jetzt als entzipptes Verzeichnis in meinem home und kann es von da aus ggf. kompilieren. Macht denn das Bauen des Packages noch andere Vorteile, die ich momentan nicht sehe? Mal abgesehen, dass ich vermute, dass das Package weniger Platz braucht als die Sourcen?
 
dass das Package weniger Platz braucht als die Sourcen?
es ist schneller wieder installiert. Und, ein pkg lock sollte funktionieren. Wenn es das bei dir nicht hat, dann, hattest du das Kommando womöglich falsch benutzt.
Deshalb möchte ich das als Beispiel nochmal zeigen, vorab aber anmerken, dass bei mir offenbar nicht print/cups-base, sondern print/cups installiert ist. Ich weiß nicht den Unterschied oder was cups-base anders macht oder was es überhaupt ist, wenn ich ehrlich sein soll.
Zunächst wollte ich finden, was ich locken soll, dann locke ich das und unlocke es sofort wieder:
Code:
pit@senyo /home/pit:-# pkg version | grep cups
cups-2.2.1                         =
cups-filters-1.11.4                =
cups-pdf-2.6.1_4                   =
gutenprint-cups-5.2.10_3           =
pit@senyo /home/pit:-# pkg lock cups-2.2.1
cups-2.2.1: lock this package? [y/N]: y
Locking cups-2.2.1
pit@senyo /home/pit:-# pkg lock -l
Currently locked packages:
cups-2.2.1
ffmpeg-3.2.2_2,1
pulseaudio-9.0_3
sane-backends-1.0.25
pit@senyo /home/pit:-# pkg unlock cups-2.2.1
cups-2.2.1: unlock this package? [y/N]: y
Unlocking cups-2.2.1
pit@senyo /home/pit:-# pkg lock -l
Currently locked packages:
ffmpeg-3.2.2_2,1
pulseaudio-9.0_3
sane-backends-1.0.25
Kannst du das nachvollziehen? War das bei dir auch so und trotzdem wurde das gelockte Paket ersetzt?
 
Hi,

ja ich glaube, jedenfalls, ich verstehe. Zu diesem -base-Dingens: das ist nicht bei cups sondern bei gutenprint und da sind die Druckertreiber drinne. In der Version 10_3, die ich auch zuerst hatte, war der Treiber für meinen Drucker noch nicht drin (er ist noch experimental). Deswegen brauchte ich die .11 bzw. die .12, die ich mir als tarball runtergezogen hatte.

Das mit dem pkg lock hat bei mir offensichtlich nicht funktioniert. Bei dir erscheint da auch eine Nachfrage und dann eine Bestätigung. Ich kann mich erinnern, dass das bei mir nicht der Fall war. Ich hatte den Befehl aus dem Post von Datasmurf abgeschrieben und da war noch ein -x Parameter im Unterschied zu deinem Vorgehen dabei. Entweder hat es deshalb nicht geklappt, oder ich habe mich schlichtweg verschrieben.

Ich habe jetzt übrigens mal versucht, mit pkg create mir ein Package zu bauen (pkg create -x 'gutenprint-base'). Da hat er mir jetzt aber die Version 5.2.10_3 gebaut. Also die Falsche. Wie kriege ich ihn dazu, die richtige zu nehmen?

EDIT:
Habe jetzt mal auch pkg version | grep cups gemacht:
$ pkg version | grep cups
cups-2.2.1 <
cups-bjnp-2.0_2 =
cups-filters-1.11.4 <
gutenprint-cups-5.2.10_3 =

Ist klar, dass er mir die 5.2.10_3 bei pkg gebaut hat, wenn die installiert ist. Da hat er übrigens auch die "alte" gutenprint-base reingetan:
$ pkg version | grep gutenprint-base
gutenprint-base-5.2.10_2 =

Die gutenprint-base.5.2.12 ist aber bei mir installiert. Ich habe gerade nochmal in Cups nachgesehen. Da steht unter "Hersteller und Modell" :
Canon PIXMA MG5650 - CUPS+Gutenprint v5.2.12
 
Ich habe da einen leisen Verdacht: Cups hatte ich über pkg installiert. Diese gutenprint-base habe ich mit make install in dem Verzeichnis gemacht, wohin ich sie entpackt hatte. Also quasi wie bei einem Port, oder? Habe ich also pkg und "Port" gemischt? Foxit hatte ja vorhin schon angemerkt, dass das wohl keine gute Idee ist...
Ich meine, es funktioniert ja, aber so richtig saubere Arbeit scheint das von mir nicht gewesen zu sein.
 
Wenn ich den anderen Thread richtig im Kopf habe, hatte dir Fusselbär eine Möglichkeit gezeigt, wie du die benötigte Version der gutenprint-base innerhalb der Ports bauen kannst. Dazu musstest du, glaube ich, das Makefile verändern und die Angaben in distfiles anpassen. Ich habe das nicht genau gelesen, aber das ist in etwa die einfachste Vorgehensweise, wenn man etwas als Port bauen will, das dort eigentlich in einer anderen Version vorkommt.
In /usr/ports/distfiles landen die heruntergeladenen xyz.tar.gz Dateien mit dem Source-Code, dort müsste dann das auch hin, was du manuell heruntergeladen hast udn es müsste sich so nennen, wie das im Makefile angepasst wurde.
Alternativ kann vielleicht direkt die gewünschte Version von der gleichen Seite automatisch durch das Makefile gezogen werden oder eine neue Seite eingepflegt werden. Dann ist gar kein manueller Download erforderlich, alles geschieht automatisch durch make install im Portsverzeichnis, also /usr/ports/print/gutenprint-base.
Irgendwas davon hat die Fusselbär erklärt, wie gesagt, das habe ich selbst nicht so genau gelesen aber du wirst nun sicher erkennen, was du da machen solltest.
Wenn du das machst, dann wird deine innerhalb der Ports gebaute Version auch richtig im System eingetragen und anschließend dein Paket auch mit dieser Version erstellt.
Vermutlich hast du das nicht getan.
Alternativ kann jeder Quellcode ja auch selbst installiert werden, also meist durch ein /.configure make make install. Dann wird davon aber nichts in deinem System registriert und ich vermute, dass du dies gemacht hast.
 
Ich habe da einen leisen Verdacht: Cups hatte ich über pkg installiert. Diese gutenprint-base habe ich mit make install in dem Verzeichnis gemacht, wohin ich sie entpackt hatte. Also quasi wie bei einem Port, oder? Habe ich also pkg und "Port" gemischt? Foxit hatte ja vorhin schon angemerkt, dass das wohl keine gute Idee ist...
Ich meine, es funktioniert ja, aber so richtig saubere Arbeit scheint das von mir nicht gewesen zu sein.

Meine Antwort von eben hat sich mit diesem Beitrag überlappt.
Du schreibst es hier deutlicher: du hast offenbar nicht über die Ports installiert.

Das Ports System ist eine großartige Hilfe, um SW aus Quellen zu bauen. Streng genommen bräuchte man es nicht und könnte alle Schritte auch von Hand erledigen. Aber, die Ports sind so ausgelegt, dass sie selbst wissen, woher die Quellcodes gezogen werden sollen und wie sie diese dann evtl patchen oder behandeln müssen, damit sie für FreeBSD passen. Zur Sicherheit werden auch die Prüfsummen geführt, damit nicht falsche Dateien untergejubelt werden können. So ist das Ports-System dank der fleißigen Arbeit der Maintainer so gebaut, dass man grundsätzlich die zusätzliche SW durch einfachen Aufruf von make install bauen kann. Mehr muss man eigentlichnicht wissen und berücksichtigen, die Ports enthalten alle Informationen, quasi den Bauplan für die zusätzliche SW.
Außerdem kann man in verschiedenen Ports auch noch mittels make config eigene Optionen setzen, auch dies eine Vereinheitlichung, die sehr gelungen und hilfreich ist.

Der Standard-Aufruf zum Bau eines Ports ist dabei make install clean, um alles weitere kümmert sich das Ports-System und die Information, die durch die Maintainer hier einfließt.
 
Hi,

ich hatte versucht, über die Änderung des Makefiles mir das Ding selbst zu bauen. Anfangs sah es so aus, als ob es klappt, dann brach das Make aber immer wieder ab (ich weiß nicht mehr genau, welchen Fehler es meldete). Deswegen habe ich mir die notwendige gutenprint-base als tarball gezogen und separat installiert.
 
Zurück
Oben