En determinadas ocasiones nos podemos encontrar con que ya sea por definición o por alguna cadena de errores nos sea imposible eliminar una aplicación de nuestro OS X siguiendo el método normal. Vamos a ver como solucionar estos casos en que una aplicación aparece como locked (bloqueada) y no permite su eliminación.

os x mojave

 

Primero explicaremos el caso real sobre el cual se basa la solución final. Hablamos de un cliente OneDrive que de un día para otro dejó de funcionar correctamente y no permitía su desinstalación lanzando un mensaje de “The operation can’t be completed because the item OneDrive is locked” como se puede ver en la imagen siguiente.

os x blocked

Este mismo comportamiento lo presentaba desde el usuario administrador de la propia máquina. Revisando los permisos de la aplicación con comando+i la casilla de “locked” o bloqueado aparecía marcada y en gris con lo cual no era posible desloquearlo de esta manera. Además tampoco era posible cambiar los permisos de usuarios sobre el archivo desde la misma ventana (de nuevo mismo comportamiento en administrador)

Llegados a este punto y ante la imposibilidad de eliminarlo de manera normal, vamos a abrir un terminal y a seguir los siguientes comandos

Primero cambiamos el directorio al de aplicaciones con

cd /Applications/

Ahora necesitaremos una elevación de privilegios para lanzar el comando chflags para ello utilizamos sudo. El comando chflags se encarga de cambiar las flags de la carpeta en este caso y de manera recursiva necesitaremos quitar a través de este comando lo que se llama bit inmutable. Este bit inmutable es una propiedad que una vez aplicada impide que incluso el usuario root pueda eliminar ciertos ficheros, directorios, etc.. Podemos revisar si ese el caso con el comando

sudo ls -lo Ejemplo.app/

En el caso que esté aplicado mostrará algo como

-rw-r--r-- 1 root admins schg 15 May 29 06:10 /Applications/Ejemplo.app/

En el ejemplo que nos ocupa, está obviamente activo por ello que no podamos borrarlo sin más. Para eliminar ese bit inmutable de manera recursiva lanzaremos el siguiente comando, siempre como root

chflags -R noschg Ejemplo.app/

Una vez hecho esto, podemos volver a comprobar con el ls, y borrar de manera forzada y recursiva con

rm -rf Ejemplo.app

Finalmente hemos podido eliminar la aplicación y con ella el molesto link en la lista de aplicaciones lo que nos permite volver a reinstalar la aplicación sin mayor problema.