Utiliser Gentoo et Calculate Linux

[Brouillon] Calculate : Gérer ses logiciels

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Boite a liens



http://www.calculate-linux.org/main/en/optimization_of_system
https://wiki.gentoo.org/wiki/Profile

Gérer les logiciels



Avoir des infos sur un paquet installé



Code BASH :
eix <nom du paquet>


Recherche de logiciels



Pour rechercher les versions de logiciel qu'il est possible d'installer on utilise la commande eix:
Code BASH :
adrien@calculate ~ $ eix firefox
* www-client/firefox
     Available versions:  10.0.6 10.0.7 10.0.9 10.0.10 10.0.11 (~)17.0.1 {+alsa bindist custom-cflags custom-optimization +dbus debug gstreamer +ipc +jit libnotify +minimal pgo selinux startup-notification system-sqlite +webm wifi LINGUAS="af ak ar as ast be bg bn_BD bn_IN br bs ca cs csb cy da de el en_GB en_ZA eo es_AR es_CL es_ES es_MX et eu fa fi fr fy_NL ga_IE gd gl gu_IN he hi_IN hr hu hy_AM id is it ja kk km kn ko ku lg lt lv mai mk ml mr nb_NO nl nn_NO nso or pa_IN pl pt_BR pt_PT rm ro ru si sk sl son sq sr sv_SE ta ta_LK te th tr uk vi zh_CN zh_TW zu"}
     Homepage:            http://www.mozilla.com/firefox
     Description:         Firefox Web Browser
 


Installer un logiciel



Code BASH :
emerge -avq logiciel

Et sans la question
Code BASH :
emerge -vq logiciel

Tester l'installation d'un logiciel (vérifier les dépendances)



Code BASH :
emerge -pv logiciel


Supprimer un logiciel



Code BASH :
emerge -C logiciel

Mettre à jour un logiciel



Code BASH :
emerge -u logiciel

Si le logiciel est une dépendance* et qu'on ne souhaite pas qu'il soit noté comme installé manuellement :
Code BASH :
emerge -1u logiciel

*ne figure pas dans /var/lib/portage/world

Mettre à jour son système



Via l'application
Code BASH :
cl-update

Sinon, on doit enchainer toutes ces commandes sous Gentoo
Code BASH :
 
#Synchronisation de portage et overlays :
eix-sync
#Facultatif
emerge -1qvu sys-apps/portage app-portage/portage-utils
#facultatif
emerge -1qvu sys-devel/gcc
#Facultatif
emerge -1qvu dev-lang/python
#Facultatif
python-updater
#MaJ du système
emerge -aquvDN --with-bdeps=y world
#Que si MAJ de perl
perl-cleaner -q --modules
#Suppression des paquets orphelins
emerge -aqc
#Que si kernel installé
emerge -q @module-rebuild
#Recompilation des dépendances
revdep-rebuild -iq
#Nettoyage des archives (facultatif)
eclean-dist
eclean-pkg


Reprendre un emerge interrompu



En cas d'interruption de mise à jour, d'optimisation, tel emerge -e world ou emerge -quD world il est possible de reprendre le travail là où il s'est arrêté:
Code BASH :
emerge -r


Installer des applications "non supportées" (~1.0.0)



Pour installer les dernières versions de logiciels ou les logiciels non supportés mais présents dans l'arbre des logiciels (en orange dans la console dont la version est précédée du symbole ~ via la recherche eix), renseigner le fichier /etc/portage/package.keywords/custom
Pour une version spécifique du logiciel :
Code :
=www-client/firefox-17.0.1

Pour toutes les versions :
Code :
www-client/firefox

On peut utiliser en ligne de commande :
Code BASH :
echo "net-misc/teamviewer" >> /etc/portage/package.keywords/custom

Masquer un paquet



Masquer un paquet va empêcher son installation.
Tout se passe dans le fichier /etc/portage/package.mask/custom
Pour empêcher l'installation des versions supérieures à 2.2 de Zabbix, j'indique dedans :
Code BASH :
>net-analyzer/zabbix-2.1

Si non veut masquer toute la branche 5.6 de PHP :
Code BASH :
dev-lang/php:5.6

Conserver les USEFLAG spécifiques



Code BASH :
 echo "sys-kernel/calculate-sources -minimal" >> /etc/portage/package.use/custom

Pour désactiver toutes les langues de Chromium par exemple, sauf le français :
Code BASH :
 echo "www-client/chromium -l10n_* l10n_fr" >> /etc/portage/package.use/custom

Lister les paquets installés



Tous les paquets (i majuscule)
Code BASH :
eix -cI 

