Fragen und Anmerkungen zur Installation von Programmen

D

duda

Guest
Hallo Gemeinde,

an folgendem Beispiel möchte ich mehr Verständnis über pkg erhalten. Und auch die Vor- und Nachteile besser verstehen, Programme aus den fertigen Binärpaketen eines offiziellen Repos zu installieren, oder aus den Ports (dem interessierten Leser ohne Vorkenntnisse sei gesagt, es gibt nur ein entweder oder).
Es ist FBSD 11-current als Gastsystem im Einsatz und seit einem Upgrade vor ein paar Tagen ist mc nicht mehr zu gebrauchen:
Code:
$ mc
common.c: unimplemented subshell type 1
read (subshell_pty...): (null) (2)
$
$ pkg info mc | more
mc-4.8.16_1
Name           : mc
Version        : 4.8.16_1
Installed on   : Mon Mar 21 16:13:17 2016 CET
Origin         : misc/mc
Architecture   : freebsd:11:x86:64
Prefix         : /usr/local
Categories     : misc shells
...
Shared Libs required:
  libintl.so.8
  libslang.so.2
  libglib-2.0.so.0
  libssh2.so.1
  libgmodule-2.0.so.0
Annotations  :
  repo_type  : binary
  repository  : FreeBSD
Hier die Commit History von mc - der Bug ist wohl bekannt: http://www.freshports.org/misc/mc/
Die letzte bei mir funktionierende Version ist die 4.8.15.

Wenn man nicht in der Lage ist das Problem zu fixen - so wie ich - kann man nur abwarten bis es ein funktionierendes Update gibt. Ein Downgrade ist nicht möglich.
Kann ich auch gut nachvollziehen - Plattenspreicher ist immer eine knappe Ressource. Das Repo kann nicht auch noch x Versionen der Binärpakete verfügbar halten.

Da ist die Installation aus den Ports natürlich sehr von Vorteil. So habe ich dann die Möglichkeit eines Dowgrade auf die letzte funktionierende Version, und kann das betreffende Programm somit weiterhin nutzen.

Für Tipps, Meinungen und Hinweise besten Dank im Voraus!
 
In dem commit-Log steht aber, dass ein Bug hinsichtlich subshell-Foo gefixt wurde. Trotzdem läuft es bei dir nicht? Dann PR schreiben!

Rob
 
Am 21.03. erfolgte das Update auf 4.8.16_1 (siehe oben).
Hab's jetzt mal gelöscht und neu installiert - nichts zu machen, gleicher Fehler?
 
Dass der Fehler bei mir nicht mehr auftritt, hatte ich erst bemerkt, als du hier gepostet hast. Gefühlt habe ich mc nur einmal aktualisiert (nämlich auf 4.8.16_1). Evtl. kam danach für einen anderen Port, der eigentlich Auslöser war, ein Update?

HTH
 
ja, genau so war es.

4.8.15 alles gut.
update auf 4.8.16 - Fehler
update auf 4.8.16_1 - Fehler

P.S.
noch mal nachgedacht - "für einen anderen Port ein Update" was meinst du damit?
 
Wenn der Fehler gar nicht in mc sondern in einem anderen Port war. Mir fällt jetzt auf Anhieb zB pcre ein. mc hängt von pcre ab, das wiederum wurde auch kürzlich aktualisiert. Ob das damit zusammenhängt/zusammenhängen kann, weiß ich nicht. Ich habe mc aus den ports gebaut (iirc nur eimal) und hatte den Fehler auch. Inzwischen geht es wieder.
 
Ich habe mc aus den ports gebaut (iirc nur eimal) und hatte den Fehler auch. Inzwischen geht es wieder.
Ich vermute, dass ist wohl ein gravierender Schwachpunkt bei der Installation der fertigen Binärpakte aus dem Repo?
Genaues kann ich noch nicht sagen, dafür ist FBSD noch zu neu für mich.
Das ist mit ein Grund, weshalb ich es erst mal nur in der VM laufen habe.
 
Dem würde ich nicht zustimmen. Du hast einfach einen ungünstigen Zeitpunkt erwischt, denn die Pakete werden nicht stündlich neu gebaut. Eigentlich sind die fertigen Packages viel "strenger" gebaut (soll heißen, dass die abhängigen Pakete (oft) mit neu gebaut werden, wenn sich ein übergeordneter Port ändert). Ich würde vermuten, dass sich das Problem in wenigen Tagen löst.
 
Als Testinstallation in der VM ist es kein Problem. Es ist sogar ganz gut, so lerne ich es kennen.

Weder in /var/log/ noch in /etc/pkg/ habe ich ein log file gefunden, wo die Updates protokolliert sind - wie könnte ich da eine systematische Fehleranalyse durchführen?
Die Erläuterungen im Handbuch beziehen sich auf eine Installation aus den Ports.
 
Aber so streng ist das doch grundsätzlich nicht, dass ich entweder nur Pakete oder nur Ports benutzen kann.
Schon zu Zeiten des alten pkg konnte man durchaus mischen, wenn man nur wusste, was man macht.
Das Hauptproblem dabei ist doch nur, dass in den Ports andere Versionen vorhanden sein können die dann wieder andere Abhängigkeiten haben und deshalb dann ein Wechsel zu den Ports wegen eines einzigen Programms im Endeffekt eine Vielzahl an Installationen aus den Ports nach sich ziehen könnte.
Mit pkgng (dem neuen pkg-tool) ist das doch alles viel besser geworden? Ich meine, lame oder ffmpeg mit mp3 bekommt man ja nicht als Paket. Wer das braucht ist immer auf die Ports angewiesen und dann wäre es doch sehr schlecht, wenn man zuvor entscheiden müsste, ob deshalb alles aus den Ports gebaut werden muss.

