# Lock file di portage

## Siker

Salve a tutti, qualcuno sa dirmi come fare per "evitare" che portage mi crei i file di lock quando interrompo una compilazione? Anni fa non li creava affatto e sinceramente, per quanto mi riguarda, sono del tutto inutili e fastidiosi, poichè mi tocca ogni volta rimuoverli a mano, e compilando parecchi sorgenti su diverse macchine ogni giorno è un inutile perdita di tempo dato che so essattamente cosa compilo... Gentoo è nata come distribuzione basata sulle scelte, beh io scelgo di non volere quei file fastidiosi  :Embarassed:  Ho più volte pensato di passare a paludis, ma amo portage fin dalla sua creazione e vorrei evitare di cambiare proprio ora, grazie in anticipo a tutti

----------

## falko

Sinceramente non so a quali file di lock ti riferisci io non ho mai avuto problemi a interrompere la compilazione.  :Shocked: 

----------

## Siker

Ad esempio mentre sta compilando premi ctrl + z:

```
SafeNet zeno # emerge  gedit

Calculating dependencies... done!

>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) app-editors/gedit-2.22.3-r1 to /

 * gedit-2.22.3.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                   [ ok ]

 * checking ebuild checksums ;-) ...                                      [ ok ]

 * checking auxfile checksums ;-) ...                                     [ ok ]

 * checking miscfile checksums ;-) ...                                    [ ok ]

 * checking gedit-2.22.3.tar.bz2 ;-) ...                                  [ ok ]

>>> Unpacking source...

>>> Unpacking gedit-2.22.3.tar.bz2 to /var/tmp/portage/app-editors/gedit-2.22.3-r1/work

 * Fixing OMF Makefiles ...                                               [ ok ]

 * Running elibtoolize in: gedit-2.22.3

 *   Applying portage-1.5.10.patch ...

 *   Applying max_cmd_len-1.5.20.patch ...

 *   Applying sed-1.5.6.patch ...

 * Applying gedit-2.18.1-fbsd.patch ...                                   [ ok ]

 * Applying gedit-2.22.1-fix-libtool-2.2.patch ...                        [ ok ]

 * Running eautoreconf in '/var/tmp/portage/app-editors/gedit-2.22.3-r1/work/gedit-2.22.3' ...

 * Running aclocal -I m4 ...                                              [ ok ]

 * Running libtoolize --copy --force --automake ...                       [ ok ]

 * Running aclocal -I m4 ...                                              [ ok ]

 * Running autoconf ...                                                   [ ok ]

 * Running autoheader ...                                                 [ ok ]

 * Running automake --add-missing --copy ...                              [ ok ]

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/app-editors/gedit-2.22.3-r1/work/gedit-2.22.3 ...

 * econf: updating gedit-2.22.3/config.guess with /usr/share/gnuconfig/config.guess

 * econf: updating gedit-2.22.3/config.sub with /usr/share/gnuconfig/config.sub

./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-scrollkeeper --enable-python --disable-spell --disable-attr --disable-gtk-doc --libdir=/usr/lib64 --build=x86_64-pc-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... ^Xyes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... ^Z

[1]+  Stopped                 emerge gedit

SafeNet zeno # emerge  gedit

Calculating dependencies... done!

>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) app-editors/gedit-2.22.3-r1 to /

waiting for lock on /var/tmp/portage/app-editors/.gedit-2.22.3-r1.portage_lockfile

```

la volta dopo che lanci la compilazione ti appaiono dei lock tipo questo

e sucessivamente questo:

```
SafeNet zeno # emerge  gedit

Calculating dependencies... done!

>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) app-editors/gedit-2.22.3-r1 to /

waiting for lock on /var/tmp/portage/.app-editors.portage_lockfile

```

io vorrei poter interrompere la compilazione in qualsiasi momento senza dovermi trovare a cancellare quest inutili lock file ogni volta... una volta, parliamo di almeno 4 anni fa, non c'erano... non capisco perchè siano stati messi...

----------

## k01

invece che ctrl+z dai ctrl+c e non ti ritrovi il lock file

----------

## nikko96

Infatti non killi il processo con Ctrl-z ma lo metti in attesa,lo sospendi, per poi

farlo ripartire con fg

----------

## djinnZ

 :Shocked:   *Quote:*   

> # FEATURES are settings that affect the functionality of portage. Most of
> 
> #     these settings are for developer use, but some are available to non-
> 
> #     developers as well.
> ...

  ci sono sempre stati  :Twisted Evil: 

----------

## Siker

 *nikko96 wrote:*   

> Infatti non killi il processo con Ctrl-z ma lo metti in attesa,lo sospendi, per poi
> 
> farlo ripartire con fg

 

ma quando uso ctrl + z è perchè voglio proprio killarli non sospenderli... non è possibile bloccare la creazione di quei file?

----------

