2 votos

Ubicaciones de biblioteca del Perl y protección de integridad de sistema

Mi sistema perl parece tener un montón de resto a la izquierda encima de instalaciones anteriores:

% which perl
/usr/bin/perl

% perl -V | perl -ne 'print if /INC/...//'
  @INC:
    /Library/Perl/5.18/darwin-thread-multi-2level
    /Library/Perl/5.18
    /Network/Library/Perl/5.18/darwin-thread-multi-2level
    /Network/Library/Perl/5.18
    /Library/Perl/Updates/5.18.2/darwin-thread-multi-2level
    /Library/Perl/Updates/5.18.2
    /System/Library/Perl/5.18/darwin-thread-multi-2level
    /System/Library/Perl/5.18
    /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level
    /System/Library/Perl/Extras/5.18
    .

Entre las cosas en /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level es una versión antigua de Moose.pm que no funciona, así que me quiere deshacerse de él:

% perl -MMoose -e1
Invalid version format (version required) at /Library/Perl/5.18/Module/Runtime.pm line 396.
BEGIN failed--compilation aborted.

% perldoc -l Moose
/System/Library/Perl/Extras/5.18/darwin-thread-multi-2level/Moose.pm

Sin embargo, yo no puedo:

% sudo rm /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level/Moose.pm
Password:
override rw-r--r--  root/wheel restricted,compressed for /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level/Moose.pm? y
rm: /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level/Moose.pm: Operation not permitted

Estoy adivinando que en mis diferentes actualizaciones del sistema operativo a través de los años, Apple ha movido a algunos de mi usuario de los módulos instalados para este /System/Library/Perl/Extras directorio, pero luego lo protegió con la Integridad del Sistema de Protección, por lo que ahora no puede deshacerse de él (fácilmente). Hace que el sonido probable?

Si es así, ¿cómo diablos hizo esto? De acuerdo a Lo que es el "desarraigo" en El Capitan, realmente? cualquier extra no deseado en /System que Apple no quiere que debería haber sido trasladado a /Library/SystemMigration/History/Migration-(some UUID)/QuarantineRoot, ¿verdad? Nunca he deshabilitado SIP en esta máquina.

Así que: ¿cuál es la mejor manera de lidiar con esto? Me puede deshabilitar temporalmente la SIP y sople /System/Library/Perl/Extras/5.18 o lo que sea, pero me gustaría alguna garantía de que esto no es algo que Apple en realidad espera a estar allí. Hay una lista definitiva de lo que debe estar presente en /System en mi sistema operativo (que es Alta Sierra, 10.13.4 (17E199))?

3voto

tunecrew Puntos 59

Un par de ideas:

  • Examinar el manifiesto en la última de Alta Sierra instalador o hacer una instalación limpia en el disco de repuesto y compararlo con el sistema
  • Compruebe las fechas en los distintos directorios

Un par de comentarios:

  • Cuando hago un 10.x actualización, yo.e de la Sierra Alta Sierra, yo siempre hago una instalación limpia, que consta de la copia de seguridad de mi hogar, dir, volver a formatear la unidad, a continuación, instalar el SO y volver a instalar las aplicaciones y restaurar mis archivos. Elimina las impurezas de las versiones anteriores.
  • Para cualquier trabajo de desarrollo (perl, python, java, shell scripts, etc.) en mi Mac nunca uso el de Apple suministra versiones - yo siempre uso algo como MacPorts o instalar y compilar mi propia si es necesario - de esa manera usted puede gestionar las versiones de utilizar y también escapar de Apple rediseño de ubicaciones estándar para las bibliotecas, los archivos de inclusión, etc. Dar un paso más y utilizar la ventana acoplable y ventana acoplable-componer si usted realmente desea evitar este problema.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X