# Question sur EMERGE

## guegs

Salut!!!

Je suis en train d'installer kde 3.2 sur mon portable. 

Je voudrait telecharger tous les paquetages sur le poste avant de lancer la compilation, c'est possible (c'est pour compiler au bureau, ya pas le net)

De plus, est ce qu'il sera possible de couper la compil (entre deux paquetages), puis de reprendre plus tard??????

Merci.

----------

## DomiX

Bonjour  :Smile: 

Pour télécharger uniquement les packets utilisent l'option -f de emerge : 

```
--fetchonly (-f)

              Instead of doing any package building, just perform fetches  for

              all packages (the main package as well as all dependencies.)

```

Pour ce qui est de la reprise de la compilation ça m'intéresse   :Smile: 

A+

----------

## sebweb

"emerge --help" apporte la réponse

 *Quote:*   

> 
> 
> -fetchonly (-f short option)
> 
>               Instead of doing any package building, just perform fetches for
> ...

 

Et si tu n'est pas anglophone, l'option -f te permet de télécharger sans compiler.

Quand tu voudra par la suite tu aura juste a faire un "emerge <nom de ton programme>

----------

## yoyo

 *guegs wrote:*   

> De plus, est ce qu'il sera possible de couper la compil (entre deux paquetages), puis de reprendre plus tard??????

 Tu peux stopper un emerge à tout moment avec "ctrl-c".

Ensuite, "emerge --resume" reprends là où il s'était arrêté (sous certaines conditions, cf le manuel d'emerge) mais de toute façon, tu relances l'emerge avec la même commande qu'avant de le stopper et il reprendra au dernier paquet non emergé.

Un exemple : "emerge world" va me mettre à jour 15 paquets

Je lance l'emerge puis au 8ème paquet : "ctrl-c"

Je fais 2/3 bidouilles (change de term, de console etc.)

Je relance mon "emerge world" : là il redémarre au 8ème paquet du world précédent (mais il sera numéroté 1/7 puisque emerge recompte le nombre de paquet restant).

Il est important de noter que l'emerge reprend au début du dernier paquet emergé : si on tue l'emerge après 10h de compile de openoffice alors qu'il n'est pas arrivé au bout, il faudra refaire ces 10h de compil'.

En espérant avoir été clair ...

----------

## guegs

Eh ben, ca n'a pas tardé avant que j'obtienne des reponses.

Merci beaucoup, j'essaye ca tout de suite (d'ailleurs c'est deja en train de telecharger).

----------

## ghoti

 *yoyo wrote:*   

> Il est important de noter que l'emerge reprend au début du dernier paquet emergé : si on tue l'emerge après 10h de compile de openoffice alors qu'il n'est pas arrivé au bout, il faudra refaire ces 10h de compil'..

 

Sous certaines conditions, il est parfois possible d'"achever" le package interrompu sans repartir du début.

Pour cela, on peut s'inspirer de la FAQ

En relançant manuellement le "make", seules les parties non encore compilées le seront.

Ensuite, il faut exécuter soi-même les instructions "ebuild" pour terminer l'installation.

Malheureusement, ça ne marche qu'avec les paquets les plus simples ...

----------

## yoyo

@ghoti : quelle est la différence entre "emerge --resume" et la procédure que tu décris ??

----------

## TGL

Je me permets de griller ghoti vu que je suis là. "--resume", il ne sert pas à reprendre un emerge partiellement entamé, mais plutôt à reprendre une liste d'emerge, en recommençant à partir de celui qui avait été interrompu. Mais une "demi compilation" sera perdue et recommencée du début. La technique de ghoti au contraire sert à finir le boulot d'une compilation entamée.

Plutôt que la façon ghoti pour reprendre une compilation partielle, je préfère: 

```
% ebuild /usr/portage/categorie/paquet/paquet-x.y.ebuild compile install qmerge
```

 Ça va refaire les tâches de build à partir du compilation. Ça inclue en général de refaire un './configure', mais c'est pas grave puisqu'il donnera les même résultats que la fois d'avant. Ensuite, ça refera probablement un make, et là on tirera profit des objets déjà compilés. Bref, c'est assez proche de ce que proposait ghoti, mais on n'a pas à ouvrir l'ebuild et à faire à la main les commandes. Enfin bon, le résultat est à peut près aussi aléatoire, et ça ne marchera pas forcement bien à tout les coups sur des procédures de build un peu tordues.

----------

## yoyo

 *TGL wrote:*   

