# oneshot non mi è molto chiaro

## sanzo77

E' da un pò che volevo fare questo topic, ma ho sempre sperato che prima o poi quel che è scritto sulla man page mi divenisse improvvisamente chiaro, evidentemente mi manca qualcosa però ^^

 *Quote:*   

> 
> 
>       --oneshot (-1)
> 
>          Emerge as normal, but do not add the packages to the world file for later updating.
> ...

 

Questa opzione sembra proprio fare quel che vorrei io: vorrei poter istallare tramite portage alcuni programmi in modo che quando poi andrò a fare emerge -DuN world non vengano considerati per essere ricompilati, in modo da snellire l'emerge world e poi aggiornare in un secondo momento questi pacchetti singolarmente.

Leggendo ciò che ho quotato ho pensato che fosse l'opzione che faceva per me, ma ho un pò di dubbi, o meglio non sono sicuro di ciò che fa questo oneshot, qualcuno può spiegarmelo meglio?

Inoltre vorrei sapere, nel caso si comportasse esattamente come voglio io, se è possibile aggiungere alla lista dei pacchetti oneshot dei pacchetti già installati.

Grazie a chiunque risponderà ^^

----------

## !ico

oneshot fa proprio quello che dice, installa il pacchetto ma non lo aggiunge al file world.

Non mi sembra una buona idea la tua, perchè se tu emergi con oneshot un pacchetto che non è dipendenza di qualche altro, il primo --depclean te lo rimuoverà..   :Rolling Eyes: 

piuttosto puoi mascherare alcuni pacchetti pesanti in modo da snellire l'update world, e aggiornarli solo quando vuoi tu. 

ola  :Wink: 

----------

## sanzo77

Quindi se io emergo firefox e openoffice con -1 appena faccio depclean me li toglie ?

E dove trovo documentazione sul mask che dici tu?

----------

## !ico

 *sanzo77 wrote:*   

> 
> 
> E dove trovo documentazione sul mask che dici tu?

 

per esempio sull'handbook o con man portage..   :Rolling Eyes: 

ola  :Wink: 

----------

## federico

 *sanzo77 wrote:*   

> Quindi se io emergo firefox e openoffice con -1 appena faccio depclean me li toglie ?
> 
> E dove trovo documentazione sul mask che dici tu?

 

Ma e' vera sta cosa?

Non ho mai usato oneshot perche' mi pare una opzione baracca, a che serve dunque?

----------

## Super_Treje

Premessa : mi sono letto il man di emerge

Contro domanda : se io ho emerso un pacchetto con oneshot di cui non mi ricordo il nome e vorrei ricontrollare quali pacchetti ho emerso e sono nel world e quali no e nel caso ci fossero dei pacchetti che non sono nel world volessi inserirceli, che comando devo dare ????

Spero che la domanda non sia eccessivamente criptica!   :Embarassed: 

Bye  :Smile: 

----------

## cloc3

 *federico wrote:*   

> 
> 
> Non ho mai usato oneshot perche' mi pare una opzione baracca, a che serve dunque?

 

invece è fondamentale.

aggiungere un pacchetto non desiderato (o superfluo) al file world significa aumentare i tempi di calcolo delle dipendenze per tutti i pacchetti successivi, e forse (in qualche caso) anche alterare il risultato dell'analisi di ogni `emerge -uDNpv world`.

----------

## !ico

 *federico wrote:*   

> .. a che serve dunque?

 

beh, per esempio quando devi ricompilare una libreria che è dipendenza di un pacchetto x: non ha senso aggiungerla al world perchè quando rimuovi x questa non verrebbe più tolta da depclean in quanto orfana e inutile, ma continuerebbe ad essere aggiornata poichè si trova nel world file.. 

@Super_Treje:   :Confused:  non credo di aver capito..

ola  :Wink: 

----------

## lavish

 *federico wrote:*   

> Non ho mai usato oneshot perche' mi pare una opzione baracca, a che serve dunque?

 

E' fondamentale quando si vogliono riemergere pacchetti che sono dipendenza diretta o no di altri pacchetti presenti in world.

Per esempio, se volessi ricompilare gnutls, che e' una dipendenza di.. boh, bitlbee quando c'e' la use gnutls attiva, emergo gnutls con --oneshot, in modo da non ritrovarmelo in world. --depclean non rimuovera' gnutls ovviamente, essendo dipendenza di bitlbee.

Altro esempio: hai mai guardato l'output di revdep-rebuild? Tutti i pacchetti vengono riemersi con --oneshot, proprio per non alterare lo stato del file world.

Spero di aver chiarito  :Smile: 

//edit: anticipato da ico  :Razz: 

----------

## lavish

 *Super_Treje wrote:*   

> Contro domanda : se io ho emerso un pacchetto con oneshot di cui non mi ricordo il nome e vorrei ricontrollare quali pacchetti ho emerso e sono nel world e quali no e nel caso ci fossero dei pacchetti che non sono nel world volessi inserirceli, che comando devo dare ????
> 
> Spero che la domanda non sia eccessivamente criptica!   

 

