Rimozione degli strumenti della riga di comando disinstallati dagli aggiornamenti di AppStore


7

Ho eliminato gli strumenti da riga di comando Xcode dal mio computer rimuovendo sostanzialmente la cartella. Tuttavia, AppStore mostra ancora aggiornamenti dagli strumenti della CLI, che ovviamente non voglio.

Ho cercato di capire correttamente dove AppStore cerca di capire cosa deve essere aggiornato, ma non sono ancora riuscito a trovare una certa risposta. Ho provato a modificare il file updatejournal, ma non è stato d'aiuto, quindi da allora l'ho ripristinato.

Ho iniziato a sospettare che il fatto che pkgutilmostra alcuni CLToolspacchetti potrebbe essere la causa di questo. Dimenticando di loro non funziona però come bom sono né nella /var/db/receiptso /Library/Receipts(il pkgutil --forgetfallisce essenzialmente a causa di questo).

Tuttavia, li ho trovati dopo molte ricerche /System/Library/Receipts. Quelli che non posso eliminare però a causa della sicurezza del sistema. Ovviamente posso ignorarlo ed eliminarli per vedere se funziona, ma non voglio farlo "solo per vedere".

Vorrei trovare una soluzione adeguata a questo.

Qualche idea su cosa dovrei fare qui?



1
Non del tutto, come ho scritto in alto ho eliminato la cartella, ma sembra che un altro commentatore su quella domanda abbia lo stesso problema.
Kenny Lövrin,

Quale percorso completo o nome file è questo file journal di aggiornamento che hai modificato?
bmike

Risposte:


6

Sono riuscito a risolverlo, sembra che sospettassi, il problema era che i boms nella /System/Library/Receiptscartella.

Quindi ho avviato la modalità di ripristino, disabilitato SIP, spostato tutti i file da quella cartella che aveva com.apple.pkg.CLTools*nel loro nome e l'aggiornamento nell'App Store è andato via. Quindi ho avviato nuovamente il ripristino per abilitare SIP.

Disabilitare la sicurezza non è del tutto corretto, ma in questo caso l'ho provato perché altri problemi simili sembravano correlati a file bom persistenti, quindi forse ha senso.


Questo file non esiste su nessuno dei 100 Mac che ho controllato al lavoro stamattina e che tutti hanno utilizzato App Store per ottenere questo pacchetto: qual era la data / ora della ricevuta? Mi chiedo se sia stato lasciato da una vecchia installazione (non CLI) o da una versione beta del sistema operativo o degli strumenti di sviluppo.
bmike

Ad essere sincero, la mia memoria non è del tutto fresca. Ho ancora i file nel mio cestino e hanno una creazione del 17 novembre 2017. Mi sembra di ricordare di aver avuto questo problema perché stavo eseguendo una beta di High Sierra e Homebrew non funzionava correttamente senza gli strumenti CLI anche se io avevo installato Xcode (non ho dovuto installare sia CLI che Xcode in parallelo per anni), quindi ho dovuto installarli manualmente. Ma High Sierra è stato rilasciato a novembre, vero? Comunque, solo pensando ad alta voce qui, non riesco davvero a ricordare di sicuro.
Kenny Lövrin,

Inoltre, a cosa ti riferisci con "l'utilizzo dell'app store per ottenere questo pacchetto"? Non esiste nell'App Store da solo, devi installarlo con xcode-select o scaricarlo dal portale dev (forse anche dall'interno di Xcode è possibile, non lo ricordo in modo specifico).
Kenny Lövrin,

Questo ha funzionato. Un'alternativa alla disabilitazione di SIP, è inoltre possibile avviare da un'unità esterna e quindi rimuovere i file /Systemdall'utilizzo di tale sistema operativo.
adib,

1
@ KennyLövrin Non è necessario disabilitare SIP: rimuovere i file di ricevuta utilizzando l'app Terminale disponibile anche nel sistema operativo di ripristino.
adib

2

Il mio macOS Mojave reinstallato aveva esattamente lo stesso problema. Ho installato Xcode e CLT entrambi, quindi 6 o 7 aggiornamenti CLT escono da System Update, suggerendomi di installare CLT di vecchia versione.

Ho quindi rimosso questa cartella /Library/Developer/CommandLineTools, riavviato, tutti gli aggiornamenti sono spariti.

Non ho rimosso le cose della ricevuta.


Questo corrisponde alle mie esperienze in dozzine di squadre . Grazie per aver confermato che non tutti i prompt di aggiornamento richiedono un file di ricevuta.
bmike

1

Elimina questa cartella e il tuo mal di testa sparirà per sempre:

/ Library / Developer / CommandLineTools


3
La prima riga della mia domanda afferma che ho eliminato la cartella.
Kenny Lövrin,

Per essere onesti @ KennyLövrin non hai menzionato il nome della cartella, quindi Vighnesh è corretto. Una modifica al tuo post su quale cartella è stata rimossa ridurrebbe i rapporti come questo che forniscono dettagli.
bmike

Non penso sia giusto dire che Vighnesh è corretto, dal momento che Kenny in realtà ha ragione, affermando che "la cartella" è stata cancellata, ma il commento di Vighnesh è in realtà errato, e un'attenta lettura della domanda e del titolo avrebbe rivelato che questo non aveva nulla a che fare con la disinstallazione di CLT. Penso che Vighnesh debba assumersi la responsabilità di considerare attentamente le domande prima di correre avanti con le risposte di base a una domanda che non è stata effettivamente posta. Certamente nominare la cartella con precisione, in ogni caso, ma l'errore reale qui è con Vighnesh.
NeilG

0

Ci sono 2 passaggi per la rimozione pulita

  1. Elimina la directory / Library / Developer / CommandLineTools (come menzionato sopra).
  2. Ripristina gli strumenti predefiniti della riga di comando eseguendo

xcode-select -r

Spiegazione: Quando sono installati gli strumenti da riga di comando, il percorso per gli strumenti da riga di comando è impostato su "/ Library / Developer / CommandLineTools". Questo può essere verificato eseguendo

xcode-select -p

Anche se rimuovessimo la directory, il sistema andrebbe a controllare lì. Dopo aver reimpostato il percorso ed eseguito xcode-select -p, viene visualizzato un errore

xcode-select: errore: impossibile ottenere la directory dello sviluppatore attiva, usare sudo xcode-select --switch path/to/Xcode.appper impostarne una (o vedere man xcode-select) Ciò porterebbe allo stato iniziale.

Eseguendo qualsiasi comando, dire "python3 --version" senza ripristinare il percorso darebbe:

errore: lo strumento 'python3' richiede Xcode, ma la directory degli sviluppatori attiva '/ Library / Developer / CommandLineTools' è un'istanza degli strumenti della riga di comando

e una volta ripristinato il percorso, verrà richiesto di installare gli strumenti della riga di comando insieme a:

xcode-select: nota: nessuno strumento di sviluppo è stato trovato in '/Applications/Xcode.app', che richiede l'installazione. Scegli un'opzione nella finestra di dialogo per scaricare gli strumenti per sviluppatori della riga di comando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.