> Je me permets de griller ghoti vu que je suis là.

 Ah la la, ils se croient tout permis ces modos  :Laughing:   ...

 *TGL wrote:*   

> "--resume", il ne sert pas à reprendre un emerge partiellement entamé, mais plutôt à reprendre une liste d'emerge, en recommençant à partir de celui qui avait été interrompu. Mais une "demi compilation" sera perdue et recommencée du début. La technique de ghoti au contraire sert à finir le boulot d'une compilation entamée.

 OK, c'est plus clair. Merci ...

Donc en gros, le "--resume" évite juste de recalculer la liste de paquets à installer ??

----------

## TGL

 *yoyo wrote:*   

> Donc en gros, le "--resume" évite juste de recalculer la liste de paquets à installer ??

 

Il la recalcule quand même  :Smile:  Bref il sert à pas grand chose, sauf si: 

- on a pas d'historique dans son shell, et on avait passée une grosse liste de paquets à emerge, et on n'a pas envie de la retaper (mouaif...)

 - on veut se faire un alias de ce genre: 

```
alias essaye_encore='emerge --resume --skipfirst'
```

 qui permet de reprendre nos install en zappant la première si possible. Ça peut être pratique pour se débloquer après un paquet qui foire sa compile si on a quand même envie de continuer notre mise à jour par exemple. (mouaif... perso dans ces cas là je masque pour un jour ou deux la version récalcitrante du paquet plutôt)

----------

## yoyo

 *TGL wrote:*   

> Il la recalcule quand même  Bref il sert à pas grand chose

 

C'est bien ce que je me disais ...   :Very Happy:   (mes excuses aux personnes qui ont dévelopée cette option)

----------

## Bastux

Sinon un truc tout bête qui est valable pour tout et n'importe quoi d'ailleurs  :Smile: 

Tu lances ton emerge ok pas de pb, et là t'en as marre, tu veu te matter un divx mais l'emerge bouffe tout le cpu, tu fais un pti ctrl-z, ça va le stopper.

"fg" pour le reprendre.

N.B.: Ce n'est valable QUE dans la même console.

----------

## sireyessire

 *Bastux wrote:*   

> 
> 
> Tu lances ton emerge ok pas de pb, et là t'en as marre, tu veu te matter un divx mais l'emerge bouffe tout le cpu, tu fais un pti ctrl-z, ça va le stopper.
> 
> "fg" pour le reprendre.
> ...

 

Note tu peux aussi rajouter dans ton make.conf 

```
PORTAGE_NICENESS=15
```

et continuer à travailler tranquille (ie regarder un divx   :Wink:  )

Ps le 15 c'est comme ça tu peux mettre de +1 à +19 pour que ces process t'emerdent pas trop mais si tu mets une nombre négatif alors il s'exécutera en priorité  :Razz: 

----------

## guegs

Ca sert a quoi PORTAGE_NICENESS ???????????

----------

## DomiX

Ca permet de donner une priorité d'exécution envers les autres programmes.

```
man nice
```

A+

----------

## Thom N2h

si j'ai bien compris c'est l'odre de priorité du Processus. si ton emerge est le seul porcessus lancé il utilisera tout le CPU, maintenant, s'il tu travailles en même temps  :Wink:  il faut qu'il répartisse les taches en fonction des priorités données au processus. ton mplayer est prioritaire devant ton emerge dc il utilisera le processeur comme il l'entend, et le emerge garde les miettes derrière pour compiler

----------

## sorg

 *Bastux wrote:*   

> Sinon un truc tout bête qui est valable pour tout et n'importe quoi d'ailleurs 
> 
> Tu lances ton emerge ok pas de pb, et là t'en as marre, tu veu te matter un divx mais l'emerge bouffe tout le cpu, tu fais un pti ctrl-z, ça va le stopper.
> 
> "fg" pour le reprendre.
> ...

 

 :Shocked:   :Shocked:   Mais ce tip est absolument fantastique! Ca me troue le cul!

----------

## J4nus

wé le ctrl+z et fg pour resume c vraiment dla balle !!!

merci pour cette astuce elle mérite d'être encadrée !!

----------

## CryoGen

Salut , je suis nouveau avec Gentoo et j'ai aussi une question qui concerne emerge

Faut-il faire un emerge sync de temps en temps ?? ou bien l'arbre ce met a jour à chaque appel de emerge ?

Merci.

