Как я могу изменить список приложений в разделе «Открыть с помощью…»?

41

Недавно я пошел открывать аудиофайл и хотел открыть его в редакторе, а не в плеере. Я щелкнул по нему правой кнопкой мыши, завис над надписью «Открыть с помощью…» и получил очень неприглядный список.

Список поддерживаемых аудио приложений

В прошлом я видел проблему, когда приложения вставляли предыдущие версии в /Applicationsпапку с добавленным номером версии, но здесь это не так. Несмотря на двойственность в этом списке, ни одно приложение не дублируется /Applicationsни в каком другом месте, которое я могу найти в моей системе.

Что приводит к тому, что этот список заполняется дубликатами, и как я могу удалить их и убедиться, что список содержит только последнюю (и функциональную) версию?

Джейсон Салаз
источник
Перестройка базы данных Launch Services (что делает эта команда) должна исправить это. Были ли напечатаны какие-либо сообщения об ошибках при запуске?
Робматерс

Ответы:

45

Приложения не должны жить /Applications. Если у вас есть клон вашей системы, это может объяснить некоторые дубликаты, но, конечно, не то, что вы наблюдаете. Список программ для Open with… поддерживается в базе данных Launch Services . Если список содержит много дубликатов, как у вас, база данных выглядит так, как будто она нуждается в перестройке.

Macworld Hints предлагает предложение, как вы можете это исправить:

Команда lsregister, найденная в System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister, может указать базе данных сбросить. Macworld рекомендует выполнить команду следующим образом:/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Обратите внимание, что такие утилиты, как Onyx или Cocktail также могут сбросить эту базу данных для вас. Обратите внимание, что Finder не будет перечитывать новую базу данных, поэтому вам придется либо выйти и войти снова, либо выдать команду, killall Finderесли вы не против просто убить ее для любых пользователей на вашем Mac, чтобы избежать выхода из системы и входа.

Даниэль
источник
1
Это поможет с дублированием, и сработало для меня несколько раз, так что +1. Есть ли у вас что-нибудь, чтобы помочь ОП со второй частью вопроса: как РЕДАКТИРОВАТЬ этот список?
Redandwhite
1
@Randandwhite На самом деле он ответил на мои вопросы в той степени, в которой я их имел в виду. Под редактированием я действительно имел в виду просто удалить дубликаты, и lsregister сделает это за меня. Если вы хотите отредактировать его напрямую, задайте его как свой собственный вопрос . Самое приятное то, что вы получите репутацию upvote для себя таким образом :).
Джейсон Салас,
Ну, он ответил на мои вопросы, но, к сожалению, это не решило проблему . Список остается идентичным после выполнения команды, указанной в ответе. Изображение, приведенное в этом комментарии, показывает, что я вполне уверен, что в моей системе есть только одна копия пакета приложений Spotify, несмотря на количество, указанное в списке.
Джейсон Салаз
2
Я забираю это обратно. Похоже, что процесс занял некоторое время, но я просмотрел «Открыть с помощью» не 2 минуты назад. Список снова чистый. Ура!
Джейсон Салаз
Ура! Рад, что это сработало для вас. Я копал, и я не нашел лучшего ответа, поэтому я рад, что это сработало.
Даниил
7

После того, как вы включили прожектор, чтобы убедиться, что на самом деле у вас нет резервного диска или другого тома с дублированными копиями приложений (в этом случае Finder показывает вам все приложения, о которых он знает, которые могут открыть файл), попробуйте запустив команду для перестройки базы данных служб запуска:

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

Затем выйдите из системы и войдите снова. Это должно перестроить базу данных Launch Services для OS X, удалив все повторяющиеся записи.

daviesgeek
источник
Большой! Рад, что это сработало для вас.
Дэвисджик
6

CleanOpen - это приложение, которое я создал для очистки меню «Открыть с помощью…».

CleanOpenWith с открытым исходным кодом и бесплатно. Приложение автоматизирует эти шаги :

  1. Откройте Терминал: Приложения / Утилиты / Terminal.app
  2. Введите следующую команду:

    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
    
  3. Дождитесь завершения этой команды

  4. Если ошибки нет, перейдите к последнему шагу, перезапустив Finder
  5. Перезапуск Finder не требует перезагрузки вашего Mac. Просто нажмите Control+ Option, нажимая на значок Finder в Dock, выберите Relaunch, и все готово!
Стефан Пакет
источник
1

Мне только что пришлось укусить меня за довольно чистую, новую установку Mountain Lion, где у меня было несколько версий приложений, и я думаю, что у меня есть реальная идея, как возникли дубликаты в моем случае.

Я запустил этот Air в режиме раскладушки и, вероятно, вытащил его, пока он спал, а база данных служб запуска не очищала приложения, которые были смонтированы на моем внешнем диске, подключенном к моему кинотеатру.

У меня есть диск на 3 ТБ с несколькими загрузочными установками Lion и Mountain Lion, которые точно соответствуют количеству системных и сторонних приложений, которые у меня есть, которые можно было бы зарегистрировать, чтобы открыть файл jpeg:

Открыть с...

Как и в случае с другими ответами - вынудив lsregister уничтожить базу данных, и щелкнув Finder, я получил исправление менее чем за 20 секунд

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain user -domain local -domain system
killall Finder
bmike
источник
Это старая тема, но я столкнулся с той же проблемой. Просто добавьте папки приложений на вашем внешнем диске в список исключенных прожекторов: superuser.com/a/349054/82434
evan.bovie
@ emb1995 Эта проблема возникает, даже если у вас есть только один диск из-за ошибки в загрузке обновлений в магазине приложений. У меня нет хорошего объяснения, почему файлы Chrome и другие файлы, не относящиеся к MAS, дублируются, поэтому, возможно, существует более одной ошибки или неприятного взаимодействия, когда он начинает портить вещи в базе данных и распространяется ущерб.
bmike
Да. Я знаю об ошибке, но, похоже, все работало так, как задумано для вас, просто неудобно для таких людей, как мы, с несколькими установками. Я мог бы заглянуть в lsregisterкакое-то время, чтобы найти базу данных и другой связанный код, но, возможно, эта проблема исправлена ​​в Mavericks. Я не испытывал этой проблемы с ГМ или ПЛ. Еще не установили публичный релиз. (странно ... я не могу упомянуть вас в своем комментарии)
evan.bovie
0

Я столкнулся с проблемой, когда есть резервные копии моих приложений на внешнем диске. Если эти диски проиндексированы или запущены приложения из этих драйверов, они отображаются в списке.

CDK
источник
Да, у меня подключен диск резервного копирования Timemachine. Как исключить эти старые приложения из меню?
Иванов
2
@ CDK, это больше похоже на комментарий, чем на ответ.
HairOfTheDog
0

Я знаю, что это старая ветка, но для меня все, что прояснилось, это «Принудительный выход», а затем повторный запуск Finder.

Проблема возникла на 3-дневном iMac, полностью обновленном.

вечерний звон
источник