З тих пір, як вийшла OS X El Capitan, у мене виникли проблеми з оновленням сторонніх додатків (без App Store) за допомогою будь-яких наданих функцій оновлення в програмі. Зазвичай вони автоматично завантажують оновлення і просять перезапустити програму, щоб застосувати оновлення. Іноді це виконується в рядку меню програми, а іноді з'являється спливаюче вікно в програмі з проханням перезапустити програму.
Однак, незалежно від того, скільки разів я перезапускаю додаток, оновлення ніколи не буде застосовано, тому він починає завантажувати оновлення і знову запитує, щоб перезапустити програму.
Деякі приклади програм, з якими у мене виникають проблеми, це: Редактор Atom , Слабенький (Версія Web DL) і кілька інших.
Я десь прочитав, що це може бути пов'язаними з SIP захистом, який був введений з El Capitan, і що лише користувачі root можуть використовувати цей особливий смак автоматичного оновлення зараз. Це правильно?
Мій основний користувач не є адміністратором. Замість цього мені потрібно викликати авторизацію користувача адміністратора, коли потрібні привілеї адміністратора. Я не знаю, чи це має відношення до проблеми - оновлення в програмі ніколи не вимагають привілеїв адміністратора.
Маючи це на увазі, я хотів би уникати відключення захисту SIP, якщо це можливо.
Редагувати: приклад system.log
На жаль, я був швидше, ніж перший коментар нижче, і проти того, що я встановив cask
. Так що зараз проблемні додатки, такі як Atom і Slack, в даний час на їх останню версію. Однак, схоже, я маю подібну проблему з новою програмою під назвою RealTime Board. Якщо Atom і Slack автоматично оновлюються через меню файлів, а потім запитує перезавантаження, RealTime Board завантажує оновлення і запитує перезавантаження через спливаюче вікно. Так що я підозрюю, що він працює багато в чому так само, як і інші програми, з якими я мав проблеми. Знову ж таки, оновлення програми відмовляється застосовуватись під час перезавантаження і буде постійно просити мене оновити & amp; перезавантажте за допомогою спливаючого вікна запуску програми. Мені доведеться почекати і подивитися, як Atom і Slack поводяться, як тільки з'являться нові версії. Ось спроба оновлення RealTime Board з system.log
:
May 17 22:56:49 myuser ShipIt[2803]: Beginning installation
May 17 22:56:49 myuser ShipIt[2803]: Couldn't abort install and restore owned bundle to previous location file:///Applications/RealtimeBoard.app, error NSError { domain: NSPOSIXErrorDomain, code: 2, description: "No such file or directory" }
May 17 22:56:52 myuser ShipIt[2803]: Installation error: Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied" UserInfo={NSLocalizedDescription=Permission denied}
May 17 22:56:52 myuser com.apple.xpc.launchd[1] (com.electron.realtimeboard.ShipIt[2803]): Service exited with abnormal code: 1
May 17 22:56:52 myuser ShipIt[2848]: Resuming installation attempt 2
May 17 22:56:52 myuser ShipIt[2848]: Couldn't abort install and restore owned bundle to previous location file:///Applications/RealtimeBoard.app, error NSError { domain: NSPOSIXErrorDomain, code: 2, description: "No such file or directory" }
May 17 22:56:54 myuser ShipIt[2848]: Installation error: Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied" UserInfo={NSLocalizedDescription=Permission denied}
May 17 22:56:54 myuser com.apple.xpc.launchd[1] (com.electron.realtimeboard.ShipIt[2848]): Service exited with abnormal code: 1
May 17 22:56:54 myuser ShipIt[2857]: Resuming installation attempt 3
May 17 22:56:54 myuser ShipIt[2857]: Couldn't abort install and restore owned bundle to previous location file:///Applications/RealtimeBoard.app, error NSError { domain: NSPOSIXErrorDomain, code: 2, description: "No such file or directory" }
May 17 22:56:56 myuser com.apple.usbmuxd[114]: notice USBMuxBonjourDeviceListenerCreate: LOCKDOWN_V2_BONJOUR_SERVICE_NAME is _apple-mobdev2._tcp,8d1f07bd
May 17 22:56:57 myuser ShipIt[2857]: Installation error: Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied" UserInfo={NSLocalizedDescription=Permission denied}
May 17 22:56:57 myuser syslogd[60]: ASL Sender Statistics
May 17 22:56:57 myuser com.apple.xpc.launchd[1] (com.electron.realtimeboard.ShipIt[2857]): Service exited with abnormal code: 1
May 17 22:56:57 myuser ShipIt[2877]: Too many attempts to install, aborting update
May 17 22:56:57 myuser ShipIt[2877]: Error aborting installation: Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory" UserInfo={NSLocalizedDescription=No such file or directory}
May 17 22:56:57 myuser ShipIt[2877]: Application launched at file:///Applications/RealtimeBoard.app
Я підозрюю, що проблема може бути пов'язана з ShipIt , яку, на мою думку, використовує система Atom для оновлень.
Є нитка тут припускаючи, що проблема може бути пов'язана з тим, що користувач адміністратора не є власником програми. Лістинг chown
у додатку показує це:
drwxr-xr-x@ 3 myuser admin 102 Mar 22 13:34 RealtimeBoard.app
Я припускаю, що це означає, що я власник програми.
Використання бочки?
NB: Я читав щось Homebrew-Cask як альтернативу відсутності необхідності виконувати всю ручну роботу по оновленню додатків, які не належать до App Store. Я ніколи не чув cask
раніше, але я використовую Homebrew. Чи може це бути доцільним рішенням?
cask
з останніми версіями деяких програм. Я додав приклад з system.log
для додатку RealTime Board, який, на мою думку, відчуває таке ж питання. Здається, щось має робити ShipIt
.