(au passage : fg = foreground , ctrl+z peut mettre en bg (background n'importe quel processus  :Wink:  )

----------

## TGL

Réponse A, et c'est mon dernier mot.

----------

## 3.1415

avec l'avis du public, c quand meme beaucoup plus simple...        :Very Happy: 

----------

## sorg

 *CryoGen wrote:*   

> Salut , je suis nouveau avec Gentoo et j'ai aussi une question qui concerne emerge
> 
> Faut-il faire un emerge sync de temps en temps ?? ou bien l'arbre ce met a jour à chaque appel de emerge ?
> 
> Merci.
> ...

 

Donc quand c'est en bg ca continue à tourner ? C'est pratique ca pour zapper des wget qu'on à oublier de lancer avec un flag -b ... Si on ferme la console est-ce qu ca continue à tourner ?

Autre questions: coment changer le niveau de niceness s'une application en console ? (quand elle est dejà lancée)

----------

## cylgalad

bg fait que le processus tourne en arrière-plan mais ça ne l'empêche pas d'afficher sur le terminal (pas pratique).

Si tu fermes la console, a priori, le processus reçoit un SIGHUP et donc se termine plus ou moins brutalement, mais tu peux utiliser la commande nohup.

Pour changer la priorité d'ordonnancement (niceness n'est pas français, emerge manpages-fr, man nice  :Wink:  ) d'un processus, il y la commande renice.

----------

## CryoGen

 *TGL wrote:*   

> Réponse A, et c'est mon dernier mot.

 

merci bien  :Smile: 

Je tenais à preciser que ce forum m'a enormement aidé pour installer Gentoo, compiler le noyau et plein d'autre truc meme si je ne poste pas beaucoup  :Wink: 

Un grand merci à tous ceux qui ont repondu aux questions d'autres users qui m'ont par la meme occasions bien aidé  :Smile: 

Un grand bravo au forum French   :Cool: 

D'ailleur je pense que je vais bientot pas trder à vous ennuyer avec ma souris/clavier et le son   :Wink: 

----------

## linux_girl

yes.

Ca me surprand que peuts de noob connaissent pas les racourcit clavier.

Ne peut conaitres les racourcit clavier peut te faire regreter win$hoft meme si tu tape très speed.

--------------------------------

VOICI des racourcits dans un xterm (ou n'import quelle console avec bash)

NB: C-x= ctrl-x   M-x=ALt-x

C-u=suprime le debut de la ligne jusqu'au curseur

C-c=interuption du processus (je crois que ca envoye le signals 15)

C-z suspend une commande du shell

C-s suspend le stdout (la sortie du terminal)

C-q remet le stdout

C-t corrige nos probs de dislexies

C-a le curseur revient au debut de la ligne de commande

C-e le curseurs va a la fin de la ligne de commande

C-d = EOF autrement dit end of file sert parfois pour lancer une action dans les prog interactif ou pour signaler la fin d'un pipe : 

cat >file.txt (va se mettre a lire stdin=entrée standart .taper tu text puis finisser l'edition avec C-d)

et pas mal de racourcit clavier inspirer de emacs

Les commandes liées a la reprise de processus

$jobs : liste toutes les commandes qui ont ete C-z dans cette console

$fg : met en premier plan la dernier commandes qui a ete C-z

$fg : %2 met en premier plan la 2eme commandes au lieu de la dernier

$bg : met en arier plan et donc vous liber la console pour taper (sauf pour les prog interactif qui meme avec un bg reprennent la console)

$bg %3 : bravos vous avez deviné

kill %2 : kill la deuxsieme commande equivaut au C-c

Quelque exemple

$xload & equivaut $xload C-z puis bg

Quelque commandes utils

slook mastu (pour verifier l'orthographe )

```

$look mastu

masturbate

masturbation

masturbational

masturbator

masturbatory

```

il faut avoir imageMagik

```
 

$convert file.ps images.jpg

$convert i.gif  i.tif

et plein d'autres format

```

ps : qpkg -f convert ne fonctione plus.  pour aucun pkg

[/code]

----------

## gim

 *cylgalad wrote:*   

> Si tu fermes la console, a priori, le processus reçoit un SIGHUP et donc se termine plus ou moins brutalement, mais tu peux utiliser la commande nohup.

 

Allez, encore une commande "shell built-in" utile : quand on a pas fait le nohup au lancement de la commande... et qu'on s'apperçoit qu'on doit fermer une console dans laquelle tourne une appli, 'ya la commande disown (-h pour les gens qui utilisent encore bash  :Wink: ).

Et puis pour ceux qui utilisent zsh, commande&! c'est un peu comme nohup, mais en plus propre, et surtout plus facile à taper.

----------

