mpkg - XCode 4.3 Herramientas de línea de comando
xcodebuild install (2)
Abra las herramientas de línea de comandos DMG y encontrará un meta-paquete, que puede extraer con el comando pkgutil --expand ''Command Line Tools.mpkg'' metapackage
. Abra el archivo de metapackage/Distribution
que se acaba de extraer en un editor de texto para ver los paquetes que comprenden el meta-paquete:
com.apple.pkg.DevSDK
com.apple.pkg.X11SDK
com.apple.pkg.QuickTimeSDK
com.apple.pkg.OpenGLSDK
com.apple.pkg.WebKitSDK
com.apple.pkg.FireWireSDK
com.apple.pkg.BluetoothSDK
com.apple.pkg.CoreAudioSDK
com.apple.pkg.JavaSDK
com.apple.pkg.clang
com.apple.pkg.llvm-gcc4.2
com.apple.pkg.X11Documentation
com.apple.pkg.DeveloperToolsCLI
Los archivos de paquete correspondientes se encuentran en un directorio de Packages
ocultos junto con el metapaquete. Sus contenidos pueden ser listados con pkgutil --payload-files
.
Si tiene un archivo en el disco y desea saber de qué paquete proviene:
$ pkgutil --file-info /usr/bin/clang
volume: /
path: /usr/bin/clang
pkgid: com.apple.pkg.clang
pkg-version: 4.3.0.0.1.1249367152
install-time: 1342021874
uid: 0
gid: 0
mode: 755
Ahora, alguna información adicional que será útil si alguna vez desea eliminar las herramientas de línea de comandos. Apple, en su infinita sabiduría, se niega a proporcionar una herramienta para hacerlo, pero podemos obtener la información que necesitamos al utilizar pkgutil
para mostrar información sobre los paquetes instalados.
En primer lugar, pkgutil --pkgs
todos los paquetes instalados. Compare la salida de la lista de paquetes arriba.
pkgutil --info
mostrará información sobre un paquete instalado; por ejemplo:
$ pkgutil --info com.apple.pkg.clang
package-id: com.apple.pkg.clang
version: 4.3.0.0.1.1249367152
volume: /
location: /
install-time: 1342021874
groups: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-group
pkgutil --files
mostrará el contenido de un paquete instalado, en relación con los campos de volume
y location
proporcionados por pkgutil --info
. Debido a que las rutas absolutas no se usan, no puede simplemente canalizar la salida de este comando a xargs rm -f
para eliminar los archivos de un paquete; Tendrá que arreglar las rutas usted mismo, quizás con algo como pkgutil --files com.example.pkgname | while read line; do rm -f "/install_location/$line"; done
pkgutil --files com.example.pkgname | while read line; do rm -f "/install_location/$line"; done
pkgutil --files com.example.pkgname | while read line; do rm -f "/install_location/$line"; done
Una vez que se eliminan los archivos de un paquete, pkgutil --forget
debe ejecutar para eliminar la información sobre el paquete instalado de la base de datos del paquete.
No hace falta decir que debes tener mucho cuidado si lo intentas: ¡estás a un paso de fallar en tu sistema tan mal que tendrás que volver a instalarlo, para no decir nada de tus preciosos datos!
pkgutil
tiene otras opciones útiles para verificar que todos los archivos de un paquete están presentes y para restaurar sus permisos; ver su página de manual para los detalles.
En general, esto funcionará para cualquier paquete, sin embargo, tenga en cuenta que algunos paquetes pueden tener scripts incrustados que se ejecutan cuando se instala el paquete; obviamente, simplemente eliminando los archivos del paquete no eliminará todos los rastros del paquete de su sistema. Tendrá que extraer el contenido del paquete y leer el código fuente del script, y luego decidir cómo deshacer los efectos del script usted mismo.
Apple ha lanzado recientemente herramientas de línea de comandos :
¿Cuáles son las herramientas provistas en el paquete de herramientas de línea de comando?
¿Hay algún otro tipo de documentación que no sean páginas de manual?
Tenga en cuenta que he instalado estas herramientas agregando el componente específico en Xcode. Además, no se trata de un proyecto de Xcode, sino de un paquete lanzado por Apple el 16 de febrero de 2012.
Tuve un problema similar: no pude ejecutar "make" después de actualizar a Xcode 4.3. Para solucionarlo, acabo de configurar mi variable PATH para incluir:
/Applications/Xcode.app/Contents/Developer/usr/bin
/Applications/Xcode.app/Contents/Developer/Tools
Una vez que tuve esa configuración, reemplazando mis entradas antiguas de PATH que se refieren a / Developer, podría ejecutar un "make" desde la línea de comandos nuevamente.