Suivant un motif (contenant cal):
Code BASH :
eix -cI cal


Et depuis un overlay spécifique :
Code BASH :
eix -cI --installed-in-overlay overlay


Tout recompiler les paquets



Code BASH :
emerge -e system && emerge -e world

system : système de base gentoo
world : logiciels (/var/lib/portage/world)

Ajouter un dépot (overlay)



http://gpo.zugaina.org/Overlays/
Code BASH :
layman -a nom-overlay

Avoir connaissance de la signification d'u USEFLAG



Code BASH :
equery u pbzip2
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-arch/pbzip2-1.1.8:
 U I
 - - static  : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically
 - - symlink : Install symlinks which override app-arch/bzip2 implementation
 


Savoir dans quel paquet se trouve un fichier



Remarque : le paquet doit être installé :
Code BASH :
equery b $(which gpg2)
 * Searching for /usr/bin/gpg2 ... 
app-crypt/gnupg-2.0.25 (/usr/bin/gpg2)
 

Lister toutes les dépendances d'un paquet



Remarque : le paquet doit être installé :
Code BASH :
equery g clementine

Ou en précisant la version :
Code BASH :
equery g clementine-1.3.1

Exemple :
Code TEXT :
$ equery g clementine-1.3.1
 * Searching for clementine1.3.1 ...
 * dependency graph for media-sound/clementine-1.3.1
 `--  media-sound/clementine-1.3.1  amd64 
   `--  dev-db/sqlite-3.12.0  (dev-db/sqlite) amd64 
   `--  dev-libs/glib-2.46.2-r3  (>=dev-libs/glib-2.24.1-r1) amd64 
   `--  dev-libs/libxml2-2.9.4  (dev-libs/libxml2) amd64 
   `--  dev-libs/protobuf-2.5.0-r2  (dev-libs/protobuf) amd64 
   `--  dev-libs/qjson-0.8.1-r1  (dev-libs/qjson) amd64 
   `--  dev-qt/qtcore-4.8.6-r2  (>=dev-qt/qtcore-4.5) amd64 
   `--  dev-qt/qtgui-4.8.6-r4  (>=dev-qt/qtgui-4.5) amd64 
   `--  dev-qt/qtopengl-4.8.6-r1  (>=dev-qt/qtopengl-4.5) amd64 
   `--  dev-qt/qtsql-4.8.6-r1  (>=dev-qt/qtsql-4.5) amd64 
   `--  media-libs/chromaprint-1.2  (>=media-libs/chromaprint-0.6) amd64 
   `--  media-libs/gstreamer-1.6.3  (media-libs/gstreamer) amd64 
   `--  media-libs/gst-plugins-base-1.6.3  (media-libs/gst-plugins-base) amd64 
   `--  media-libs/libechonest-2.3.1-r1  (media-libs/libechonest) amd64  [qt4]
   `--  media-libs/libmygpo-qt-1.0.8  (>=media-libs/libmygpo-qt-1.0.8) ~amd64 
   `--  media-libs/taglib-1.9.1-r2  (>=media-libs/taglib-1.8) amd64  [mp4]
   `--  sys-libs/zlib-1.2.8-r1  (sys-libs/zlib) amd64 
   `--  dev-libs/crypto++-5.6.2-r3  (dev-libs/crypto++) amd64 
   `--  virtual/glu-9.0-r1  (virtual/glu) amd64 
   `--  virtual/opengl-7.0-r1  (virtual/opengl) amd64 
   `--  x11-libs/libX11-1.6.3  (x11-libs/libX11) amd64 
   `--  dev-libs/libcdio-0.92  (dev-libs/libcdio) amd64 
   `--  dev-qt/qtdbus-4.8.6-r1  (>=dev-qt/qtdbus-4.5) ~amd64 
   `--  media-libs/libgpod-0.8.3-r1  (>=media-libs/libgpod-0.8.0) amd64 
   `--  media-libs/liblastfm-1.0.9  (>=media-libs/liblastfm-1) amd64  [qt4(+)]
   `--  media-libs/libmtp-1.1.11  (>=media-libs/libmtp-1.0.0) amd64 
   `--  sci-libs/fftw-3.3.4  (sci-libs/fftw) amd64 
   `--  media-libs/glew-1.10.0-r2  (media-libs/glew) amd64 
   `--  media-libs/libprojectm-2.1.0-r1  (>=media-libs/libprojectm-1.2.0) amd64 
   `--  dev-libs/boost-1.56.0-r1  (>=dev-libs/boost-1.39) amd64 
   `--  virtual/pkgconfig-0-r1  (virtual/pkgconfig) amd64 
   `--  sys-devel/gettext-0.19.7  (sys-devel/gettext) amd64 
   `--  dev-qt/qttest-4.8.6-r1  (dev-qt/qttest) amd64 
   `--  dev-cpp/gmock-1.7.0-r1  (dev-cpp/gmock) amd64 
   `--  dev-cpp/sparsehash-2.0.2  (dev-cpp/sparsehash) amd64 
   `--  media-sound/pulseaudio-8.0  (media-sound/pulseaudio) amd64 
   `--  gnome-base/gsettings-desktop-schemas-3.18.1  (gnome-base/gsettings-desktop-schemas) amd64 
   `--  sys-devel/make-4.1-r1  (sys-devel/make) amd64 
   `--  dev-util/cmake-3.4.3  (>=dev-util/cmake-2.8.12) amd64 
   `--  sys-apps/sed-4.2.1-r1  (>=sys-apps/sed-4) amd64 
   `--  x11-base/xorg-server-1.17.4  (x11-base/xorg-server) amd64  [xvfb]
   `--  x11-apps/xhost-1.0.7  (x11-apps/xhost) amd64 
   `--  sys-fs/udisks-2.1.7  (sys-fs/udisks) amd64 
   `--  media-plugins/gst-plugins-libmms-1.6.3  (media-plugins/gst-plugins-libmms) amd64 
   `--  gnome-base/gvfs-1.26.3  (gnome-base/gvfs) amd64 
   `--  media-plugins/gst-plugins-meta-1.6.3  (media-plugins/gst-plugins-meta) amd64 
   `--  media-plugins/gst-plugins-soup-1.6.3  (media-plugins/gst-plugins-soup) amd64 
   `--  media-plugins/gst-plugins-taglib-1.6.3  (media-plugins/gst-plugins-taglib) amd64 
