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é



Copier vers le presse-papierCode 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:
Copier vers le presse-papierCode 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



Copier vers le presse-papierCode BASH :
emerge -avq logiciel

Et sans la question
Copier vers le presse-papierCode BASH :
emerge -vq logiciel

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



Copier vers le presse-papierCode BASH :
emerge -pv logiciel


Supprimer un logiciel



Copier vers le presse-papierCode BASH :
emerge -C logiciel

Mettre à jour un logiciel



Copier vers le presse-papierCode BASH :
emerge -u logiciel

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

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

Mettre à jour son système



Via l'application
Copier vers le presse-papierCode BASH :
cl-update

Sinon, on doit enchainer toutes ces commandes sous Gentoo
Copier vers le presse-papierCode 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é:
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode :
=www-client/firefox-17.0.1

Pour toutes les versions :
Copier vers le presse-papierCode :
www-client/firefox

On peut utiliser en ligne de commande :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode BASH :
>net-analyzer/zabbix-2.1

Si non veut masquer toute la branche 5.6 de PHP :
Copier vers le presse-papierCode BASH :
dev-lang/php:5.6

Conserver les USEFLAG spécifiques



Copier vers le presse-papierCode BASH :
 echo "sys-kernel/calculate-sources -minimal" >> /etc/portage/package.use/custom

Lister les paquets installés



Tous les paquets (i majuscule)
Copier vers le presse-papierCode BASH :
eix -cI 

Suivant un motif (contenant cal):
Copier vers le presse-papierCode BASH :
eix -cI cal


Et depuis un overlay spécifique :
Copier vers le presse-papierCode BASH :
eix -cI --installed-in-overlay overlay


Tout recompiler les paquets



Copier vers le presse-papierCode 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/
Copier vers le presse-papierCode BASH :
layman -a nom-overlay

Avoir connaissance de la signification d'u USEFLAG



Copier vers le presse-papierCode 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é :
Copier vers le presse-papierCode 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é :
Copier vers le presse-papierCode BASH :
equery g clementine

Ou en précisant la version :
Copier vers le presse-papierCode BASH :
equery g clementine-1.3.1

Exemple :
Copier vers le presse-papierCode 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.
Pour ajouter le paquet, utiliser l'option --noreplace
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode BASH :
FEATURES="-getbinpkg" emerge -avq paquet

Filesize does not match recorded size



Une fois, j'ai eu ce souci lors de la mise à jour :
Copier vers le presse-papierCode 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) :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode 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
Copier vers le presse-papierCode :
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)
Copier vers le presse-papierCode :
PORTAGE_BINHOST="ftp://download.asso-linux-online.fr/download/calculate/CLD/grp/x86_64"

Voir les variables d'environnement :
Copier vers le presse-papierCode 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) :
Copier vers le presse-papierCode 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:
Copier vers le presse-papierCode :
LINGUAS="fr"

ou maintenant
Copier vers le presse-papierCode :
L10N="fr"


Régler le timezone et l'horloge



Copier vers le presse-papierCode 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:
Copier vers le presse-papierCode BASH :
rc-update add bumblebee default

Pour le retirer du démarrage:
Copier vers le presse-papierCode BASH :
rc-update del bumblebee default

LA commande ci-dessous permet de voir quels services sont actifs au démarrage de la machine (default)
Copier vers le presse-papierCode 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:
Copier vers le presse-papierCode 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 ?)
Copier vers le presse-papierCode BASH :
genkernel --oldconfig all


Profiles



Voir son profil (c'est l'étoile qui est notre profil actuel)
Copier vers le presse-papierCode 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):
Copier vers le presse-papierCode BASH :
eselect profile set 15