Artikelformat

Tipp · LaunchServices unter OS X Mountain Lion neu aufbauen

Nun hat es mich tatsächlich auch einmal erwischt: Meine LaunchServices waren unter Mountain Lion von einen auf den anderen Tag im Eimer. Das Ganze äußerte sich dadurch, dass ich im Kontextmenü im Öffnen mit… Dialog doppelte bzw. dreifache Einträge hatte. Bildschirmfoto 2012-10-13 um 01.11.43-s.png Abhilfe schaffen in diesem Fall meistens eine dieser zahllosen Wartungs-Apps, die ich in diesem Fall aber nicht extra installieren wollte. So musste folgender Terminal-Befehlherhalten, der, wie der folgende Screenshot zeigt, genauso gut funktionierte:

sudo /System/​Library/​Frameworks/​CoreServices.framework/​Versions/​Current/​Frameworks/LaunchServices.framework/​Support/​lsregister -kill -r -domain local -domain system -domain user

Bildschirmfoto 2012-10-13 um 01.29.11-s.png

(via)

Autor: Björn

Ich bin Björn und quasi der COO von aptgetupdateDE. Ich kümmere mich um die PR und allerlei Kontaktaufnahmen zu Firmen und Softwareentwicklern. Erreichbar bin ich bei Twitter, App.net und natürlich per E-Mail.

19 Kommentare

    • Versuchs mal ohne den ganzen -domain Kram.

      Also:

      sudo /System/​Library/​Frameworks/​CoreServices.framework/​Versions/​Current/​Frameworks/LaunchServices.framework/​Support/​lsregister -kill -r

      Dann sollte es funktionieren.

  1. Geht nicht… ich habe beides probiert. MainMenu habe ich zum Glück… da mach ich das öfters mit.

    Danke trotzdem

  2. Auf der Suche nach einer Lösung bin ich vor wenigen Tagen auch auf die oben genannte Befehlszeile fürs Terminal gestoßen. Kann jemand erklären, wieso das überhaupt passiert?

    • Einfach mal ‚lsregister‘ im entsprechenden Verzeichnis starten. Dann kommt ne Hilfe ;)

      lsregister: [OPTIONS] [ … ]
      [ -apps [,domain]… ]
      [ -libs [,domain]… ]
      [ -all [,domain]… ]

      Paths are searched for applications to register with the Launch Service database.
      Valid domains are „system“, „local“, „network“ and „user“. Domains can also
      be specified using only the first letter.

      -kill Reset the Launch Services database before doing anything else
      -seed If database isn’t seeded, scan default locations for applications and libraries to register
      -lint Print information about plist errors while registering bundles
      -convert Register apps found in older LS database files
      -lazy n Sleep for n seconds before registering/scanning
      -r Recursive directory scan, do not recurse into packages or invisible directories
      -R Recursive directory scan, descending into packages and invisible directories
      -f force-update registration even if mod date is unchanged
      -u unregister instead of register
      -v Display progress information
      -dump Display full database contents after registration
      -h Display this help
      logout

      Das -kill resettet also und das -r baut die LaunchServices rekursiv wieder auf.

      • Ja, das is mir klar. Ich wollte wissen, wieso es überhaupt passiert, dass mehrere Einträge doppelt vorkommen.

        • Das ist ne gute Frage. Kann ich dir leider nicht beantworten. Hatte ich in meiner ‚Mac-Zeit‘ aber erst zwei- oder dreimal. Das letzte Mal irgendwann mit Leopard (oder wars Snow Leopard???) und jetzt erst wieder mit Mountain Lion.

  3. Mit Menu hat es sofort geklappt… Mainmenu hat aber auch ca. 2 Minuten gedauert. Der Schnipsel oben nur 30 Sekunden.

  4. Hm… also der Befehl, der hier und auch an anderer Stelle im Netz angegeben ist, funktionierte bei mir nicht. Es kam die Fehlermeldung „command not found“.

    Folgender Befehl funktionierte:
    sudo /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

    Oder hier:
    https://dl.dropbox.com/u/23851994/befehl.rtf

    (Der Befehl wird in den Kommentaren nicht richtig angezeigt.)

  5. um mögliche schreibfehler schon im pfad zu lsregister zu vermeiden müsste auch

    `locate lsregister` -kill -r -domain local -domain system -domain user

    funktionieren, bzw die kurze schreibweise wie ich sie bisher unter Snowleo verwendete:

    `locate lsregister` -kill -r -all local,system,user

  6. Ich erhalte folgende Meldung:

    sudo: /System/​Library/​Frameworks/​CoreServices.framework/​Versions/​Current/​Frameworks/LaunchServices.framework/​Support/​lsregister: command not found

      • Ich habe keine Doppelpunkte verwendet. Die stammen von der Fehlermeldung.

        Wenn ich Björns Alternative „`locate lsregister` -kill -r -all local,system,user“ versuche, kommt folgende Meldung:

        mac-jan:~ jan$ `locate lsregister` -kill -r -domain local -domain system -domain user

        WARNING: The locate database (/var/db/locate.database) does not exist.
        To create the database, run the following command:

        sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

        Please be aware that the database can take some time to generate; once
        the database has been created, this message will no longer appear.

        -bash: -kill: command not found
        mac-jan:~ jan$

  7. Pingback: Alfred 2 · Der ultimative Workflow Artikel | aptgetupdateDE