[ media-sound/clementine-1.3.1 stats: packages (48), max depth (1) ]
 


Enregistrer un paquet dans le world file



Vous avez un paquet installé, mais non référencé dans le world ? Il ne sera jamais mis à jour, et il se peut que d'autres compilations échouent. Ou bien vous voulez conserver en "dur" un noyau qui fonctionne bien ?
Il faut pour cela utiliser l'option --noreplace
Code BASH :
emerge --noreplace app-emulation/virtualbox
Local copy of remote index is up-to-date and will be used.
Calculating dependencies... done!
>>> Recording app-emulation/virtualbox in "world" favorites file...
>>> Auto-cleaning packages...
>>> No outdated packages were found on your system.
 

Supprimer un paquet dans le world file



A contrario, vous avez un paquet marqué manuellement dans le world et vous voulez le supprimer pour une raison ou pour une autre, il suffit d'utiliser l'option --deselect :
Code BASH :
emerge --deselect lepaquet

S'il est utilisé comme dépendance il ne sera pas désinstallé par la suite, s'il est inutile, il le sera. Cette action ne désinstalle pas le paquet.

Installer un paquet depuis les sources au lieu du paquet binaire



Beaucoup de paquets sur Calculate Linux sont déjà compilés et distribués sous forme binaire.
La personnalisation d'un "USE" compile automatiquement le paquet sur la machine, mais avec les FLAG par défaut, le binaire est automatiquement téléchargé.
Si on souhaite tout de même compiler manuellement le paquet, procéder comme ceci :
Code BASH :
FEATURES="-getbinpkg" emerge -avq paquet

Filesize does not match recorded size



Une fois, j'ai eu ce souci lors de la mise à jour :
Code BASH :
>>> Verifying ebuild manifests
!!! Digest verification failed:
!!! /usr/portage/sys-apps/busybox/busybox-9999.ebuild
!!! Reason: Filesize does not match recorded size
!!! Got: 8493
!!! Expected: 8580

Il suffit de regénerer les infos de métadonnées (ici exemple avec sys-apps/busybox) :
Code BASH :
 cd /usr/portage/sys-apps/busybox
ebuild --force busybox-9999.ebuild manifest

Mettre à jour un fichier de configuration



Sous Calculate Linux, on travaille avec des modèles. Si on souhaite modifier par exemple le fichier de config de GRUB, ne pas modifier le fichier /etc/default/grub mais créer le fichier modèle ayant le même nom mais finissant par .clt (Exemple : /etc/default/grub.clt On peut copier le grub en grub.clt)
Modifier ensuite ce qu'on veut dans ce fichier .clt puis mettre à jour les fichiers de configuration :
dispatch-conf -f
Ensuite, appeler la commande cl-XX qui utilise ce fichier.
Les différences sont affichées à l'écran et on applique les modifications avec u.
Exemple :
Code BASH :
cl-setup-boot 
 * On configure les paramètres d'amorçage ...
 * Creating Host-Only initramfs ...  
 * Host-Only initramfs has been created  
 * Configuring the grub  
