salve

braucht man den ldconfig.service eigentlich?
macht nicht pacman beim paket installieren ein "/sbin/ldconfig -X"?

das ist er:
[Unit]
Description=Rebuild Dynamic Linker Cache
Documentation=man:ldconfig(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=local-fs.target
Before=sysinit.target shutdown.target systemd-update-done.service
ConditionNeedsUpdate=|/etc
ConditionFileNotEmpty=|!/etc/ld.so.cache

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ldconfig -X
  • brikler hat auf diesen Beitrag geantwortet.
    8 Jahre später

    brikler macht nicht pacman beim paket installieren ein "/sbin/ldconfig -X"?

    kaum sind ein paar jahre vergangen, weiß ich auch schon die antwort: nein, pacman machts nicht, seiden man bringts ihm bei, und zwar so:

    cat /etc/pacman.d/hooks/ldconfig.hook              
    [Trigger] Operation = Install Operation = Upgrade Operation = Remove Type = Package Target = * [Action] Description = update linker cache... When = PostTransaction Exec = /sbin/ldconfig -X ```
    • GerBra hat auf diesen Beitrag geantwortet.

      brikler nein, pacman machts nicht, seiden man bringts ihm bei

      Für jedes Paket - egal welcher Modus (Install,Remove,Uograde) - ist das IMHO ziemlicher Overkill. Die wenigsten Pakete bringen wohl so-Libs mit.

      Den Cache einmal per Systemstart zu aktualisieren reicht m.E. auf einem normalem System. Mein aktuelles System ist z.B. Anfang Januar zuletzt gebootet, und ich habe keinerlei Nachteile die sich auf einen evtl. veralteten Linker-Cache zurückführen lassen.

      Wenn es für den normalen Betrieb notwendig wäre bin ich mir sicher, die Entwickler hätten einen Mechanismus eingebaut. IMHO ist es nur für Entwickler notwendig, innerhalb einer Build-Umgebung/Prozedur notwendig, ggf. den Cache zu aktualisieren, z.B. per make/autoconf etc...

      • brikler hat auf diesen Beitrag geantwortet.

        GerBra Die wenigsten Pakete bringen wohl so-Libs mit.

        bei mir sinds gerade:

        ldconfig -p | wc -l
        1790

        gegenüber 572 installierten programmen

        pacman -Q | wc -l       
        572

        GerBra Den Cache einmal per Systemstart zu aktualisieren

        genau, weil beim systemstart, nicht wenns notwendig ist, wenns notwendig ist, "weiß" nur pacman, aber nicht systemd …lange rede kurzer sinn, mir ging das damals gegen den strich, von wegen kiss, und ich schaffte mir den ärger vom hals^^

        • GerBra hat auf diesen Beitrag geantwortet.
          • Bearbeitet

          brikler lange rede kurzer sinn, mir ging das damals gegen den strich, von wegen kiss, und ich schaffte mir den ärger vom hals

          Welches konkrete Problem versuchst du denn damit zu beseitigen?

          Zu deinen Vergleichen der "Pakete":

          brikler ldconfig -p | wc -l
          1790

          Das "zählt" ja nur alle so-Libs im Cache, hat nichts mit der Paketanzahl zu tun, die diese Libs mitbringen.
          Dafür wäre IMHO sowas sinnvoll:

          $ ldconfig -p | cut --delimiter=' ' --fields=4 | pacman -Qoq - | sort -u | wc -l
          Fehler: Kein Paket besitzt Cache
          Fehler: Kein Paket besitzt generiert
          918

          Diese beiden "Fehler" kommen von der Statusmeldung von ldconfig am Ende (Kein Weg gefunden die weg zu kriegen)

          Das nimmt die ldconfig -p Ausgaben, filtert mit cut daraus das 4. Feld was durch Leerzeichen getrennt ist, z.B.:
          ld-linux-x86-64.so.2 (libc6,x86-64) => /usr/lib/ld-linux-x86-64.so.2
          wird zu:
          /usr/lib/ld-linux-x86-64.so.2
          Danach wird per pacman -Qoq geschaut, welches Paket diese Datei mitbringt.
          Da ja viele dieser Dateien im "gleichen" Paket enthalten sein können wird mit sort -u eine Liste mit nur den Paketnamen einmalig erstellt und diese dann gezählt.

          Bei mir sind das eben 918 Pakete, die so-Libs mitbringen gegenüber 1597 gesamt installierten Paketen. Also mehr als ich eigentlich vermutet/geschätzt hätte.

          Aber trotzdem verstehe ich dein Anliegen nicht so richtig... Ich halte den Ansatz schlicht für Ressourcenverschwendung.

            GerBra Welches konkrete Problem versuchst du denn damit zu beseitigen?

            der ldconfig.service verlängert die boot dauer

            GerBra ist das IMHO ziemlicher Overkill

            du hast recht, das Operation = Remove kann weg, es bringt nix mehr, das program ist ja nicht mehr da🙂

            • GerBra hat auf diesen Beitrag geantwortet.

              brikler GerBra Welches konkrete Problem versuchst du denn damit zu beseitigen?

              der ldconfig.service verlängert die boot dauer

              Ok, es ist dein System, hier:

              $ systemd-analyze blame
              ...
              212ms ldconfig.service
              ...

              Bei critical-chain taucht der Service nicht mal auf.

              brikler du hast recht, das Operation = Remove kann weg

              Wenn dein Ziel gewesen wäre, zu jedem Zeitpunkt (aus pacman Sicht) einen möglichst konsistenten ld-Cache-Zustand zu haben, dann würde IMHO das Entfernen von so-Libs dazugehören.
              Da es Dir ja aber scheinbar um "Bootzeit" geht: Wäre es dann nicht sinnvoller, einen Dienst auf den du als Dienst ja keinen Wert zuschreibst in den Hintergrund (nach dem Boot) zu verlagern anstatt Ressourcen(Zeit,Last) bei jeder Paketinstallation (also im laufenden Betrieb) zu "verbraten"?

              Aber ok, wie gesagt: dein System... <g>

                GerBra um "Bootzeit" geht:

                klar, mit einem timer, oder den type gleich auf "idle" setzen, das hätte auch funktioniert, aber dann hätte ich auf "spiel, spaß, und spannung" verzichten müsssen^^