## Siker

 *djinnZ wrote:*   

>   *Quote:*   # FEATURES are settings that affect the functionality of portage. Most of
> 
> #     these settings are for developer use, but some are available to non-
> 
> #     developers as well.
> ...

 

ti assicuro che prima di gentoo 2005.1 non c'erano (uso gentoo dall 1.4), o se c'erano non erano abilitati di default... magari qualche old user tipo bsolar se ne ricorda. Avete idea di come disabilitarli?

----------

## k01

 *Siker wrote:*   

>  *nikko96 wrote:*   Infatti non killi il processo con Ctrl-z ma lo metti in attesa,lo sospendi, per poi
> 
> farlo ripartire con fg 
> 
> ma quando uso ctrl + z è perchè voglio proprio killarli non sospenderli... non è possibile bloccare la creazione di quei file?

 

leggi più attentamente ciò che abbiamo scritto:

ctrl+z -> sospende (ed è quello che usi tu)

ctrl+c -> killa (ed è quello consigliato)

con ctrl+c non ti crea nessun lock file, se poi vuoi riprendere la compilazione basta un banale emerge --resume e riparte con il pacchetto che stava compilando

----------

## Peach

 *Siker wrote:*   

> 
> 
> ma quando uso ctrl + z è perchè voglio proprio killarli non sospenderli... non è possibile bloccare la creazione di quei file?

 

allora devi usare CTRL+C

CTRL+Z sospende, cioè stoppa un processo in foreground

http://kb.iu.edu/data/afnw.html

(primo link trovato)

----------

## Siker

scusate ho letto male =) grazie dell'aiuto

----------

## djinnZ

 *Siker wrote:*   

> Avete idea di come disabilitarli?

 FEATURES="... -distlocks ..." in /etc/make.conf; decisamente pericoloso.

Non mi è chiaro cosa vuoi fare però.

Se il tuo obiettivo è sospendere temporaneamente la compilazione di un dinosauro come mozilla perchè ti sei ricordato nel frattempo che mancano gli xfsprogs e vuoi esser sicuro di non dimenticartene il lock non ti crea problemi (anche se a questo punto sarebbe meglio usare un altro terminale o screen IMHO).

Se invece vuoi farlo con lo stesso pacchetto immagina cosa potrebbe accadere se premi il ctrl+z durante la fase di copia sul filesystem principale o l'aggiornamento di /var/db e con l'emerge successivo decrementi o aumenti la versione dello stesso pacchetto.

Oppure lanci contemporaneamente due emerge e mentre uno sta terminando la fase di compilazione l'altro ricomincia da capo.

Se vuoi la prova lancia un emerge -1 quelchetipare dai ctrl+z e lancia emerge -1 qualcosaltro ; vedrai che non viene bloccato nulla.

Ovviamente se fermi un emerge durante l'aggiornamento di /var/db vengono bloccati tutti gli altri per ovvi motivi.

 *Quote:*   

> un banale emerge --resume e riparte con il pacchetto che stava compilando

   :Confused:  ...da capo, quando hai di mezzo uno dei soliti mattoni la cosa è decisamente dolorosa.

----------

## oRDeX

se usi ccache magari lo è un pò meno.

Comunque l'autore del thread ha risolto il suo problema.

Sbagliava la combinazione di tasti da premere (o il segnale da mandare, ditelo come volete). Ora ha risolto

----------

## magowiz

 *djinnZ wrote:*   

>   *Quote:*   # FEATURES are settings that affect the functionality of portage. Most of
> 
> #     these settings are for developer use, but some are available to non-
> 
> #     developers as well.
> ...

 

scusa ma mi sembra che siano due cose ben diverse, quelli che citi tu sono i distlocks ovvero i lock sulla distdir mentre Siker parlava dei portage lock.

Da quello che so , i primi, abilitati di default servono a bloccare e avere accesso esclusivo alla distdir, infatti io per poter condividere la distdir per più pc mediante nfs ho dovuto disabilitare tale funzione.

I lock di cui si lamenta Siker invece sono i portage lock , tali lock impediscono, se ad esempio lanci due emerge contemporanei, che entrambi i processi entrino nella fase cruciale di merge/unmerge in contemporanea, infatti chi entra per primo in tale fase pone un lock e se tale processo non ha ancora finito il merge e un'altro tenta di entrare nella fase di merge troverà il lock e quindi resterà in attesa.

Un altro tipo di portage lock che ho scoperto proprio leggendo il post di Siker è quello che impedisce che due processi paralleli facciano l'emerge dello stesso pacchetto, il tutto comunque ha senso.

@Siker

Posso confermare che CTRL+Z ferma e basta un processo, lasciandoti la facoltà di riprenderne l'esecuzione in seguito mentre è CTRL+C a killare quindi come detto anche da altri. usa CTRL+C e non troverai più questi lock.

----------