Weshalb ich das nicht selbst weiß: weil mein Hauptsystem auf 8.4 läuft und aus den Ports gebaut ist und nun EOL ist. Da weichen die Versionen in den Ports natürlich von den Paketen ab!
Mein kleines System ist zwar 10.2, aber ausschließlich aus Paketen ausgebaut und ich möchte es vermeiden, dort extra Ports zu installieren. Die Pakete in sich sind konsistent und weil ich das nicht testen möchte, gibt es keine möglicherweise gestörten Abhängigkeiten durch unterschiedliche Versionen in Ports und Paketen.
 
Jetzt bin ich doch irritiert - irgendwo habe ich gelesen, dass es unbedingt zu vermeiden ist, Ports und Pakete gleichzeitig zu benutzen?

Dann kann ich also jederzeit einen Ports-Tree installieren, ohne das es zu irgendwelchen Inkonsistenzen führt?

Dann probiere ich es am Beispiel von mc doch mal aus - mal sehen was passiert, wenn ich mc aus den Ports installiere?
 
pit234a: Möglicherweise habe ich mich unglücklich ausgedrückt. Mir ging es NICHT um das Mischen von Ports und Packages. Unabhängig davon sehe ich das Mischen auch nicht wirklich kritisch. Die offiziellen Packages sind nichts anderes: Ports, die zu einem bestimmten Moment gebaut wurden. Natürlich wirst du merken, dass viele Abhängigkeiten neu gebaut werden, wenn die Packages deutlich älter sind als dein Portstree.
 
Die offiziellen Packages sind nichts anderes: Ports, die zu einem bestimmten Moment gebaut wurden.
Habe zwischenzeitlich mc gelöscht; einen Portstree erstellt und mc aus den Ports neu installiert. Ohne Erfolg - das Programm lässt sich nicht starten (s.o).
Alles andere hätte mich jedoch aufgrund deiner Aussage auch sehr gewundert.
 
Zeige mal die Ausgabe von portmaster -a (ohne dass du bestätigst). Vielleichst ist ein auffälliges Paket dabei...
 
Gestern wollte ich dann mal in /var/log/messages nachlesen, welche Pakete upgedated wurden. Zu meiner grossen Verwunderung war Datei die gar nicht mehr existent.
Dafür gab es mehrere /var/log/messages*.bz2
Code:
$ ls -l /var/log/messages*
-rw-r--r--  1 root  wheel  89279 24 März 13:17 /var/log/messages
-rw-r--r--  1 root  wheel   9500 23 März 13:00 /var/log/messages.0.bz2
-rw-r--r--  1 root  wheel   9007 21 März 11:00 /var/log/messages.1.bz2
-rw-r--r--  1 root  wheel   9329 19 März 15:
Durch den heutigen Systemstart wurde /var/log/messages neu generiert.
Gibt es eine Erklärung dafür?
 
Code:
$ portmaster -a
mkdir: /usr/ports/packages: Permission denied
===>>> Gathering distinfo list for installed ports

===>>> Starting check of installed ports for available updates
===>>> Launching child to update pcre-8.37_4 to pcre-8.38

===>>> All >> pcre-8.37_4 (1/1)

===>>> Currently installed version: pcre-8.37_4
===>>> Port directory: /usr/ports/devel/pcre

===>>> Launching 'make checksum' for devel/pcre in background
===>  Switching to root credentials to create /var/db/ports/devel_pcre
Password:
 
Code:
su: Sorry
===> Cannot create /var/db/ports/devel_pcre, check permissions
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/pcre
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/pcre
===>>> Gathering dependency list for devel/pcre from ports
===>>> Initial dependency check complete for devel/pcre

===>>> Returning to update check of installed ports

===>>> Launching child to update curl-7.47.1 to curl-7.48.0

===>>> All >> curl-7.47.1 (2/2)

===>>> Currently installed version: curl-7.47.1
===>>> Port directory: /usr/ports/ftp/curl

===>>> Launching 'make checksum' for ftp/curl in background
===>  Switching to root credentials to create /var/db/ports/ftp_curl
Password:
 
Du siehst... er will pcre aktualisieren. mc hängt davon ab. Versuche mal (ich weiß nicht ob es hilft) pcre zu aktualisieren.
 
Ja, du hattest Recht mit deiner Vermutung!

Nur verstehe ich nicht, warum pkg upgrade pcre nicht aktualisiert hat?

Viel Neues eben für mich - muss ich erst mal drüber nachdenken :)
 
Das hatte ich dir auch schon erklärt. ;) Die Packages werden nicht stündlich neu gebaut. Warte ein paar Tage und es ist verfügbar. Du hast einfach zu einem ungünstigen Zeitpunkt aktualisiert. Vom Grundsatz her bist du mit packages wirklich gut bedient.

Habe ich dich richtig verstanden? mc läuft?
 
Zurück
Oben