> For the complete documentation index, see [llms.txt](https://cristiandis.gitbook.io/ntix/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cristiandis.gitbook.io/ntix/ntix-documentation/docs-it/commands/apply.md).

# apply

## ntix apply

Installa, aggiorna e rimuove i pacchetti per corrispondere alla tua configurazione.

### Utilizzo

```bash
ntix apply [config-path] [options]
```

Se non viene fornito alcun percorso, NTIX utilizza `~/ntix/config.lua` (creandolo al primo avvio).

> Richiede **privilegi di amministratore**.

### Opzioni

| Flag                | Breve | Descrizione                                           |
| ------------------- | ----- | ----------------------------------------------------- |
| `--dry-run`         | `-d`  | Anteprima senza applicare                             |
| `--adopt`           | `-a`  | Adotta i pacchetti già installati nello stato di NTIX |
| `--upgrade`         | `-u`  | Controlla e applica gli aggiornamenti disponibili     |
| `--apply-configs`   | `-c`  | Applica `configFiles` dichiarati nella configurazione |
| `--no-gc`           |       | Salta la rimozione degli orfani                       |
| `--stop-on-failure` |       | Interrompi al primo errore                            |

Per impostazione predefinita, `apply` fa **non** controlla la presenza di aggiornamenti: installa solo i pacchetti mancanti, rimuove gli orfani e applica le versioni bloccate. Passa `-u` per aggiornare anche i pacchetti non bloccati.

### Cosa fa

1. Carica la configurazione
2. Calcola le differenze
3. Acquisisce il file di lock (fallisce se un altro `apply` è in esecuzione)
4. Aggiunge i bucket scoop mancanti e rimuove quelli orfani (se scoop è abilitato)
5. Installa i pacchetti
6. Aggiorna i pacchetti (solo con `-u`)
7. Rimuove i pacchetti orfani (a meno che `--no-gc`)
8. Adotta i pacchetti installati nello stato (solo con `-a`)
9. Applica `configFiles` (solo con `-c`)
10. Aggiorna il file di stato dopo ogni operazione

I pacchetti orfani vengono rimossi automaticamente. Usa `--no-gc` per saltare.

Se un gestore termina con un codice diverso da zero ma il pacchetto è nello stato desiderato (ad esempio winget segnala un'installazione come "già installato"), `apply` verifica rispetto all'elenco dei pacchetti installati e considera il risultato come riuscito. Lo stesso controllo conferma una rimozione quando un pacchetto era già stato rimosso.
