Desde que salió OS X El Capitan, he tenido problemas para actualizar aplicaciones de terceros (que no sean de la App Store) utilizando cualquier función de actualización dentro de la aplicación. Normalmente, éstas descargan automáticamente la actualización y te piden que reinicies la aplicación para aplicarla. A veces esto se maneja en la barra de menú de la aplicación, y a veces habrá una ventana emergente dentro de la aplicación pidiéndote que la reinicies.
Sin embargo, no importa cuántas veces reinicie la aplicación, la actualización nunca se aplicará, por lo que comienza a descargar la actualización de nuevo y pide de nuevo que se reinicie la aplicación.
Algunos ejemplos de aplicaciones con las que estoy teniendo problemas son: Editor Atom , Slack (versión Web DL), y algunos otros.
He leído en alguna parte que este puede estar relacionado con la protección SIP que se introdujo con El Capitán, y que sólo los usuarios Root pueden utilizar ese tipo particular de auto-actualización ahora. ¿Es esto correcto?
Mi usuario principal no es un usuario administrador. En cambio, necesito invocar la autorización de mi usuario administrador cuando se requieren privilegios de administrador. No sé si eso tiene algo que ver con el problema - las actualizaciones in-app nunca piden privilegios de administrador.
Teniendo esto en cuenta, me gustaría evitar desactivar la protección SIP si es posible.
Editar: ejemplo de system.log
Lamentablemente, fui más rápido que el primer comentario de abajo, y en contra de ese consejo instalé cask
. Así que ahora las aplicaciones problemáticas como Atom y Slack, están actualmente en su última versión. Sin embargo, parece que tengo un problema similar con una nueva aplicación llamada RealTime Board. Mientras que Atom y Slack se actualizan automáticamente a través del menú de archivos y luego piden un reinicio, RealTime Board descarga la actualización y pide un reinicio a través de una ventana emergente. Así que sospecho que funciona de la misma manera que esas otras aplicaciones con las que he tenido problemas. De nuevo, la actualización de la aplicación se niega a aplicarse tras el reinicio, y me pide continuamente que actualice y reinicie a través de una ventana emergente al iniciar la aplicación. Tendré que esperar y ver cómo se comportan Atom y Slack una vez que las nuevas versiones estén disponibles. Aquí está el intento de actualización de RealTime Board de 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
Sospecho que el problema puede tener que ver con ShipIt , que creo que es el mismo sistema que utiliza Atom para las actualizaciones.
Hay una hilo aquí sugiriendo (discutiblemente) que el problema puede tener que ver con que el usuario administrador no es el "dueño" de la aplicación. Listado chown
en la aplicación revela esto:
drwxr-xr-x@ 3 myuser admin 102 Mar 22 13:34 RealtimeBoard.app
Supongo que esto significa que soy el propietario de la aplicación.
¿Usando barril?
NB: He leído algo sobre Cerveza casera-barrica como alternativa para no tener que hacer todo el trabajo manual de actualización de las aplicaciones que no son de la App Store. Nunca he oído hablar de cask
antes, pero yo uso Homebrew. ¿Podría ser una solución aconsejable?