--- /etc/default/grub2015-07-25 10:20:11.224213906 +0200
+++ /etc/default/._cfg0000_grub2015-07-25 10:20:32.218213023 +0200
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# Modified Calculate-core 3.3.2.7
+# Modified Calculate-core 3.3.3.7
 # Processed template files:
 # /var/lib/layman/calculate/profiles/templates/3.3/2_ac_install_merge/sys-boot/grub/default.grub
 # /var/lib/layman/calculate/profiles/templates/3.3/3_ac_install_live/1-merge/sys-boot/grub/new-3.3.1-splashutils/default.grub.default
@@ -70,7 +70,7 @@
 #GRUB_DISABLE_RECOVERY=true
 GRUB_DISABLE_RECOVERY=true
 GRUB_DEFAULT=saved
-GRUB_TIMEOUT=10
+GRUB_TIMEOUT=2
 GRUB_GFXMODE="1024x768"
 GRUB_BACKGROUND="/boot/grub/grub-calculate.png"
 GRUB_COLOR_NORMAL="white/black" 
 * (1 of 1) -- /etc/default/grub
Sélectionnez une action de configuration : (Supprimer le nouveau[z]/Utiliser le nouveau[u]/Suivant[n]): 
 * Installation du chargeur d'amorçage ...                                [ ok ]
 * Changement d'ordonnanceur d'E/S ...                                    [ ok ]
 * Les paramètres d'amorçage ont bien été configurés !

Configurer son make.conf dès l'installation



Vérifier que MAKEOPTS = nb de cores + 1
Code :
MAKEOPTS="-j9"

On peut ajouter un FTP autre que celui par défaut (plus proche de chez nous). Exemple sur ma CLD (KDE donc, en 64bits)
Code :
PORTAGE_BINHOST="ftp://download.asso-linux-online.fr/download/calculate/CLD/grp/x86_64"

Voir les variables d'environnement :
Code BASH :
adrien@oxygen ~ $ portageq envvar FETCHCOMMAND
wget -t 3 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}"

Si on veut limiter la bande passante lors des installations de mises à jour (petites connexions) on peut réécrire la variable dans le make.conf (exemple ici avec une limite à 20ko/s) :
Code BASH :
FETCHCOMMAND="wget --limit-rate=20k -t 3 -T 60 --passive-ftp -O \${DISTDIR}/\${FILE} \${URI}"


On peut (si on n'est pas en profil binaire) forcer l'installation des paquets en français uniquement:
Code :
LINGUAS="fr"

ou maintenant
Code :
L10N="fr"


Régler le timezone et l'horloge



Code BASH :
calculate adrien # date
dim. janv. 20 16:45:48 UTC 2013
calculate adrien # cp /usr/share/zoneinfo/Europe/Paris /etc/localtime 
calculate adrien # echo "Europe/Paris" > /etc/timezone 
calculate adrien # date
dim. janv. 20 17:46:46 CET 2013


Services



Pour faire démarrer bumblebee par exemple au démarrage de la machine, saisir:
Code BASH :
rc-update add bumblebee default

Pour le retirer du démarrage:
Code BASH :
rc-update del bumblebee default

LA commande ci-dessous permet de voir quels services sont actifs au démarrage de la machine (default)
Code BASH :
rc-update -v


Modules



Pour lancer automatiquement des modules au démarrage de la machine, éditer le fichier /etc/conf.d/modules et y ajouter dans la ligne non commentée les modules séparés par un espace:
Exemple avec mon fichier dans lequel j'ai ajouté les 3 modules virtualbox:
Code BASH :
modules_3="acpi-cpufreq cpufreq_conservative cpufreq_powersave cpufreq_userspace mperf speedstep-lib vboxdrv vboxnetflt vboxnetadp"

En cas de MàJ du noyau: (voir avec XK ?)
Code BASH :
genkernel --oldconfig all


Profiles



Voir son profil (c'est l'étoile qui est notre profil actuel)
Code BASH :
eselect profile list
<sortie ommise>
  [15]  calculate:calculate/desktop/CLD/amd64 *
  [16]  calculate:calculate/desktop/CLD/amd64/binary
<sortie ommise>

Binary = paquets déjà précompilés => Install rapide.
amd64 = paquets sources compilés sur la machine => Install lente.
Définir un profile (ex le n° 15):
Code BASH :
eselect profile set 15