2013-06-26 19 views
17

C'è un modo per dire al compositore che ogni volta che faccio un composer update voglio che ignori un pacchetto specifico?Non aggiornare un pacchetto specifico

+0

IIRC una bandiera per fare cose come questa sta arrivando –

+0

spero che arriverà ... –

risposta

5

In realtà non so se c'è qualche modo per dire composer di escludere uno specifico pacchetto di aggiornamento ma si può dire dei pacchetti da aggiornare come

composer update <package> <package2>; // or 
php composer.phar update <package> <package2>; 

Per esempio,

composer update foo/package1 bar/package2; // or 
php composer.phar update foo/package1 bar/package2; 

Inoltre, penso che se non li elenchi in composer.json (rimuovi dopo l'installazione) da solo, non verranno aggiornati a meno che non siano specificati anche nell'elenco.

Da Compositore: Se si desidera solo per installare o aggiornare una dipendenza, è possibile whitelist:

$ php composer.phar update monolog/monolog [...] 

Check this link e controllare anche Composer.

Aggiornamento: (trovato su internet, ma non testato)

Per farlo, è sufficiente rimuovere il pacchetto da composer.lock

+0

Ho provato a rimuovere il pacchetto da composit.lock ma non funziona. Quando esegue l'aggiornamento, il compositore lo rimette. Aggiornare manualmente tutti gli altri pacchetti non è quello che mi serve (ma se non ottengo una risposta/soluzione migliore, segnerò la tua risposta come soluzione. Grazie @ sheikh-heera –

+0

hey! Welcome man, hai controllato? il sito del compositore, è stato detto di menzionare pacchetti, qualcosa come 'php composer.phar update monolog/monolog [...]' e inoltre, hai provato a rimuovere il pacchetto da 'composer.json' too? –

+3

se rimuovi un pacchetto da compositore.json, verrà rimosso quando crei un 'compositore update' –

23

Avete considerato che specifica la versione richiesta per il pacchetto che si sta tentando di ignorare? Per esempio:

"require": { 
    "some/package": "~1.2" 
} 

Questo può ottenere aggiornato, in quanto si sta dicendo qualsiasi versione> = 1.2, < 2.0, ma se dite rigorosamente desideri solo versione 1.0, non si dovrebbe vedere tutti gli aggiornamenti di quel pacchetto:

"require": { 
    "some/package": "1.2" 
} 
+0

questa dovrebbe essere la risposta accettata .. giusto? – Juan

2

Aggiornamento: disponibile solo per le versioni di compositore 1.0.0-alpha6 e precedenti. Usandolo nella versione 1.0.0-alpha7 e superiore rimuoverai tutti i pacchetti in "require-dev".

Credo che al momento tu possa ingannare il compositore con un pasticcio se puoi permetterlo nel tuo progetto. Qualcosa di simile: Mettere tutti i pacchetti non si desidera aggiornare in "require-dev" ed eseguire aggiornamenti con composer update --no-dev

Basta essere attenti di che se si esegue composer install come ricordo saranno rimossi dal progetto.

Tutto questo inganno è davvero brutto, quindi dovremmo aspettare per via ufficiale di fare cose del genere, personalmente ho aggiornare i pacchetti in modo esplicito specificando loro

+0

Questo finalmente ha fatto il trucco per me. Sicuramente l'unica soluzione per lasciare intatti i pacchetti specifici. provato ogni altra possibilità prima. – Conic

+0

L'aggiornamento del compositore --no-dev' rimuove tutti i pacchetti "require-dev", non lo uso. L'ho imparato nel modo più duro ... – Clyff

+0

@Clyff che è corretto appena controllato, Funziona con le versioni <1.0.0-alpha7. È stato riscritto dopo/incluso in 1.0.0-alpha7. – arma

0

Per ignorare un pacchetto specifico, è possibile utilizzare provide (se è parte di pacchetto personale) o replace. Questo dice a Composer che desideri fornire/sostituire un pacchetto specifico, quindi non lo scaricherà.

Ecco l'esempio composer.json di file che dovrebbe funzionare:

{ 
    "require": { 
     "radic/tmp-underscore-php": "~1.2.0" 
    }, 
    "replace": { 
     "patchwork/utf8": "*" 
    } 
} 

In questo esempio, il pacchetto patchwork/utf8 viene ignorato su composer install o update.

Per escludere la versione specifica, vedere: Composer exclude specific versions.

Problemi correlati