M2BBS - Atelier Système
From silico.biotoul.fr
m (→Qt 4.8) |
m (→R et librairies) |
||
(10 intermediate revisions not shown) | |||
Line 734: | Line 734: | ||
L'installation se fait comme pour les modules python : | L'installation se fait comme pour les modules python : | ||
- | conda install r-lattice r-tidyverse r-purrr r-igraph r-reticulate r-rmysql r-biocmanager r-devtools r-caTools r-rprojroot r-shiny | + | conda install r-lattice r-tidyverse r-purrr r-igraph r-reticulate r-rmysql r-biocmanager r-devtools r-caTools r-rprojroot r-shiny r-phytools |
Comme pour python, et selon les dépôts, toutes les librairies ne sont pas disponibles. Par exemple pour l'interfaçage avec Neo4j (qui sera utilisé en IDH), c'est la librairie neo4r qui n'est pour l'instant disponible que depuis le CRAN. Il faut donc l'installer "normalement" : | Comme pour python, et selon les dépôts, toutes les librairies ne sont pas disponibles. Par exemple pour l'interfaçage avec Neo4j (qui sera utilisé en IDH), c'est la librairie neo4r qui n'est pour l'instant disponible que depuis le CRAN. Il faut donc l'installer "normalement" : | ||
Line 1,380: | Line 1,380: | ||
avec dnf | avec dnf | ||
- | dnf list gromacs | + | $guest dnf list gromacs |
$root dnf install gromacs | $root dnf install gromacs | ||
Line 1,414: | Line 1,414: | ||
Téléchargement et compilation | Téléchargement et compilation | ||
- | latest=glpk-4.65 | + | $guest latest=glpk-4.65 |
- | wget http://ftp.gnu.org/gnu/glpk/$latest.tar.gz | + | $guest wget http://ftp.gnu.org/gnu/glpk/$latest.tar.gz |
- | tar tf $latest.tar.gz | + | $guest tar tf $latest.tar.gz |
- | tar xf $latest.tar.gz | + | $guest tar xf $latest.tar.gz |
- | cd $latest | + | $guest cd $latest |
- | ./configure | + | $guest ./configure |
- | make | + | $guest make |
- | make check | + | $guest make check |
Si pas d'erreur | Si pas d'erreur | ||
Line 1,429: | Line 1,429: | ||
Chromium, la version FOSS (free an dopen source software) est disponible dans le dépôt Fedroa : | Chromium, la version FOSS (free an dopen source software) est disponible dans le dépôt Fedroa : | ||
- | $ | + | $guest dnf list chromium |
Autant utiliser celle-là quand elle suffit : | Autant utiliser celle-là quand elle suffit : | ||
Line 1,441: | Line 1,441: | ||
$guest cd ~/Downloads | $guest cd ~/Downloads | ||
- | wget http://darlinglab.org/mauve/snapshots/2015/2015-02-13/linux-x64/mauve_linux_snapshot_2015-02-13.tar.gz | + | $guest wget http://darlinglab.org/mauve/snapshots/2015/2015-02-13/linux-x64/mauve_linux_snapshot_2015-02-13.tar.gz |
- | cd ~/bin | + | $guest cd ~/bin |
- | tar tf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz | + | $guest tar tf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz |
- | tar xf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz | + | $guest tar xf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz |
- | ln -s mauve_snapshot_2015-02-13/Mauve | + | $guest ln -s mauve_snapshot_2015-02-13/Mauve |
== OptFlux == | == OptFlux == | ||
Line 1,453: | Line 1,453: | ||
$guest wget https://sourceforge.net/projects/optflux/files/LatestRelease/OptFlux-3.4.0-linux-x64-installer.run/download -O OptFlux-installer.run | $guest wget https://sourceforge.net/projects/optflux/files/LatestRelease/OptFlux-3.4.0-linux-x64-installer.run/download -O OptFlux-installer.run | ||
$guest chmod +x OptFlux-installer.run | $guest chmod +x OptFlux-installer.run | ||
- | ./OptFlux-installer.run | + | $guest ./OptFlux-installer.run |
Si le répertoire de destination choisi pour l'installation est <tt>~/bin/OptFlux-3.4.0</tt>, on peut créer un script bash pour le lancer directement : | Si le répertoire de destination choisi pour l'installation est <tt>~/bin/OptFlux-3.4.0</tt>, on peut créer un script bash pour le lancer directement : | ||
$guest cd ~/bin | $guest cd ~/bin | ||
- | echo '#!/bin/bash | + | $guest echo '#!/bin/bash |
D=$(pwd) | D=$(pwd) | ||
cd ~/bin/OptFlux-3.4.0 | cd ~/bin/OptFlux-3.4.0 | ||
Line 1,463: | Line 1,463: | ||
cd $D | cd $D | ||
' > optflux | ' > optflux | ||
- | chmod +x optflux | + | $guest chmod +x optflux |
Test : | Test : | ||
$guest cd | $guest cd | ||
- | optflux | + | $guest optflux |
== hapflk == | == hapflk == | ||
Avec conda, création d'un environnement spécifique car il utilise python d'une version inférieure | Avec conda, création d'un environnement spécifique car il utilise python d'une version inférieure | ||
- | conda create --name hapflk | + | $guest conda deactivate |
- | conda activate hapflk | + | $guest conda create --name hapflk |
- | conda install hapflk | + | $guest conda activate hapflk |
+ | $guest conda install hapflk | ||
- | '''Remarque :''' | + | '''Remarque :''' il faudra se souvenir que pour l'utilisation de hapflk, il faudra penser à activer l'environnement correspondant. |
<!-- | <!-- | ||
Line 1,489: | Line 1,490: | ||
$guest cd ~/Downloads | $guest cd ~/Downloads | ||
- | wget http://software.genetics.ucla.edu/admixture/binaries/admixture_linux-1.3.0.tar.gz | + | $guest wget http://software.genetics.ucla.edu/admixture/binaries/admixture_linux-1.3.0.tar.gz |
- | tar tf admixture_linux-1.3.0.tar.gz | + | $guest tar tf admixture_linux-1.3.0.tar.gz |
- | cd ~/bin | + | $guest cd ~/bin |
- | tar xf ~/Downloads/admixture_linux-1.3.0.tar.gz | + | $guest tar xf ~/Downloads/admixture_linux-1.3.0.tar.gz |
- | ln -s admixture_linux-1.3.0/admixture | + | $guest ln -s admixture_linux-1.3.0/admixture |
Test | Test | ||
Line 1,504: | Line 1,505: | ||
$guest cd ~/Downloads | $guest cd ~/Downloads | ||
- | wget https://github.com/cytoscape/cytoscape/releases/download/3.7.2/Cytoscape_3_7_2_unix.sh | + | $guest wget https://github.com/cytoscape/cytoscape/releases/download/3.7.2/Cytoscape_3_7_2_unix.sh |
sh Cytoscape_3_7_2_unix.sh | sh Cytoscape_3_7_2_unix.sh | ||
Si le répertoire d'installation choisi est ~/bin/Cytoscape_v3.7.2 | Si le répertoire d'installation choisi est ~/bin/Cytoscape_v3.7.2 | ||
$guest cd ~/bin | $guest cd ~/bin | ||
- | + | $guest ln -s Cytoscape_v3.7.2/Cytoscape | |
Test | Test | ||
Line 1,531: | Line 1,532: | ||
== Autres librairies R == | == Autres librairies R == | ||
- | conda install bioconductor-BSgenome bioconductor-BSgenome.Dmelanogaster.UCSC.dm3 bioconductor-BSgenome.Dmelanogaster.UCSC.dm3.masked bioconductor-MotifDb bioconductor-seqLogo bioconductor-motifStack bioconductor-GenomicFeatures bioconductor-TxDb.Dmelanogaster.UCSC.dm3.ensGene bioconductor-Rqc bioconductor-pasillaBamSubset bioconductor-MMDiffBamSubset bioconductor-org.Dm.eg.db bioconductor-drosophila2.db bioconductor-drosophila2probe bioconductor-drosophila2cdf bioconductor-hom.Dm.inp.db bioconductor-GO.db bioconductor-biomaRt bioconductor-SRAdb bioconductor-GEOquery bioconductor-Gviz bioconductor-AnnotationHub | + | $guest conda install bioconductor-BSgenome bioconductor-BSgenome.Dmelanogaster.UCSC.dm3 bioconductor-BSgenome.Dmelanogaster.UCSC.dm3.masked bioconductor-MotifDb bioconductor-seqLogo bioconductor-motifStack bioconductor-GenomicFeatures bioconductor-TxDb.Dmelanogaster.UCSC.dm3.ensGene bioconductor-Rqc bioconductor-pasillaBamSubset bioconductor-MMDiffBamSubset bioconductor-org.Dm.eg.db bioconductor-drosophila2.db bioconductor-drosophila2probe bioconductor-drosophila2cdf bioconductor-hom.Dm.inp.db bioconductor-GO.db bioconductor-biomaRt bioconductor-SRAdb bioconductor-GEOquery bioconductor-Gviz bioconductor-AnnotationHub |
<!-- | <!-- | ||
Line 1,547: | Line 1,548: | ||
Test | Test | ||
<pre> | <pre> | ||
+ | $guest R | ||
library(Biostrings) | library(Biostrings) | ||
library(BSgenome) | library(BSgenome) |
Revision as of 15:13, 23 October 2019
Objectifs
- Installation et configuration d'un système linux (partitionnement de disque, bootloader, configuration réseau, ...)
- Installation et configuration de logiciels (via un gestionnaire, via une procédure propriétaire, via configure/make/make test/make install)
- Installation et configuration de services (serveurs Web, bases de données)
- Sauvegarde/restauration d'un système ou de données
- Installation et configuration d'un cluster
Distributions linux populaires :
Principales étapes d'une installation typique :
- récupération d'un live cd ou usb
- gravure ou préparation du live media
- démarrage du système depuis ce live media
- procédure d'installation sur la machine. En général, les paramètres sont réduits au minimum pour faciliter l'adoption du système mais nous verrons que l'on peut organiser l'espace disque, la configuration réseau et les logiciels installés.
- redémarrage du système
- SELinux (Security Enhanced Linux)
- installation des dernières mises à jour
1er jour (8h) : liveCD, configuration réseau, partionnement de disque, installation sur HD, mises à jour, ..., service httpd/mysql/php.
Lien : commandes linux Linux_tips (pour travail en dehors de cet atelier)
Démarrage du liveCD/DVD
Création LiveCD
Pour l'année 2019-20, il s'agit de Fedora core 29 64bits (https://dl.fedoraproject.org/pub/fedora/linux/releases/29/). La dernière est la 30 mais avec la version la plus récente, il y a parfois certains logiciels qui ne s'installent pas. Pour créer un tel CD/DVD, il faut télécharger son image : un fichier .iso correspondant à l'image d'un disque (CD ou support physique) ou d'une partition au format iso9660 contenant tout le système de fichiers. Pour le graver sur un CD (ou DVD), il faut utiliser un logiciel qui permet de graver une image (burn ISO ou burn disc image) tel que Brasero
sous GNOME apparemment il existe sur Windows depuis le 7 un outil qui permet de faire ça et, sinon, il en existe des gratuits.
Remarque : Il se peut que l'ordinateur démarre à partir du disque dur. Pour booter depuis le CD, il faut parfois accéder au menu de boot. On y accède le plus souvent avec la touche Esc, F2, F8, F9, F10, F12 ou delete/suppr (dépend de chaque ordi). On obtient alors soit le menu de démarrage soit le paramétrage du BIOS.
Création d'une LiveUSBKey
Il est aussi possible de créer une clé (ou disque) USB. Cela a l'avantage d'être plus rapide (à créer et pour installer le système). Par contre, cela modifie les partitions du support et pour les clés USB, cela les détériore parfois : elles ne fonctionnent plus sur un ou plusieurs ordinateurs, voire aucun et il est difficile voire impossible de les réparer.
Différentes méthodes sont donc disponibles. En général, elles correspondent à englober la copie brute de l'image ISO sur la clé comme suit :
ATTENTION, cette opération peut tout casser et engendrer la perte de toutes les données d'un disque. Il faut bien identifier à quel périphérique correspond la clé usb sur laquelle on restaure l'image, ici c'est /dev/sdX.
dd if=Fedora-Cinnamon-Live-x86_64-29-1.2.iso of=/dev/sdX bs=8M status=progress oflag=direct
Fichier sur silico : Fedora-Cinnamon-Live-x86_64-29-1.2.iso
Démarrer le PC avec la liveUSBKey
Avant de procéder à l'installation, on peut explorer les fonctionnalités offertes par le liveCD. Il s'agit d'un vrai système linux et permet notamment de réparer un système défectueux (par exemple, réinstaller le bootloader, modifier le montage des partitions, ...).
La première chose à faire est de passer en clavier français. On peut faire ça à partir de l'interface graphique, ou bien taper la commande
# en mode graphique (server X = runlevel 5) setxkbmap fr
# en mode texte (= runlevel 3) loadkeys fr
- Déterminer les partitions du disque dur (normalement /dev/sda).
- s'il y en a, et qu'elles ne sont pas montées, monter (commande mount) dans des répertoires dans /mnt (à créer, par exemple /mnt/sda1) pour explorer les systèmes de fichiers qu'elles contiennent.
- exercices :
- création, formatage, montage, démontage, suppression de partitions aux différents formats et notions de LVM
- configuration manuelle du réseau
Séquence de démarrage
A détailler ici, anciennement :
- vérification des composants matériels (CPU, mémoire, cartes d'extension, ...) ; étape typiquement matérielle (hardware, circuits électroniques) mais avec certaines parties pouvant être mises à jour (firmware).
- recherche d'un périphérique (réseau, partition d'un disque dur ou CD ou USB) pour passer la main à une séquence de démarrage (bootloader) qui passera la main au système d'exploitation (software).
Cette recherche peut aujourd'hui s'effectuer selon deux modes : legacy (à l'ancienne ; un seul bootloader stocké dans le master boot record ou MBR ce qui peut poser des problèmes notamment pour le multi-boot) ou UEFI (la plus récente qui peut gérer plusieurs bootlaoders).
UEFI pour Unified Extensible Firmware Interface a été développé pour proposer plus de souplesse, de modularité et de fonctionnalités dans la configuration et l'utilisation matérielle de l'ordinateur.
Tous les PC (de la salle) ne supportent pas les 2 et certains systèmes (notamment windows10, à vérifier) ne s'installent que sur l'un ou l'autre mode selon le format (msdos ou standard pour legacy, et msdos et gpt pour UEFI) de la table de partitions du disque.
Si les 2 sont disponibles sur une machine, il est apparemment conseillé de préférer UEFI (cf. discussion ici).
Il existe donc différents bootloaders selon les OS (windows, linux, mac) voire pour le même OS. Pour linux, le plus répandu maintenant est grub2 (cf. ici pour une description détaillée). En gros, le démarrage se fait en 2 étapes :
- chargement d'un petit noyau (kernel) temporaire avec des pilotes (drivers) permettant de "voir" le matériel et éventuellement proposer un menu de démarrage (avec plusieurs autres noyaux différents). Selon le noyau choisi, il va lui passer la main et puis :
- démarrage d'un service (systemd) qui va se charger du reste : montage des partitions, démarrage de tous les services, connexions réseaux, affichage graphique, authentification, bureau (desktop environment), ...
Remarque : une fois le mode (UEFI ou legacy) choisi, il n'est pas possible d'installer le système pour qu'il démarre dans l'autre mode.
Installation du système
Après avoir démarré le liveCD, il suffit de lancer l'assistant d'installation. Choisissez la langue pour l’assistant, le clavier ; régler la date et l'heure.
Configuration réseau
Pour avoir une connexion réseau avec le protocole IPv4, il faut que la machine (le terminal) ait une adresse IP valide et unique sur le réseau afin de bien pouvoir acheminer les messafes. Ceci se fait le plus souvent via le protocole DHCP, voire manuellement.
Principe du DHCP : au démarrage du système (ou bien lorsque le câble réseau est branché), l'ordinateur demande à un serveur DHCP sur le réseau de lui attribuer une IP disponible et de lui fournir certains paramètres comme la passerelle (gateway), le masque de sous-réseau (netmask) et le(s) serveur(s) de noms (DNS).
Sur un réseau, il est nécessaire que chaque machine connectée soit identifiée de manière unique. Le protocole IPv4 utilise 4 octets notés X.X.X.X X ; les X pouvant avoir des valeurs de 0 à 255. Il y a donc 256×256×256×256 = 4 294 967 296 adresses possibles mais toutes ne sont pas disponibles et celles qui restent sont déjà réservées ou attribuées :
- 127.0.0.1 → machine sur laquelle on est (localhost)
- 10.0.0.X → réseau local
- 192.168.X.X → réseau local
- 224.X.X.X → internet
- 240.X.X.X → internet
- ...
Il n'y a pas de serveur DHCP configuré pour la P0. Il faut donc spécifier les IP des machines manuellement en fonction de la machine que vous utilisez.
Les plages d'adresses IP réservées pour la P0 sont les suivantes :
- 195.220.42.2 à 25 mais la 3 est utilisée ailleurs
- 195.220.42.131 à 146
Les paramètres sont les mêmes pour tout le monde :
subnet mask: 255.255.255.0 gateway: 195.220.42.1 DNS1: 64.6.64.6 DNS2: 64.6.65.6
Il semblerait que les deux DNS de la fac fonctionnent mal. Depuis la rentrée 2015, il vous est proposé d'utiliser les DNS de VerySign 64.6.64.6,64.6.65.6
A ajouter au fichier /etc/hosts
195.220.42.2 pc2 bbs18A intervenant enseignant 195.220.42.131 printer HPLaserJetM425dn.p0 195.220.42.146 router 195.220.42.4 pc4 pc4.p0 bbs12E 195.220.42.5 pc5 pc5.p0 bbs19A 195.220.42.6 pc6 pc6.p0 bbs15A 195.220.42.7 pc7 pc7.p0 bbs14A 195.220.42.8 pc8 pc8.p0 bbs18B 195.220.42.9 pc9 pc9.p0 bbs12A 195.220.42.10 pc10 pc10.p0 bbs14B 195.220.42.11 pc11 pc11.p0 bbs12F 195.220.42.12 pc12 pc12.p0 bbs15B 195.220.42.13 pc13 pc13.p0 bbs15C 195.220.42.14 pc14 pc14.p0 bbs19B 195.220.42.15 pc15 pc15.p0 bbs12H 195.220.42.16 pc16 pc16.p0 bbs12C 195.220.42.17 pc17 pc17.p0 bbs19C 195.220.42.18 pc18 pc18.p0 bbs14C 195.220.42.19 pc19 pc19.p0 bbs12K 195.220.42.20 pc20 pc20.p0 bbs12G 195.220.42.21 pc21 pc21.p0 bbs12B
Pour déterminer l'adresse de votre machine, il vous faudra vous situer dans la salle. Par exemple, pour celui ou celle qui est à la place 20, l'adresse IP est 195.220.42.20
fenêtres fenêtres fenêtres /--------\ /--------\ /--------\ /--------\ | | | | | | | | /-------------\ | 7 12E | | 11 12F | | 15 12H | | 19 12K | | | | | | | /------------------| | | | | 131 printer | | 6 19A | | 10 14B | | | 14 19B | | 18 14C | | | | | | | | 21 12B 20 12G | | | | | | e | 5 15A | | 9 12A | | | 13 15C | | 17 19C | | 146 router | n | | | | | 2 18A | | | | | | t | 4 14A | | 8 18B | \------------------| 12 15B | | 16 12C | \-------------/ r | | | | | | | | é \--------/ \--------/ \--------/ \--------/ e tableau
Commandes et fichiers :
ifconfig hostname nslookup getent ifup ifdown whois /etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-INTERFACE /etc/hosts /etc/resolve.conf
- Linux network configuration explained on opensource.com
Partitionnement du/des disque(s)
Sujet déjà évoqué dans Linux tips - fs & partitions
Pour stocker des données sur un disque, celui-ci doit d'abord être partitionné. Puis, une partition formatée (création du système de fichiers), et ensuite la partition doit être montée en un point du système de fichier.
Les disques se trouvent en général dans /dev/sdX ; X étant une lettre, a pour le premier disque, b pour le second, ... et les partitions dans /dev/sdaX ; X étant le n° de partition, 1 pour la première, etc.
Le choix du partitionnement du disque est peut-être l'étape la plus délicate pour les néophytes. Il se fait très tôt (à l'installation) mais peut être modifié par la suite. Cela reste une opération sensible car il existe toujours un risque de perdre les données d'une partition voire le système complet.
Pour la taille des différentes partitions, cela dépend de la distribution linux. Le mieux est de se référer aux recommandations habituellement trouvées dans le guide d'administration. Par exemple pour fedora18, il est recommandé de créer au moins 4 partitions : http://docs.fedoraproject.org/en-US/Fedora/18/html/Installation_Guide/s2-diskpartrecommend-x86.html
- swap partition
- /boot partition
- / partition
- /home partition
La partition /boot est souvent à part et contient les fichiers nécessaires aux toutes premières étapes de démarrage du système. C'est donc en général une partition primaire au format ext. Les autres peuvent être des partition primaires/étendues ou bien gérées par LVM.
Il est en général judicieux d'avoir une partition séparée pour /home qui contient les répertoires utilisateurs. En effet, lors d'une réinstallation du système, il est courant de formater la partition / ce qui aurait pour effet d'effacer toutes les données utilisateurs si elles ne sont pas sur une autre partition.
Pour aujourd'hui, on utilisera le paramétrage suivant pour UEFI :
- 1: laisser la partition EFI existante (la première) ou bien la créer, et la monter sur /boot/efi
- 1bis: s'il y a une deuxième partition nommée OS de type FAT/Microsoft Reserved, ne pas y toucher
- 2: 1GB ext4 /boot
- 3: 75GB ext4 /
- 4: 4Gb swap (pour pouvoir suspendre/hiberner la machine, il est recommandé 1.5 fois la RAM)
- 5: 25GB ext4 /var
- 6: 20GB ext4 /mnt/other au cas où l'on veuille y installer une autre distribution
- 7: ce qui reste pour /home
Pour aujourd'hui, on utilisera le paramétrage suivant pour legacy :
- 1: 1GB ext4 /boot
- 2: 75GB ext4 /
- 3: 4Gb swap (pour pouvoir suspendre/hiberner la machine, il est recommandé 1.5 fois la RAM)
- 4: 25GB ext4 /var
- 5: 20GB ext4 /mnt/other au cas où l'on veuille y installer une autre distribution
- 6: ce qui reste pour /home
Commandes et fichiers :
lsblk fdisk parted gparted gnome-disks palimpsest: affichage et manipulation des partitions mkfs[.ext4|.ext3|.ext2|.ntfs|...]: formatage resize2fs resizepart: redimensionner une partition pvdisplay pvcreate vgdisplay vgcreate lvdisplay lvcreate: commandes pour LVM (pv: physical volume, vg: volumegroup, lv: logical volume) mount umount: montage/démontage d'une partition sur un répertoire /etc/fstab: montage des partitions au démarrage /etc/mtab /proc/partitions: table de partitions actives /dev/sd* /dev/hd* /dev/sr* /dev/mapper/* /dev/disk/: périphériques de stockages
Notamment
lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL,STATE,TYPE
Documentation
https://semestriel.framapad.org/p/P02019installPC
ou le créer à partir de https://framapad.org/
gestionnaire de paquets
A partir d'une ou plusieurs sources, ils permettent d'installer et de maintenir à jour le système et les logiciels installés.
- dnf (fedora >= 22)
- yum (fedora <22, centos)
- rpm
- apt (ubuntu)
dnf et yum peuvent être utilisés en parallèle mais mieux vaut n'en utiliser qu'un http://dnf.readthedocs.io/en/latest/user_faq.html
dnf
Quand on connait le nom. Affichage de la disponibilité (et de la version) : Exemple avec les paquets de développement du noyau (nécessaires pour compiler certains logiciels)
$guest dnf list kernel-devel
- Si il apparaît dans Installed Packages : rien à faire à moins qu'il y ait une version plus récente :
$root dnf upgrade kernel-devel
- Si il apparaît dans Available Packages :
$root dnf install kernel-devel
Quand on ne connaît pas le nom du paquet : search. Cela a pour effet de chercher dans la description.
$guest dnf search apache
Pour obtenir la description :
$guest dnf info httpd
Pour chercher quels paquets contiennent un fichier donné :
$guest dnf provides */sbin/httpd
Pour fedora avant la 22 et CentOS, c'est exactement la même chose mais avec yum, exemple :
$guest yum list kernel-devel
Afficher le contenu d'un rpm
$guest rpm -qpl http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Ajout des dépôts de RPM fusion :
$root dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Installation des dernières mises à jour
Lors d'une installation via LiveCD/DVD/USB, il est recommandé de faire les mises à jour après installation du systèmes (puis régulièrement).
Avec les systèmes RedHat (CentOs, fedora, RHEL, ...), ceci est géré avec les RPM (RedHat Package Manager) et les logiciels package-kit/software et les utilitaires rpm/yum/dnf :
$root dnf list upgrades $root dnf upgrade
SELinux
SELinux (pour Security Enhanced Linux) permet de renforcer la sécurité. En pratique, il bloque souvent des accès et peut être déroutant lors de la configuration/installation de la machine. Par exemple à une époque (à vérifier aujourd'hui), il bloquait les connexions de apache vers mysql (pour un site web dynamique php qui se connectait à une base de données) et la cause de l'impossibilité de connexion a mis du temps à être décelée.
Pour le désactiver :
$root vi /etc/selinux/config
Remplacer :
SELINUX=enforcing
par :
SELINUX=disabled
Sauvegarder et quitter (<Esc>:wq<Enter> dans vi)
Puis redémarrer la machine.
Variables d'environnement
Le script ~/.bashrc est chargé par tout processus bash à son démarrage. Cela permet de personnaliser certaines choses comme par exemple
- la variable PATH qui contient une liste de répertoires où sont recherchées les commandes
- les alias qui permettent de définir des commandes en raccourcis d'autres
Pour afficher le contenu d'une variable d'environnement :
echo $PATH
Pour le modifier :
PATH=$PATH:~/bin
Ajouter ~/bin à la variable d'environnement PATH dans .bashrc (vi ~/.bashrc) si ce répertoire n'était pas déjà présent dans la variable PATH.
Ajouter un alias, par exemple :
alias l='ls -lh'
Une autre variable utile à connaître, LD_LIBRARY_PATH, correspond aux répertoires dans lesquels sont recherchées les librairies partagées (shared object .so pour linux, et .DLL chez microsoft). Pour interroger les librairies utilisées par un exécutable, comme par exemple bash :
ldd /bin/bash
Si une librairie n'est pas trouvée, soit le programme ne démarre pas, soit il plantera lorsqu'une des fonctions de la librairie sera appelée. Parfois, un logiciel stocke ses librairies dans un de ses répertoires et il est nécessaire d'ajouter ce répertoire dans la variable LD_LIBRARY_PATH pour le que programme puisse les trouver.
Installation d'autres logiciels
Liste à installer :
tilda fd-find baobab gparted kernel-devel bzip2-devel xz-devel zlib-devel libpng12-devel geany geany-plugins-spellcheck htop glances iotop iftop atop sysstat lshw wget telnet firewall-config chromium libreoffice xournal gnome-font-viewer filezilla gimp krita inkscape vlc gcc automake autoconf git diffuse httpd ncurses-devel mariadb-server mariadb-devel mariadb php phpMyAdmin php-bcmath php-gd php-geshi php-mbstring php-mcrypt php-pdo java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-openjfx conda igraph igraph-devel
On pourra copier/coller cette liste dans un fichier rpms.to.install.2019-20.txtet ensuite lancer l'installation :
$root dnf install $(cat rpms.to.install.2019-20.txt)
A télécharger et installer :
$guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/mysql-workbench-community-8.0.17-1.fc29.x86_64.rpm $guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/rstudio-1.2.1335-x86_64.rpm $guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/sqldeveloper-18.2.0.183.1748-1.noarch.rpm $guest wget http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm $root dnf install mysql-workbench-community-8.0.17-1.fc29.x86_64.rpm rstudio-1.2.1335-x86_64.rpm sqldeveloper-18.2.0.183.1748-1.noarch.rpm $root dnf install lpf-flash-plugin
depuis le code source
Exemple avec HMMER http://hmmer.org/
Procédure typique configure make install.
En général, on dispose d'une archive du code au format .tar.gz ou .tgz
On vérifie le contenu de l'archive
$guest tar tzf hmmer...tar.gz
ou avec la dernière version
$guest tar tf hmmer...tar.gz
Cela permet de voir ce qui va être extrait (option t. On vérifie que c'est bien dans un sous-répertoire sinon l'extraction va créer un tas de fichiers dans le répertoire courant (auquel cas on créé un répertoire et on se place dedans pour faire l'extraction).
Remarque : il y a plusieurs méthodes de compression/décompression (ici z pour gzip, sinon j pour bzip2 extension .tar.bz2, ... cf. man tar ). La dernière version de tar identifie automatique de quel format il s'agit.
Extraction du contenu :
$guest tar xzf hmmer...tar.gz
ou avec la dernière version
$guest tar xf hmmer...tar.gz
- ./configure permet de tester l'environnement et de configurer la compilation, notamment où installer les fichiers et où trouver les librairies partagées. ./configure --help pour voir toutes les options. Si l'on ne dispose pas des droits administrateur, on ne peut pas l'installer ailleurs que dans son espace utilisateur. En général, il suffit de spécifier ./configure --PREFIX=~/destination.
- $guest make lance la compilation
- $guest make test ou make check (parfois optionnel ou absent) vérifie le bon fonctionnement de ce qui a été compilé
- $root make install (habituellement en tant qu'administrateur) installe les fichiers sur le système.
Si le script ./configure se plaint de ne pas de disposer de compilateur C. Il faut donc l'installer.
$guest dnf list gcc $root dnf install gcc
D'habitude, les programmes d'HMMER sont installéq dans /usr/local/bin. Vérification :
$guest ll /usr/local/bin
Installation/configuration de services et pare-feu
Commandes :
- systemctl pour systemd (sur des systèmes plus anciens : chkconfig et service)
La commande systemctl permet de gérer quels services sont démarrés ou pas avec le système.
Pour afficher la liste des services :
$guest systemctl list-unit-files
Pour le seveur ssh (sshd) qui permet de se connecter à distance :
$guest systemctl status sshd
On voit qu'il apparaît mais n'est pas activé au démarrage.
Démarrage :
$root systemctl start sshd
Vérification :
$guest systemctl status sshd $guest ssh localhost
Pour qu'il soit lancé au démarrage :
$root systemctl enable sshd
Vérification :
$guest systemctl list-unit-files | grep sshd
Essayez de vous connecter sur l'ordinateur de votre voisin ou voisine.
apache/httpd
Y a-t-il un serveur web ? Essayer http://localhost dans un navigateur.
$guest systemctl status httpd
Pour changer la configuration du serveur Web, il faut éditer les fichiers dans /etc/httpd puis redémarrer le service
$root systemctl restart httpd
ou recharger la configuration
$root systemctl reload httpd
Essayez d'utiliser le seveur Web de votre voisin ou voisine. Normalement, le parefeu est actif et bloque le port utilisé par le serveur Web, protégeant ainsi l'accès à la machine.
Configuration du firewall
Etat du firewall :
$guest systemctl status firewalld
ou
$root firewall-cmd --state
Documentation : https://fedoraproject.org/wiki/Firewalld
C'est maintenant avec firewall-config. Il faudrait que les services suivants soient accessibles dans la Configuration permanente :
- http (80 par défaut) et https (443)
- mysql
- nfs
- ssh
Remarque : on peut aussi utiliser la commande shell firewall-cmd.
Par exemple, pour autoriser l'accès au serveur Web (port 80 par défaut) :
$root firewall-cmd --permanent --add-service=http
ou par numéro de port
$root firewall-cmd --permanent --add-port=80/tcp
Quand une règle est ajoutée de manière permanente, il faut recharger les règles pour la rendre active (runtime) :
$root firewall-cmd --reload
Documentation de Fedora : https://fedoraproject.org/wiki/Firewalld?rd=FirewallD
Autres commandes utiles :
- $root firewall-cmd --list-services : liste des services "ouverts"
- $root firewall-cmd --list-ports : liste des ports "ouvers"
- $root firewall-cmd --permanent --remove-port=port-number/port-type : "fermeture" d'un port, ex: firewall-cmd --permanent --remove-port=4000/tcp
MySQL/MariaDB
Remarque : Dans les versions plus récente de fedora, mysql est remplacé par un fork nommé MariaDB qui s'utilise exactement de la même manière (avec les mêmes commandes mysql, mysqladmin, etc.).
$root dnf install mariadb-server mariadb-devel mariadb
Démarrage du serveur
$root systemctl start mariadb
Configuration du serveur : il faut faire certains paramétrage juste après l'installation du serveur (mot de passe, et autres) :
$root /usr/bin/mysql_secure_installation
Pour les question suivantes :
- Enter current password for root (enter for none): ne rien mettre + entrée
- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] n
- Reload privilege tables now? [Y/n] y
Démarrage au boot
$root systemctl enable mariadb
Remarque : Un site assez efficace pour installer et configurer des logiciels et serveurs sur Red Hat, CentOS, Fedora est http://www.if-not-true-then-false.com/ ; par exemple pour MariaDB: http://www.if-not-true-then-false.com/2013/install-mariadb-on-fedora-centos-rhel/ vous trouverez les commandes précédentes et aussi d'autres informations : création d'une base, ajout d'un utilisateur pouvant se connecter à distance, configuration du firewall pour ouverture le port réseau pour se connecter à distance au serveur, ...
Test du bon fonctionnement :
$root mysql -uroot -p MariaDB [(none)]> show databases; MariaDB [(none)]> use mysql MariaDB [mysql]> show tables;
Ctrl + D ou \q ou \quit pour quitter.
Interface Web d'administration et de gestion : phpMyAdmin
Il faut donc installer PHP.
PHP
$root dnf install php.x86_64 phpMyAdmin php-bcmath php-gd php-geshi php-mbstring php-pdo $root systemctl restart httpd
Aller à la page http://localhost/phpMyAdmin
Ou bien test manuel, en créant dans le répertoire /var/www/html/ les fichiers :
- phpinfo.php
<?php phpinfo(); ?>
- mysql.php
<?php $dbh = new PDO('mysql:host=localhost;dbname=test', 'user', 'password'); var_dump($dbh); ?>
Arrêt ici 1er jour (9h30 - 17h30) 06 sep 2016
Environnement de développement python/R
Remarque : Toutes les commandes conda sont à exécuter en tant qu'utilisateur et surtout PAS administrateur/root.
Utilisation de conda qui permet de créer différents environnement avec différentes versions de python, de R, ou de leurs librairies (parfois certaines libs sont en conflits ou ne fonctionnent pas si certaines autres sont installées).
environnements
Création d'un nouvel environnement (qui utilise la version 3.7 de python)
conda create --name devenv python=3.7
ou bien en deux étapes (création de l'environnement puis installation de python 3.7)
conda create --name devenv conda activate devenv conda install python=3.7
Liste des environnements
conda env list
Test de la version de python
python --version
Activation d'un environnement
conda activate devenv
Test de la version de python
python --version
Pour quitter l'environnement
conda deactivate
channels
Comme pour les rpm, il existe différents dépôts pour les modules python ou les librairies R.
Ajout :
conda config --add channels conda-forge conda config --add channels bioconda
packages
Liste de packages installés :
conda list -n devenv
Recherche du package cheat:
conda search cheat
Installation
conda install cheat
Création ou modification d'un cheatsheet nommé conda avec vi
cheat -e conda
à copier/coller dans vi
# install dnf install conda # links https://opensource.com/article/19/4/managing-python-packages # ENVS #################################### conda info --envs conda env list # lists installed packages conda list -n python3 # remove environment conda remove --name myenv --all # create env conda create --name devenv python=3.7 conda create --name newly_created_env --clone existing_env # activate/deactivate conda activate devenv conda deactivate # CHANNELS ##################################### conda config --add channels conda-forge conda config --add channels bioconda # PACKAGES ###################################### conda list conda search conda install cheat
Visualisation
cheat conda
modules python
Exemple avec mycli (client mysql) dans l'environnement devenv
conda search mycli conda install mycli mycli -u root
Modules à installer (adapter la boucle pour dnf vue plus haut)
biopython igraph numpy pandas scipy scikit-learn matplotlib keras theano tensorflow
R et librairies
Installation de R version 3.6
conda install r-base=3.6
Avec conda, les librairies R sont nommées avec r- avant le nom de la librairie ; exemple avec tidyverse
conda search r-tidyverse
L'installation se fait comme pour les modules python :
conda install r-lattice r-tidyverse r-purrr r-igraph r-reticulate r-rmysql r-biocmanager r-devtools r-caTools r-rprojroot r-shiny r-phytools
Comme pour python, et selon les dépôts, toutes les librairies ne sont pas disponibles. Par exemple pour l'interfaçage avec Neo4j (qui sera utilisé en IDH), c'est la librairie neo4r qui n'est pour l'instant disponible que depuis le CRAN. Il faut donc l'installer "normalement" :
R> install.packages("neo4r")
Pour les librairies BioConductor, nous utilisons le "channel" bioconda, et les librairies sont préfixées par bioconductor- :
conda install bioconductor-rhtslib bioconductor-chipseq bioconductor-GenomicRanges bioconductor-edgeR bioconductor-genefilter bioconductor-geneplotter bioconductor-DESeq2 bioconductor-mixOmics bioconductor-STRINGdb
Il est possible de positionner certaines variables selon l'environnement actif en créant ou modifiant un fichier dans ~/.conda/envs/devenv/activate.d/env_vars.sh (remplacer devenv par le nom de l'environnement concerné).
De même, pour supprimer ces variables lorsque l'environnement est désactivé, il faut placer les commandes dans le fichier ~/.conda/envs/devenv/deactivate.d/env_vars.sh
Autres logiciels spécifiques
Zotero
A partir de https://www.zotero.org : Cliquer sur Download puis installer l'application stand-alone (à gauche). Elle est fournit au format tar :
$guest cd ~/Downloads $guest tar tf Zotero-*.tar.bz2 $guest tar xf Zotero-*.tar.bz2 $guest cd Zotero_linux-x86_64 $guest ./zotero
Et ensuite, installer le plug-in firefox (à doite).
samtools
prérequis : curses.h
pour trouver le rpm à installer :
$guest dnf provides */curses.h
c'est bien sûr ncurses-devel donc :
$root dnf install ncurses-devel
La dernière version à récupérer sur http://www.htslib.org/download/
$guest wget https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2 $guest tar xf samtools-1.9.tar.bz2 $guest cd samtools-1.9 $guest make $root make install
tabix
- dernière version à récupérer sur http://www.htslib.org/download/
$guest wget https://github.com/samtools/htslib/releases/download/1.9/htslib-1.9.tar.bz2 $guest tar xjf htslib-1.9.tar.bz2 $guest cd htslib-1.9 $guest ./configure $guest make $root make install
bwa
Chez sourceforge, la liste des versions disponibles : https://sourceforge.net/projects/bio-bwa/files/
On récupère la dernière :
$guest tar tf bwa-0.7.17.tar.bz2 $guest tar xf bwa-0.7.17.tar.bz2 $guest cd bwa-0.7.17 $guest make
Test du bon fonctionnement :
$guest ./bwa
Déplacement de la totalité du répertoire vers le répertoire bin :
$guest mv ~/Downloads/bwa-0.7.17 ~/bin
Création du lien symbolique dans ~/bin
$guest cd ~/bin $guest ln -s ~/bin/bwa-0.7.17/bwa
Vérification des librairies utilisées
$guest ldd ~/bin/bwa
MACS2
$guest conda install macs2
fastqc
Le site http://www.bioinformatics.babraham.ac.uk/projects/fastqc/
Les liens de téléchargements http://www.bioinformatics.babraham.ac.uk/projects/download.html#fastqc
Les instructions pour l'installation http://www.bioinformatics.babraham.ac.uk/projects/fastqc/INSTALL.txt
Il faut notamment java >= 1.6
$guest wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.8.zip $guest unzip -l fastqc_v0.11.8.zip $guest unzip fastqc_v0.11.8.zip # car tout est dans un sous-répertoire $guest cd FastQC $guest chmod +x fastqc $guest ./fastqc
Ca marche !
$guest cd $guest mv Downloads/FastQC ~/bin/ $guest cd ~/bin $guest ln -s FastQC/fastqc
SQLDevelopper
Prendre Linux RPM dans la liste de la page http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
A exécuter la première fois en ligne de commande pour renseigner le chemin d'accès au JDK :
$guest sqldeveloper
Apparaît
Oracle SQL Developer Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. Type the full pathname of a JDK installation (or Ctrl-C to quit), the path will be stored in /home/guest/.sqldeveloper/18.2.0/product.conf
Trouver le répertoire racine du JDK 1.8
$root alternatives --config javac
OpenJDK est installé par défaut dans
ll /usr/lib/jvm/
Donc, le répertoire racine est
/usr/lib/jvm/java-1.8.0
IGV (Integrated Genomics Viewer)
Soit par Java Web Start, soit en téléchargeant l'application (en tant qu'utilisateur et non root) depuis http://data.broadinstitute.org/igv/projects/downloads/ :
$guest wget http://data.broadinstitute.org/igv/projects/downloads/2.4/IGV_2.4.10.zip $guest unzip -l IGV_2.4.10.zip $guest unzip IGV_2.4.10.zip $guest cd IGV_2.4.10 $guest ./igv.sh $guest cd ~/bin $guest ln -s ~/Downloads/IGV_2.4.10/igv.sh igv
Arrêt ici 2ème jour (9h30 - 18h00) 07 sep 2016
GNA
Genetic Network Analyzer Disponible https://team.inria.fr/ibis/genetic-network-analyzer-gna/
Téléchargement
$guest wget http://ibis.inrialpes.fr/people/dejong/GNA/executables/GNA_unix_8_7_1_1.sh $guest sh GNA_unix_8_7_1_1.sh
Charlie
Site de téléchargement : http://www-dssz.informatik.tu-cottbus.de/DSSZ/Software/Charlie#download
$guest wget www-dssz.informatik.tu-cottbus.de/track/download.php?id=28 -O setup_charliev2_0.jar java -version
Si ce n'est pas la dernière (1.8), passez à la dernière.
Puis, faire l'installation, par exemple dans ~/bin/Charlie-2.0
$guest java -jar setup_charliev2_0.jar
Si l'on choisit de l'installer dans /home/guest/bin/Charlie
Et vérifier l'installation
$guest cd ~/bin/Charlie $guest ./run.sh
COPASI
Site http://copasi.org/
Téléchargements : http://copasi.org/Download//
From binaries:
$guest wget https://github.com/copasi/COPASI/releases/download/Build-197/COPASI-4.24.197-Linux-64bit.tar.gz $guest tar tf COPASI-4.24.197-Linux-64bit.tar.gz $guest tar xf COPASI-4.24.197-Linux-64bit.tar.gz $guest cd COPASI-4.24.197-Linux-64bit/ $guest ll $guest ll bin/ $guest bin/CopasiUI
Et création du lien symbolique pour le lancer de n'importe où :
$guest mv COPASI-4.24.197-Linux-64bit ~/bin/ $guest ln -s ~/bin/COPASI-4.24.197-Linux-64bit/bin/CopasiUI ~/bin/COPASI $guest cd $guest COPASI
Snoopy
$guest wget http://www-dssz.informatik.tu-cottbus.de/track/download.php?id=206 -O snoopy-stable-linux.tgz $guest tar tf snoopy-stable-linux.tgz $guest tar xf snoopy-stable-linux.tgz $guest cd snoopy2 $guest ./bin/snoopy $guest ldd ./bin/snoopy # Problème : il manque des librairies partagées $guest ls -lh lib $guest export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/Downloads/snoopy2/lib $guest ./bin/snoopy
il manque encore libpng12.so.0, qui le fournit ?
$root dnf provides */libpng12.so $root dnf install libpng12-devel
Ca fonctionne, on créé le lien symbolique et on le déplace dans bin et on ajoute le chemin des librairies dans ~/.bashrc :
$guest cd .. $guest mv snoopy2 ~/bin $guest ln -s ~/bin/snoopy2/bin/snoopy ~/bin/
Dans geany ajouter la ligne suivante au fichier .bashrc (geany ~/.bashrc)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/bin/snoopy2/lib
Test :
source ~/.bashrc # pour utiliser le nouveau .bashrc snoopy
VirtualBox
VirtualBox 'ne sera pas utile cette année mais vous pouvez expérimenter la virtualisation lors de votre temps libre...
Site: https://www.virtualbox.org et pour les téléchargements pour linux https://www.virtualbox.org/wiki/Linux_Downloads
Remarque : VirtualBox est disponible sur le dépôt de Fedora mais ne correspond pas tout à fait à la même version :
dnf list VirtualBox
pymol
$root dnf install pymol
VMD
cd vmd-1.9.3 less README $root ./configure $root cd src $root make install $guest vmd
Qt 4.8
Avec dnf :
$guest dnf list qt $guest dnf info qt $root dnf install qt
Gromacs
avec dnf
$guest dnf list gromacs $root dnf install gromacs
GinSim
Site : http://ginsim.org/downloads
Téléchargement puis test :
$guest wget http://ginsim.org/sites/default/files/GINsim-2.4.jar $guest java -jar GINsim-2.4.jar
Création d'un script pour le lancer en ligne de commande :
$guest mv GINsim-2.4.jar ~/bin/ $guest cd ~/bin $guest echo '#!/bin/bash' > ginsim $guest echo 'java -jar ~/bin/GINsim-2.4.jar' >> ginsim $guest chmod +x ginsim
Test
cd ginsim
Glpk (ou lp_solve)
Site https://www.gnu.org/software/glpk/#downloading
Téléchargement et compilation
$guest latest=glpk-4.65 $guest wget http://ftp.gnu.org/gnu/glpk/$latest.tar.gz $guest tar tf $latest.tar.gz $guest tar xf $latest.tar.gz $guest cd $latest $guest ./configure $guest make $guest make check
Si pas d'erreur
$root make install
Google Chrome
Chromium, la version FOSS (free an dopen source software) est disponible dans le dépôt Fedroa :
$guest dnf list chromium
Autant utiliser celle-là quand elle suffit :
$root dnf install chromium
Et sinon, il faut se rendre sur le site de google https://www.google.fr/chrome/browser/desktop/ et accepter et sélectionner la version rpm 64bits.
Mauve/progressiveMauve
Site : http://darlinglab.org/mauve/download.html
$guest cd ~/Downloads $guest wget http://darlinglab.org/mauve/snapshots/2015/2015-02-13/linux-x64/mauve_linux_snapshot_2015-02-13.tar.gz $guest cd ~/bin $guest tar tf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz $guest tar xf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz $guest ln -s mauve_snapshot_2015-02-13/Mauve
OptFlux
Télécharger la version 3 depuis le site http://www.optflux.org/ ou bien https://sourceforge.net/projects/optflux/files/LatestRelease/
$guest wget https://sourceforge.net/projects/optflux/files/LatestRelease/OptFlux-3.4.0-linux-x64-installer.run/download -O OptFlux-installer.run $guest chmod +x OptFlux-installer.run $guest ./OptFlux-installer.run
Si le répertoire de destination choisi pour l'installation est ~/bin/OptFlux-3.4.0, on peut créer un script bash pour le lancer directement :
$guest cd ~/bin $guest echo '#!/bin/bash D=$(pwd) cd ~/bin/OptFlux-3.4.0 ./optflux.sh cd $D ' > optflux $guest chmod +x optflux
Test :
$guest cd $guest optflux
hapflk
Avec conda, création d'un environnement spécifique car il utilise python d'une version inférieure
$guest conda deactivate $guest conda create --name hapflk $guest conda activate hapflk $guest conda install hapflk
Remarque : il faudra se souvenir que pour l'utilisation de hapflk, il faudra penser à activer l'environnement correspondant.
admixture
Site : http://software.genetics.ucla.edu/admixture/download.html
$guest cd ~/Downloads $guest wget http://software.genetics.ucla.edu/admixture/binaries/admixture_linux-1.3.0.tar.gz $guest tar tf admixture_linux-1.3.0.tar.gz $guest cd ~/bin $guest tar xf ~/Downloads/admixture_linux-1.3.0.tar.gz $guest ln -s admixture_linux-1.3.0/admixture
Test
cd admixture
Cytoscape
Télécharger la dernière version de Cytoscape : https://cytoscape.org
$guest cd ~/Downloads $guest wget https://github.com/cytoscape/cytoscape/releases/download/3.7.2/Cytoscape_3_7_2_unix.sh sh Cytoscape_3_7_2_unix.sh
Si le répertoire d'installation choisi est ~/bin/Cytoscape_v3.7.2
$guest cd ~/bin $guest ln -s Cytoscape_v3.7.2/Cytoscape
Test
cd Cytoscape
Autres librairies R
$guest conda install bioconductor-BSgenome bioconductor-BSgenome.Dmelanogaster.UCSC.dm3 bioconductor-BSgenome.Dmelanogaster.UCSC.dm3.masked bioconductor-MotifDb bioconductor-seqLogo bioconductor-motifStack bioconductor-GenomicFeatures bioconductor-TxDb.Dmelanogaster.UCSC.dm3.ensGene bioconductor-Rqc bioconductor-pasillaBamSubset bioconductor-MMDiffBamSubset bioconductor-org.Dm.eg.db bioconductor-drosophila2.db bioconductor-drosophila2probe bioconductor-drosophila2cdf bioconductor-hom.Dm.inp.db bioconductor-GO.db bioconductor-biomaRt bioconductor-SRAdb bioconductor-GEOquery bioconductor-Gviz bioconductor-AnnotationHub
Test
$guest R library(Biostrings) library(BSgenome) library(BSgenome.Dmelanogaster.UCSC.dm3) library(BSgenome.Dmelanogaster.UCSC.dm3.masked) library(knitr) library(MotifDb,verbose=F) library(seqLogo) library(motifStack) library(IRanges) library(GenomicRanges) library(GenomicFeatures) library(TxDb.Dmelanogaster.UCSC.dm3.ensGene) library(ShortRead) library(ggplot2) library(Rqc) library(pasillaBamSubset) library(MMDiffBamSubset) library(GenomeInfoDb) library(Rsamtools) library(GenomicAlignments) library(AnnotationDbi) library(org.Dm.eg.db) library(drosophila2.db) library(drosophila2probe) library(drosophila2cdf) library(hom.Dm.inp.db) library(GO.db) library(rtracklayer) library(AnnotationHub) library(biomaRt) library(SRAdb) library(GEOquery) library(Gviz)
Autre environnement linux
Pour installer et utiliser un autre environnement linux que cinnamon, on peut regarder ceux disponibles :
dnf grouplist -v hidden | grep desktop
GNOME3
$root dnf groupinstall gnome-desktop
KDE Plasma
$root dnf install @kde
De manière plus générale, on peut les installer de différentes manières.
Avec le nom affiché :
$root dnf groupinstall "KDE Plasma Workspaces"
Avec le diminutif entre parenthèses
$root dnf install @mate-desktop-environment
Pour changer d'environnement, il faudra bien sûr quitter sa session (et éventuellement redémarrer).
Imprimante/Scanner
L'installation dépend de la distribution ainsi que de la manière dont est gérée la file d'impression. Pour les systèmes les plus récents, l'installation n'est pas trop difficile mais pour ce qui est des imprimantes exotiques cela se gère au cas par cas.
Pour la salle P0, l'imprimante est une imprimante réseau (HP LaserJet M425dn).
Pour l'installer sur Fedora 25, à partir de la configuration :
- Ajouter une imprimante
- Network Printer
- AppSocket/HP JetDirect
- Host 195.220.42.131 ou printer s'il est présent dans /etc/hosts
- Port: 9100
- Connections: AppSocket/HP JetDirect
- Driver: HP (recommended)
- HP DeskJet 400 - CUPS+Gutenprint v5.2.14 Simplified ...
Ne pas imprimer la page de test sinon on va avoir 18 fois la même chose.
Interface Web de gestion de m'imprimante : http://printer/
Scanner
- Numériser
- vers répertoire réseau
- printerScanHP
- vers répertoire réseau
- Fichiers numerisation*.pdf sur http://intervenant/scanner
Configuration du PC intervenant
création du répertoire
mkdir /home/share chmod 777 /home/share
installer samba
dnf list samba samba-client
éditer /etc/samba/smb.conf
[global] workgroup = WORKGROUP security = user passdb backend = tdbsam hosts allow = 195.220.42.131 map to guest = Bad User printing = cups printcap name = cups load printers = yes cups options = raw [Share] path = /home/share writable = yes guest ok = yes guest only = yes create mode = 0777 directory mode = 0777
Activer le service et ouvrir le port
firewall-cmd --add-service=samba --permanent firewall-cmd --reload systemctl start smb nmb systemctl enable smb nmb
Configuration du client
installer autofs
dnf list autofs
ajouter à /etc/auto.master
/share /etc/auto.share
créer /etc/auto.share
scan 195.220.42.2:/home/share
Activer le service
systemctl start autofs systemctl enable autofs
Tester
ls -l /share/scan/
Sauvegardes et restaurations
dd
Pour des tables de partition de type dos :
- sauvegarde du Master Boot Record (MBR = secteur de démarrage)
dd if=/dev/sda of=mbr.dd bs=512 count=1
- copie physique d'une partition
dd if=/dev/sda1 of=sda1.dd
Il y a aussi l'utilitaire dédié sfdisk mais il ne gère pas les tables de partition de type gpt :
backup:
sfdisk --dump /dev/sda > sda.partitions
restore (attention, peut rendre le disque inutilisable si mauvais fichier/device ou mauvaise manipulation) ; remplacer sdX par la bonne lettre:
sfdisk /dev/sdX < sda.partitions
Pour les tables de type gpt :
backup :
sgdisk -b sda.partitions /dev/sda
restore (attention, peut rendre le disque inutilisable si mauvais fichier/device ou mauvaise manipulation) ; remplacer sdX par la bonne lettre:
sgdisk -l sda.partitions /dev/sdX
tar
tar (tape archive)
avec l'option p pour préserver les permission (rwx), et on exclut certains répertoires (ex: home) pour ne garder que le systèmes (sans les répertoires spéciaux comme /proc ou /sys). Remarque : Il faudra recréer ces répertoires lors de la restauration.
- On créé un répertoire pour l'archive
mkdir /mnt/backup cd /mnt/backup
- /dev/sda1 montée sur /boot
tar cpjf boot.sda1.tar.bz2 /boot
- /dev/sda2 montée sur /
tar cpjf rootfs.sda2.tar.bz2 \ --exclude=/proc \ --exclude=/mnt \ --exclude=/sys \ --exclude=/lost+found \ --exclude=/media \ --exclude=/home \ /
- /dev/sda4 montée sur /home
tar cpjf home.sda4.tar.bz2 /home
rsync
rsync permet de "synchroniser" un fichier ou une sous-arborescence de répertoire, c'est-à-dire faire un miroir exact ou bien recopier seulement ce qui a été modifié, ou bien rajouter ce qui a été modifié, ..., et ceci éventuellement entre deux machines.
Cela peut être utile pour faire une sauvegarde de ces données personnelles :
rsync --dry-run \ --archive --hard-links --delete --acls --xattrs --one-file-system \ --itemize-changes --stats -h \ --exclude='*/.thumbnails' --exclude='*/Cache' --exclude='*/.cache' --exclude='*/.gvfs' /home/ /mnt/home_backup/
NFS (Network File System)
Côté serveur, on "exporte" un répertoire (et sa sous-arborescence).
Paquets nécessaires :
dnf list nfs-utils nfs-utils-lib
Le répertoire partagé pour cet exemple est le répertoire sur l'ordi de l'intervenant qui accueille les scans : scan@intervnant:/home/share
Fichier de configuration : /etc/exports sur intervenant
/home/share 195.220.42.0/255.255.255.0(rw,no_root_squash)
Cela indique que ce répertoire là peut-être contacté par un client nfs depuis toute machine du sous-réseau (toute machine dont l'IP commence par 195.220.42.).
Démarrage (manuel) du service
$root systemctl start nfs
Au démarrage du système
$root systemctl enable nfs
Côté client :
dnf list nfs-utils nfs-utils-lib
Création du répertoire où est monté l'export nfs pour cet exemple.
$root mkdir /mnt/scan
Montage de l'export nfs avec la commande mount
$root mount intervenant:/home/share /mnt/scan
En cas de succès, le contenu de /mnt/scan correspond à ce qu'il y a sur pc4. S'il y a des fichiers et/ou répertoires dans /mnt/scan du client (celui qui fait mount), ils ne sont plus accessibles après le montage.
En cas d'échec, on peut désactiver le pare-feu
$root firewall-config
Pour débugger (option -v)
$root mount -v intervenant:/home/share /mnt/scan
Pour démonter le répertoire :
$root umount /mnt/scan
Pour consulter les montages actifs :
mount
Pour simplifier l'opération de montage/démontage, on peut l'ajouter au fichier /etc/fstab.
Avertissement : si le fichier /etc/fstab n'est pas bon, le système peut ne plus démarrer et il faudra le réparer (avec un liveCD par exemple).
Edition de /etc/fstab et ajout de la ligne :
intervenant:/home/share /mnt/scan noauto,rw,intr,nfsver=3 0 0
A tester avant de redémarrer avec :
$root umount /mnt/scan # s'il était monté $root mount -a $root mount | grep scan
Si scan apparaît ou qu'on obtient une erreur avec mount -a il y a un problème à régler.
Options :
- noauto : ne demande pas le montage au démarrage. C'est préférable car si mummer n'est pas allumée, le démarrage de votre ordi pourrait ne pas marcher.
- rw : droits en lecture et en écriture
- intr : permet au requête NFS d'être interrompue si on perd le serveur ou qu'il ne peut être contacter
- nfsver= : spécifie quelle version du protocole utiliser
Si le fichier fstab est bon on peut monter/démonter le répertoire comme suit :
$root mount /mnt/scan $root umount /mnt/scan
Arrêt ici, 3ème jour (9h30-17h30 12 septembre 2016).
fonts/police de caractères
Les fonts sont dans le répertoire /usr/share/fonts ou aussi dans ~/.fonts.
Pour en ajouter, il suffit de les copier dans un de ces répertoires. Pour que les changements/ajouts soient effectifs, il faut soit se déconnecter et ouvrir une nouvelle session, soit pour certaines applications :
fc-cache -f -v
fonts Microsoft
maybe install
dnf list rpm-build cabextract ttmkfdir
Newer (with calibri): http://mscorefonts2.sourceforge.net/
wget https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm rpm -qpl msttcore-fonts-installer-2.6-1.noarch.rpm dnf install msttcore-fonts-installer-2.6-1.noarch.rpm
fonts pour la programmation
Un article du site opensource.com en décrivant certaines : https://opensource.com/article/17/11/how-select-open-source-programming-font?utm_medium=Email&utm_campaign=weekly&sc_cid=701f2000000tmCUAAY
Firacode
site: https://github.com/tonsky/FiraCode
mkdir ~/.local/share/fonts unzip ~/Downloads/FiraCode_1.204.zip ttf/* mv ttf/* ~/.local/share/fonts rmdir ttf fc-cache -f
A ajouter/à faire
- différencier les commandes root/user
- photo du groupe pour le site
- gitlab
- docker
- sshfs
Liens et autres
- Extensions de Gnome http://extensions.gnome.org
- eBooks sur enseignant:Documents
- explication du swap https://www.redhat.com/en/about/blog/do-we-really-need-swap-modern-systems
- collection d'utilitaires https://opensource.com/article/18/4/gnu-core-utilities
- Un peu de sécurité https://opensource.com/article/19/10/linux-server-security
- nohup et disown -h PID
# install R CRAN xlsx @inagua $root R CMD javareconf [10:03 root@linux pseudo]$ R CMD javareconf Java interpreter : /usr/java/latest/jre/bin/java Java version : 1.8.0_131 Java home path : /usr/java/latest Java compiler : /usr/bin/javac Java headers gen.: /usr/bin/javah Java archive tool: /usr/bin/jar trying to compile and link a JNI program detected JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux detected JNI linker flags : -L$(JAVA_HOME)/jre/lib/amd64/server -ljvm gcc -m64 -I/usr/include/R -DNDEBUG -I/usr/java/latest/include -I/usr/java/latest/include/linux -I/usr/local/include -fpic -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -c conftest.c -o conftest.o g++ -m64 -shared -L/usr/lib64/R/lib -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o conftest.so conftest.o -L/usr/java/latest/jre/lib/amd64/server -ljvm -L/usr/lib64/R/lib -lR JAVA_HOME : /usr/java/latest Java library path: $(JAVA_HOME)/jre/lib/amd64/server JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux JNI linker flags : -L$(JAVA_HOME)/jre/lib/amd64/server -ljvm Updating Java configuration in /usr/lib64/R Done. [10:04 root@linux pseudo]$ R R version 3.4.4 (2018-03-15) -- "Someone to Lean On" Copyright (C) 2018 The R Foundation for Statistical Computing Platform: x86_64-redhat-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > install.packages("xlsx")
Réinstallation de grub
Contexte : la machine ne démarre plus → démarrer depuis une clé usb et reconstruire la config grub2 et la réinstaller sur le disque
Dans les étapes suivantes, après avoir
- démarré depuis un liveUSB,
- on monte les partitions du disque qui contient le système (ici stockées dans les variables $root_fs, $boot_part, $var_part). La variable $drvpart correspond à l'endroit où on effectue les montages.
- on monte avec l'option bind les répertoires de ce que voit l'OS (dev, sys et proc) sur $drvpath
- on change la racine du système de fichier (donc on n'est plus sur l'OS de la clé mais sur l'OS du disque de la machine que l'on répare)
- on réinstalle grub2 sur le disque (ici dans la variable $sdX)
drv_path=/mnt/os # endroit où sont montées les partitions du système à réparer mkdir $drv_path # disque et partition à réparer drv=/dev/sdX # remplacer X par la bonne lettre (a, b, c, ...) rootfs_part=${drv}2 # remplacer le 2 par le bon numéro de partition boot_part=${drv}1 # remplacer le 1 var_part=${drv}4 # remplacer le 4 # montages mount $rootfs_part $drv_path mount $boot_part $drv_path/boot mount $var_part $drv_path/var mount --bind /dev $drv_path/dev mount --bind /sys $drv_path/sys mount --bind /proc $drv_path/proc chroot $drv_path # on change la racine du système de fichier pour la situer sur le disque à réparer # generate config cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak-$(date +%Y.%m.%d--%Hh%Mm%S.%N) # sauvegarde l'ancien grub2-mkconfig -o /boot/grub2/grub.cfg # install bootloader grub2-install $drv # if regenerate drivers needed: # dracut --regenerate-all --force exit # on sort c'est-à-dire que l'on revient à la racine du système de fichiers de la clé # démontage de l'ensemble umount $drvpath/dev umount $drvpath/sys umount $drvpath umount $var_part umount $boot_part umount $rootfs_part