Per vedere quali pacchetti hai in world

```
less /var/lib/portage/world
```

Per vedere quali pacchetti NON hai in world e non sono dipendenza di altri pacchetti

```
emerge --depclean -p
```

----------

## Super_Treje

Grazie per la pronta risposta ma per inserire in automatico quelli che non sono in world che comando devo dare ??

Bye  :Smile: 

----------

## Scen

 *Super_Treje wrote:*   

> Grazie per la pronta risposta ma per inserire in automatico quelli che non sono in world che comando devo dare ??

 

Per inserire in world dei pacchetti installati ma non in world basta fare

```

emerge --noreplace <nomepacchetto>

```

----------

## Onip

 *Super_Treje wrote:*   

> Grazie per la pronta risposta ma per inserire in automatico quelli che non sono in world che comando devo dare ??
> 
> Bye 

 

```
# emerge --no-replace pacchetto
```

oppure è --noreplace, non ricordo. Prova a leggere il man

----------

## sanzo77

Ok, credo di aver capito la filosofia di oneshot (o per lo meno mi è un pò più chiaro). Però mi chiedo allora perchè su molte guide, per esempio per installare firefox, si consigli l'installazione con opzione -1. Da quel che mi dite è un opzione da non usare su un pacchetto "radice" (se mi passate il termine, nel senso che non è dipendenza di nessuno, ma al max ha dipendenze), ma è da usare solo su pacchetti che sono librerie o cmq dipendenze.

----------

## lavish

 *sanzo77 wrote:*   

> mi chiedo allora perchè su molte guide, per esempio per installare firefox, si consigli l'installazione con opzione -1. Da quel che mi dite è un opzione da non usare su un pacchetto "radice" (se mi passate il termine, nel senso che non è dipendenza di nessuno, ma al max ha dipendenze), ma è da usare solo su pacchetti che sono librerie o cmq dipendenze.

 

Perche' alcune guide prevedono il reinstall del pacchetto, non una installazione fresca del pacchetto, quindi ha un senso quando non si vuole alterare il file di world.

Ad ogni modo anche io mi chiedo molto spesso il perche' di tale $cosa su alcune guide   :Rolling Eyes:   :Rolling Eyes:   :Rolling Eyes: 

Motivo in piu' per affidarsi a doc ufficiale quando si puo'.

----------

## djinnZ

Precisazione (va bene che c'è un thread specifico ma è bene ricordarlo):

Mettiamo che hai installato amule-2.1 (i numeri versione li sto prendendo a casaccio, è solo un esempio) che vuole come dipendenza wxgtk-2.5 e con quella specifica versione è stato testato ed è garantito funzionante e quella è installata ma la più alta versione corrente di wxgtk in portage è la 2.6 (perchè è quella corrente e potresti voler scrivere tuoi programmi ed adattarne di nuovi etc.).

Se lanci un emerge wxgtk invece di un emerge -1 =x11-libs/wxgtk-2.5 od emerge -1 wxgtk al prossimo emerge -aDnuv world wxgtk sarà aggiornato alla 2.6 con il risultato che il mulo inizierà a comportarsi come tale (e poi inizi a lamentarti che gentoo funziona una fetenzia, a chiederti cosa si fumano i devel prima di rilasciare gli aggiornamenti e via dicendo).

Se lanci un emerge =x11-libs/wxgtk-2.3 invece ti viene aggiunto in world non solo il pacchetto ma anche la versione. Quando aggiorni ad amule-2.2 che è stato stabilizzato con wxgtk-2.6 e funzionicchia con la 2.5 l'emerge -aDNuv world non aggiornerà wxgtk e via con le bestemmie in aramaico.

Spero sia chiaro.

Per vedere quali pacchetti hai installato con -1 e decidere quali potresti aggiungere a world con --noreplace devi lanciare un emerge --with-bdeps y --noclean -pv (il --with-bdeps y serve ad evitare che ti siano segnalati per la rimozione pacchetti necessari alla compilazione di altri  ma non alla loro esecuzione)

@lavish: forse perchè prima firefox e non firefox-bin era una dipendenza

----------

## Tigerwalk

 *djinnZ wrote:*   

> .....................................................................................
> 
> ..........................................
> 
> Per vedere quali pacchetti hai installato con -1 e decidere quali potresti aggiungere a world con --noreplace devi lanciare un emerge --with-bdeps y --noclean -pv (il --with-bdeps y serve ad evitare che ti siano segnalati per la rimozione pacchetti necessari alla compilazione di altri  ma non alla loro esecuzione)
> ...

 

il comando  

```
emerge --with-bdeps y --noclean -pv 
```

mi da:

```
emerge: error: no such option: --noclean
```

probabilmente il comando è

```
emerge --with-bdeps y --clean -pv
```

----------

## djinnZ

 :Embarassed:  scusa, sto smaltendo i postumi del centenario/ventennale dell'albo di ieri sera.

l'opzione giusta è --depclean (ed il --with-bdeps non serve)

----------

