silico.biotoul.fr
 

M2BBS - Atelier Système

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Environnement de développement python/R)
m (Partitionnement du/des disque(s))
 
(459 intermediate revisions not shown)
Line 5: Line 5:
* Installation et configuration de services (serveurs Web, bases de données)
* Installation et configuration de services (serveurs Web, bases de données)
* Sauvegarde/restauration d'un système ou de données
* Sauvegarde/restauration d'un système ou de données
-
* Installation et configuration d'un cluster
+
* Exemple d'utilisation de containers du type docker
 +
 
Distributions linux populaires :
Distributions linux populaires :
-
* http://centos.org/
+
* Fedora http://fedoraproject.org/ et Red Hat Entreprise Linux (RHEL) dont le support est payant. Le source était repris par la communauté et mis à disposition gratuitement → CentOS. La stabilité et la fiabilité de cette distribution l'ont rendue très populaire dans les laboratoires de recherche.
-
* http://fedoraproject.org/
+
* Debian https://www.debian.org/ très stable et à l'origine de beaucoup d'autres distributions comme Ubuntu http://www.ubuntu.com/
-
* http://www.ubuntu.com/
+
Principales étapes d'une installation typique :
Principales étapes d'une installation typique :
Line 24: Line 24:
-
'''Lien :''' commandes linux [[Linux_tips]] (pour travail en dehors de cet atelier)
+
'''Liens :'''  
 +
* commandes linux [[Linux_tips]] (pour travail en dehors de cet atelier)
 +
* http://ftp.lip6.fr/ftp/pub/linux/distributions/fedora/releases/ pour les downloads de Fedora
-
= Démarrage du liveCD/DVD =
+
= Démarrage du liveCD/DVD/USB =
 +
 
 +
'''Création d'un LiveCD/DVD/USB'''<br/>
 +
Pour l'année 2023-24, il s'agit de Fedora core 37 64bits (https://dl.fedoraproject.org/pub/fedora/linux/releases/37/). La dernière est la 38 mais avec la version la plus récente, il y a parfois certains logiciels qui ne s'installent pas (car pas encore mis à jour par exemple). Pour créer un tel média, il faut télécharger son image : un fichier <tt>.iso</tt> correspondant à l'image d'un disque (historiquement un CD) ou d'une partition au format iso9660 contenant tout le système de fichiers. Pour restaurer cette image sur un disque USB, il faut utiliser un logiciel qui permet de graver/restaurer une image (''burn ISO'' ou ''restore disk image'') tel que <tt>gnome-disks</tt> sous [https://www.gnome.org/ GNOME]. Sur windows ou mac, il existe des outils équivalents.
 +
 
 +
'''Remarque :''' Il se peut que l'ordinateur démarre à partir du disque dur. Pour ''booter'' depuis la clé USB, 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 [[wikipedia:BIOS|BIOS]].
 +
 
 +
'''Création d'une LiveUSB'''<br/>
 +
De nos jour, le système ''live'' se met généralement sur une clé USB (ou un disque externe). Cela a l'avantage d'être plus rapide (à créer et pour installer le système) notamment pour l'USB3. 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.
 +
 
 +
Pour afficher la liste des disques disponibles : commande <tt>lsblk</tt> ou avec plein d'options :
 +
lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL,STATE,TYPE
-
'''Création LiveCD'''<br/>
+
sortie :
-
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 <tt>.iso</tt> 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 [https://fr.wikipedia.org/wiki/Brasero_(logiciel) Brasero]
+
NAME    SIZE FSTYPE LABEL  MOUNTPOINT UUID                                MODEL                    SERIAL            STATE  TYPE
-
sous [https://www.gnome.org/ GNOME] apparemment il existe sur [https://technet.microsoft.com/en-us/magazine/dd451080.aspx Windows depuis le 7 un outil qui permet de faire ça] et, sinon, il en existe des gratuits.
+
sda    476.9G                                                              SK hynix SC311 SATA 512GB MJ88N538310808F5M running disk
 +
├─sda1  200M vfat          /boot/efi  84CC-70E3                                                                                part
 +
├─sda2    1G ext4  boot  /boot      0356c3ce-74cc-4002-81b6-cbef930f10f4                                                    part
 +
├─sda3  100G ext4  system /         3af2deda-cea2-4510-94a5-b8451ca3b705                                                    part
 +
├─sda4    10G swap  swap  [SWAP]     5a8102ef-5571-41ff-be0e-9de10ade2289                                                    part
 +
└─sda5 365.7G ext4  data  /home      668b05dc-2351-4ede-b7af-5c423b30981a                                                    part
 +
sdb          14.3G iso9660    Fedora-Cinn-Live-37-1-7            2022-11-05-09-14-38-00              Ultra USB 3.0          4C530001161008112440  running disk
 +
├─sdb1        2.2G iso9660    Fedora-Cinn-Live-37-1-7            2022-11-05-09-14-38-00                                                                    part
 +
├─sdb2        9.9M vfat        ANACONDA                            9131-7535                                                                                part
 +
└─sdb3        300K                                                                                                                                          part
 +
zram0    7.5G              [SWAP]                                                                                              disk
-
'''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 [[wikipedia:BIOS|BIOS]].
 
-
'''Création d'une LiveUSBKey'''<br/>
+
Ici, la clé USB (/dev/sdb) contient déjà la version live Fedora 37.
-
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.
+
[https://docs.fedoraproject.org/en-US/quick-docs/creating-and-using-a-live-installation-image/index.html Creating and using live USB]
[https://docs.fedoraproject.org/en-US/quick-docs/creating-and-using-a-live-installation-image/index.html Creating and using live USB]
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 :<br/>
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 :<br/>
-
'''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 <tt>/dev/sdX</tt>.  
+
'''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 <tt>/dev/sdX</tt> (qui ne devrait pas exister, pour éviter les accidents).  
-
  dd if=Fedora-Cinnamon-Live-x86_64-29-1.2.iso of=/dev/sdX bs=8M status=progress oflag=direct
+
  dd if=Fedora-Cinnamon-Live-x86_64-VERSION.iso of=/dev/sdX bs=8M status=progress oflag=direct
-
Fichier sur silico : [[silico:enseignement/m2bbs/fedora/Fedora-Cinnamon-Live-x86_64-29-1.2.iso|Fedora-Cinnamon-Live-x86_64-29-1.2.iso]]
+
Fichier sur silico : [[silico:enseignement/m2bbs/fedora/Fedora-Cinnamon-Live-x86_64-37-1.7.iso|Fedora-Cinnamon-Live-x86_64-37-1.7.iso]]
-
'''Démarrer le PC avec la liveUSBKey'''<br/>
+
Sur fedora (et la plupart des distributions linux), on pourra utiliser l'utilitaire <tt>gnome-disks</tt> (ou juste <tt>Disks</tt> dans les menu de l'environnement cinnamon).
-
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, ...).  
+
 
 +
 
 +
'''Démarrer le PC avec la liveUSB'''<br/>
 +
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  
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)
+
  # en mode graphique (server X = [https://landoflinux.com/linux_runlevels_systemd.html runlevel 5])
  setxkbmap fr
  setxkbmap fr
Line 59: Line 83:
* exercices :  
* exercices :  
** création, formatage, montage, démontage, suppression de partitions aux différents formats et notions de LVM
** création, formatage, montage, démontage, suppression de partitions aux différents formats et notions de LVM
-
** configuration manuelle du réseau
+
** configuration manuelle du réseau (pas nécessaire en U2-207)
== Séquence de démarrage ==
== Séquence de démarrage ==
-
A détailler ici, anciennement :
+
Etapes :
* 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).
* 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).
* 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).
+
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 bootloaders).
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.  
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.  
Line 77: Line 101:
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. [https://opensource.com/article/17/2/linux-boot-and-startup ici] pour une description détaillée). En gros, le démarrage se fait en 2 étapes :
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. [https://opensource.com/article/17/2/linux-boot-and-startup 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 :
* 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), ...
+
* 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, session (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.
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 =
+
== Paramétrage du système et installation ==
-
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.
+
Après avoir démarré le liveUSB, il suffit normalement de lancer l'assistant d'installation.
-
== Configuration réseau ==
+
=== Configuration réseau ===
-
Pour le protocole IPv4, il faut obtenir une adresse IP valide. Ceci se fait le plus souvent via le protocole [[wikipedia:Dynamic_Host_Configuration_Protocol|DHCP]], ou bien manuellement.
+
Pour avoir une connexion réseau avec le protocole [https://fr.wikipedia.org/wiki/IPv4 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 messages. Ceci se fait le plus souvent ''via'' le protocole [[wikipedia:Dynamic_Host_Configuration_Protocol|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 ([[wikipedia:Domain_Name_System|DNS]]).  
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 ([[wikipedia:Domain_Name_System|DNS]]).  
-
Il n'y a pas de serveur DHCP configuré pour la P0. Entrez donc l'IP en fonction de la machine que vous utilisez.
+
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 ; 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
 +
* ...
 +
 
 +
Schéma typique à la maison ci-contre. [[Image:IPv4.box.png|thumb|400px|Schéma réseau box]]
 +
 
 +
 
 +
Il y a un serveur DHCP configuré pour la U2-207. Les machines sont identifiées par leur adresse MAC et une adresse IP leur est attribuée. De plus, lors de l'activation de la connexion, certains paramètres sont aussi configurés comme les DNS et les tables de routages. Toutes les machines de la salle ont été placées dans un VLAN (réseau local virtuel) et ont toutes des adresses IP de la forme 10.14.0.X
 +
 
 +
'''Commandes et fichiers :'''
 +
ip ifconfig
 +
hostname
 +
dig nslookup getent ifup ifdown whois
 +
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-INTERFACE /etc/hosts /etc/resolve.conf
 +
 
 +
* Linux network configuration explained on  [https://opensource.com/life/16/6/how-configure-networking-linux opensource.com]
 +
 
 +
 
 +
<!--
 +
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 :
Les plages d'adresses IP réservées pour la P0 sont les suivantes :
Line 105: Line 152:
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 <tt>64.6.64.6,64.6.65.6</tt>
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 <tt>64.6.64.6,64.6.65.6</tt>
-
A ajouter au fichier <tt>/etc/hosts</tt> ;
+
A ajouter au fichier <tt>/etc/hosts</tt> (quand on aura redémarré sur le nouveau système après l'installation)
-
195.220.42.2 pc2 bbs18A intervenant enseignant
+
  195.220.42.131 printer HPLaserJetM425dn.p0
  195.220.42.131 printer HPLaserJetM425dn.p0
  195.220.42.146 router
  195.220.42.146 router
-
  195.220.42.4 pc4  pc4.p0  bbs12E
+
195.220.42.2  pc2  pc2.p0  bbs18A intervenant enseignant
-
  195.220.42.5 pc5  pc5.p0  bbs19A
+
 
-
  195.220.42.6 pc6  pc6.p0  bbs15A
+
  195.220.42.4   pc4  pc4.p0  bbs22C
-
  195.220.42.7 pc7  pc7.p0  bbs14A
+
  195.220.42.5   pc5  pc5.p0  bbs15A
-
  195.220.42.8 pc8  pc8.p0  bbs18B
+
  195.220.42.6   pc6  pc6.p0  bbs19A
-
  195.220.42.9 pc9  pc9.p0  bbs12A
+
  195.220.42.7   pc7  pc7.p0  bbs20C
-
  195.220.42.10 pc10 pc10.p0 bbs14B
+
 
-
  195.220.42.11 pc11 pc11.p0 bbs12F
+
  195.220.42.8   pc8  pc8.p0  bbs18B
-
  195.220.42.12 pc12 pc12.p0 bbs15B
+
  195.220.42.9   pc9  pc9.p0  bbs20E
-
  195.220.42.13 pc13 pc13.p0 bbs15C
+
  195.220.42.10 pc10 pc10.p0 bbs22A
-
  195.220.42.14 pc14 pc14.p0 bbs19B
+
  195.220.42.11 pc11 pc11.p0 bbs20D
-
  195.220.42.15 pc15 pc15.p0 bbs12H
+
 
-
  195.220.42.16 pc16 pc16.p0 bbs12C
+
  195.220.42.12 pc12 pc12.p0 bbs15B
-
  195.220.42.17 pc17 pc17.p0 bbs19C
+
  195.220.42.13 pc13 pc13.p0 bbs15C
-
  195.220.42.18 pc18 pc18.p0 bbs14C
+
  195.220.42.14 pc14 pc14.p0 bbs19B
-
  195.220.42.19 pc19 pc19.p0 bbs12K
+
  195.220.42.15 pc15 pc15.p0 bbs20G
-
  195.220.42.20 pc20 pc20.p0 bbs12G
+
 
-
  195.220.42.21 pc21 pc21.p0 bbs12B
+
  195.220.42.16 pc16 pc16.p0 bbs19D
 +
  195.220.42.17 pc17 pc17.p0 bbs19C
 +
  195.220.42.18 pc18 pc18.p0 bbs22B
 +
  195.220.42.19 pc19 pc19.p0 bbs20A
 +
 
 +
  195.220.42.20 pc20 pc20.p0 bbs20B
 +
  195.220.42.21 pc21 pc21.p0 bbs20F
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
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
-
<pre>
+
<pre style='font-size: 70%;'>
     fenêtres          fenêtres            fenêtres
     fenêtres          fenêtres            fenêtres
-
   /--------\   /--------\                        /--------\   /--------\
+
   ┌─────────┐   ┌─────────┐                        ┌─────────┐   ┌─────────┐
-
   |        |   |        |                        |        |   |        |    /-------------\
+
   │        │   │        │                        │        │   │        │  ┌──────────────┐
-
   | 7 12E |   | 11 12F |                        | 15 12H |   | 19 12K |    |            |
+
   .7 20C │   │ .11 20D │                        │ .15 20G │   │ .19 20A │  │              │
-
   |        |   |        |    /------------------|        |   |        |    | 131 printer |
+
   │        │   │        │    ┌────────────────────┤        │   │        │  │ .131 printer
-
   | 6 19A |   | 10 14B |    |                  | 14 19B |   | 18 14C |    |            |
+
   .6 19A   │ .10 22A │    │                    │ .14 19B   │ .18 22B │  │              │
-
   |        |   |        |    | 21 12B   20 12G |        |   |        |    |            |
+
   │        │   │        │    │ .21 20B   .20 20F │        │   │        │  │              │
-
e | 5 15A |   | 9 12A |    |                  | 13 15C |   | 17 19C |    | 146 router  |
+
e .5 15A   .9 20E │    │                    │ .13 15C   │ .17 19C │  │ .146 router 
-
n |        |   |        |    |     2 18A       |       |   |        |    |            |
+
n │        │   │        │    │     .2 18A        │        │   │        │  │              │
-
t | 4 14A |   | 8 18B |    \------------------| 12 15B |   | 16 12C |    \-------------/
+
t .4 22C │   .8 18B │    └────────────────────┤ .12 15B   │ .16 19D │  └──────────────┘
-
r |        |   |        |                        |        |   |        |
+
r │        │   │        │                        │        │   │        │
-
é \--------/   \--------/                        \--------/   \--------/
+
é └─────────┘   └─────────┘                        └─────────┘   └─────────┘
e                      tableau
e                      tableau
</pre>
</pre>
 +
-->
-
'''Commandes et fichiers :'''
+
=== Partitionnement du/des disque(s) ===
-
ifconfig hostname nslookup getent ifup ifdown whois
+
Sujet aussi évoqué dans [[Linux_tips#File_systems_.26_partitions:_fdisk.2C_gdisk.2C_parted.2C_mount.2C_lsof.2C_mkfs|Linux tips - fs & partitions]]
-
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-INTERFACE /etc/hosts /etc/resolve.conf
+
-
 
+
-
* Linux network configuration explained on  [https://opensource.com/life/16/6/how-configure-networking-linux opensource.com]
+
-
 
+
-
== Partitionnement du/des disque(s) ==
+
-
Sujet déjà évoqué dans [[Linux_tips#File_systems_.26_partitions:_fdisk.2C_gdisk.2C_parted.2C_mount.2C_lsof.2C_mkfs|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.
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.
Line 173: Line 220:
Pour aujourd'hui, on utilisera le paramétrage suivant pour '''UEFI''' :
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
+
* 1: laisser la partition EFI existante (la première) et ne PAS la formater ou bien la créer (1GB EFI System Partition), 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
* 1bis: s'il y a une deuxième partition nommée OS de type FAT/Microsoft Reserved, ne pas y toucher
* 2: 1GB ext4 <tt>/boot</tt>
* 2: 1GB ext4 <tt>/boot</tt>
Line 190: Line 237:
* 5: 20GB ext4 <tt>/mnt/other</tt> au cas où l'on veuille y installer une autre distribution
* 5: 20GB ext4 <tt>/mnt/other</tt> au cas où l'on veuille y installer une autre distribution
* 6: ce qui reste pour <tt>/home</tt>
* 6: ce qui reste pour <tt>/home</tt>
 +
'''Commandes et fichiers :'''
'''Commandes et fichiers :'''
Line 203: Line 251:
Notamment
Notamment
  lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL,STATE,TYPE
  lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL,STATE,TYPE
 +
findmnt
-
== Documentation ==
+
RPMs : gparted
-
https://semestriel.framapad.org/p/P02019installPC
+
= Redémarrage du système après installation et configuration post-installation =
 +
== Documentation collaborative de l'atelier ==
 +
 
 +
https://semestriel.framapad.org/p/P02022installPC
ou le créer à partir de https://framapad.org/
ou le créer à partir de https://framapad.org/
 +
 +
== 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 (<tt><Esc>:wq<Enter></tt> dans vi). Il faudra redémarrer la machine (mais pas tout de suite pour cet atelier) pour que ce changement soit effectif.
== gestionnaire de paquets ==
== 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.
+
A partir d'une ou plusieurs sources (dépôts), ils permettent d'installer et de maintenir à jour le système et les logiciels installés.
* dnf (fedora >= 22)
* dnf (fedora >= 22)
* yum (fedora <22, centos)
* yum (fedora <22, centos)
* rpm  
* rpm  
-
* apt (ubuntu)
+
* apt-get, apt (debian, 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 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
Line 224: Line 288:
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)
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)
-
  dnf list kernel-devel
+
  $guest dnf list kernel-devel
* Si il apparaît dans ''Installed Packages'' : rien à faire à moins qu'il y ait une version plus récente :
* Si il apparaît dans ''Installed Packages'' : rien à faire à moins qu'il y ait une version plus récente :
-
  dnf upgrade kernel-devel
+
  $root dnf upgrade kernel-devel
* Si il apparaît dans ''Available Packages'' :
* Si il apparaît dans ''Available Packages'' :
-
  dnf install kernel-devel
+
  $root dnf install kernel-devel
Quand on ne connaît pas le nom du paquet : <tt>search</tt>. Cela a pour effet de chercher dans la description.
Quand on ne connaît pas le nom du paquet : <tt>search</tt>. Cela a pour effet de chercher dans la description.
-
  dnf search apache
+
  $guest dnf search apache
Pour obtenir la description :
Pour obtenir la description :
-
  dnf info httpd
+
  $guest dnf info httpd
Pour chercher quels paquets contiennent un fichier donné :
Pour chercher quels paquets contiennent un fichier donné :
-
  dnf provides */sbin/httpd
+
  $guest dnf provides */sbin/httpd
-
 
+
-
Pour fedora avant la 22 et CentOS, c'est exactement la même chose mais avec yum, exemple :
+
-
yum list kernel-devel
+
Afficher le contenu d'un rpm
Afficher le contenu d'un rpm
-
  rpm -qpl http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
+
  $guest rpm -qpl http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
 +
 
 +
Voir aussi l'article [https://opensource.com/article/21/7/dnf-vs-apt dnf ''vs.'' apt].
 +
 
 +
==== Ajout de dépôts supplémentaires : RPM fusion ====
 +
 
 +
'''RPM fusion''' met à disposition des packages supplémentaires, notamment ceux dont le code source n'est pas libre (rpm-fusion-nonfree-release) avec par exemple VLC pour l'utilisation de certains codecs.
-
Ajout des dépôts de RPM fusion :
+
Ajout des dépôts de [https://rpmfusion.org/ RPM Fusion] :
  <!--$root dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-22.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-22.noarch.rpm-->
  <!--$root dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-22.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-22.noarch.rpm-->
<source lang='bash'>
<source lang='bash'>
  $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
  $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
</source>
</source>
 +
 +
 +
 +
<!--
 +
'''Adobe''' pour pouvoir récupérer leur plug-in flash utilisé par les navigateurs :
 +
$root dnf install http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
 +
-->
== Installation des dernières mises à jour ==
== 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).
+
Lors d'une installation via LiveCD/DVD/USB, il est recommandé de faire les mises à jour après installation du système (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 :
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 :
Line 259: Line 333:
  $root dnf upgrade
  $root dnf upgrade
-
== SELinux ==
+
= Redémarrage après les dernières mises à jour et paramétrages =  
-
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.  
+
Redémarrer la machine.
-
Pour le désactiver :
+
== Création d'un compte utilisateur ==
-
  $root vi /etc/selinux/config
+
 
-
Remplacer :
+
La création de compte utilisateur sur linux se fait avec la commande <tt>useradd</tt> :
-
  SELINUX=enforcing
+
 
-
par :
+
  $root useradd barriot
-
SELINUX=disabled
+
 
-
Sauvegarder et quitter (<tt><Esc>:wq<Enter></tt> dans vi)
+
Par défaut, en général,
 +
* un groupe avec le même nom que le login est créé
 +
* le répertoire de l'utilisateur est créé, ici <tt>/home/barriot</tt>
 +
 
 +
Il faut ensuite définir un mot de passe pour cet utilisateur :
 +
  $root passwd barriot
 +
 
 +
Créez votre compte ayant pour username votre nom de famille en le simplifiant :  
 +
* tout en minuscule
 +
* uniquement des lettres de l'alphabet et pas de caractère problématique : espace, cédille, accent, ponctuation, ...
 +
 
 +
Ensuite, fermez votre session pour utiliser votre propre compte.
 +
 
 +
 
 +
Il est possible de faire la même chose en mode graphique. Avec cinnamon, allez dans les paramètres pour créer un compte utilisateur :
-
Puis redémarrer la machine.
+
[[Image:Users and Groups.png]]
-
== Variables d'environnement ==
+
== Variables d'environnement (PATH et LD_LIBRARY_PATH) ==
-
Le sccript <tt>~/.bashrc</tt> est chargé par tout processus bash à son démarrage. Cela permet de personnaliser certaines choses comme par exemple  
+
Le script <tt>~/.bashrc</tt> 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
* 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
* les alias qui permettent de définir des commandes en raccourcis d'autres
Pour afficher le contenu d'une variable d'environnement :
Pour afficher le contenu d'une variable d'environnement :
-
  echo $PATH
+
  $guest echo $PATH
Pour le modifier :
Pour le modifier :
-
  PATH=$PATH:~/bin
+
  $guest PATH="$HOME/.local/bin:$HOME/bin:$PATH"
 +
 
Ajouter ~/bin à la variable d'environnement PATH dans .bashrc (<tt>vi ~/.bashrc</tt>) si ce répertoire n'était pas déjà présent dans la variable PATH.
Ajouter ~/bin à la variable d'environnement PATH dans .bashrc (<tt>vi ~/.bashrc</tt>) si ce répertoire n'était pas déjà présent dans la variable PATH.
Ajouter un alias, par exemple :
Ajouter un alias, par exemple :
-
  alias l='ls -lh'
+
  $guest 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 <tt>bash</tt> :
 +
$guest 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.
<!--
<!--
Line 309: Line 402:
= Installation d'autres logiciels =
= Installation d'autres logiciels =
-
Liste à installer :
+
Liste des rpm à installer (fichier texte disponible sur [[silico:enseignement/m2bbs/fedora/rpms.to.install.txt|rpms.to.install.txt]]) :
<pre>
<pre>
-
tilda
+
kernel-devel
gparted
gparted
-
kernel-devel
+
httpd ncurses-devel
 +
 
 +
bzip2-devel xz-devel zlib-devel libpng12-devel grsync
 +
 
 +
php phpMyAdmin php-bcmath php-gd php-geshi php-mbstring php-mcrypt php-pdo
 +
 
 +
mariadb-server mariadb-devel mariadb
 +
 
 +
gcc automake autoconf
 +
 
 +
java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-openjfx
geany geany-plugins-spellcheck
geany geany-plugins-spellcheck
-
htop glances iotop iftop atop sysstat lshw
+
git meld
-
wget telnet firewall-config chromium
+
tilda  fd-find baobab
-
libreoffice xournal
+
htop glances iotop iftop atop sysstat lshw nethogs iperf iperf3
-
filezilla
+
wget telnet filezilla firewall-config chromium
 +
 
 +
libreoffice xournal okular gnome-font-viewer
gimp krita inkscape vlc
gimp krita inkscape vlc
-
gcc automake autoconf
+
rstudio-desktop
-
git diffuse
+
igraph igraph-devel
-
httpd ncurses-devel
+
octave pymol
-
mariadb-server mariadb-devel mariadb
+
podman singularity
-
http://silico.biotoul.fr/enseignement/m2bbs/fedora/mysql-workbench-community-8.0.17-1.fc29.x86_64.rpm
+
-
php phpMyAdmin php-bcmath php-gd php-geshi php-mbstring php-mcrypt php-pdo
+
ansible-core ansible-collection-ansible-posix ansible-collection-community-general
-
conda
+
sshfs encfs
-
http://silico.biotoul.fr/enseignement/m2bbs/fedora/rstudio-1.2.1335-x86_64.rpm
+
-
http://silico.biotoul.fr/enseignement/m2bbs/fedora/jdk-6u24-linux-amd64.rpm
+
-
http://silico.biotoul.fr/enseignement/m2bbs/fedora/sqldeveloper-18.2.0.183.1748-1.noarch.rpm
+
</pre>
</pre>
-
On pourra copier/coller cette liste dans un fichier <tt>rpms.to.install.2019-20.txt</tt>et ensuite lancer l'installation :
+
On pourra copier/coller cette liste dans un fichier <tt>rpms.to.install.txt</tt> et ensuite lancer l'installation :
-
  dnf install $(cat rpms.to.install.2019-20.txt)
+
  $root dnf install $(cat rpms.to.install.txt)
-
   
+
ou encore
 +
$root dnf install $(curl http://silico.biotoul.fr/enseignement/m2bbs/fedora/rpms.to.install.txt)
 +
 
 +
Lors de la première installation depuis un dépôt (ici, ce devrait concerner ceux de RPM Fusion), il faut s'assurer que le serveur auquel on se connecte est bien celui qu'il prétend être : ceci passe par des clés https://rpmfusion.org/keys qu'il est nécessaire de vérifier pour ne pas s'exposer à des failles de sécurité (ou pire).
 +
 
 +
A télécharger et installer :
 +
  $guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/mysql-workbench-community-8.0.33-1.fc37.x86_64.rpm
 +
$guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/sqldeveloper-22.2.0-173.2018.noarch.rpm
 +
$root dnf install mysql-workbench-community-8.0.33-1.fc37.x86_64.rpm sqldeveloper-22.2.0-173.2018.noarch.rpm
 +
 
 +
'''Remarque :''' pendant l'installation, demander à quoi correspondent ces rpm.
 +
arrêt ici jour 1 2022/08/31 13h30-17h30
-
== depuis le code source ==
+
== depuis le code source (ex : HMMER) ==
Exemple avec HMMER http://hmmer.org/
Exemple avec HMMER http://hmmer.org/
Line 359: Line 471:
En général, on dispose d'une archive du code au format .tar.gz ou .tgz  
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  
+
On vérifie le contenu de l'archive
-
  tar tzf hmmer...tar.gz
+
  $guest tar tf hmmer.tar.gz
-
ou avec la dernière version
+
-
tar tf hmmer...tar.gz
+
Cela permet de voir ce qui va être extrait (option <tt>t</tt>. 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).
Cela permet de voir ce qui va être extrait (option <tt>t</tt>. 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. <tt>man tar</tt> ). La dernière version de tar identifie automatique de quel format il s'agit.
 
Extraction du contenu :
Extraction du contenu :
-
  tar xzf hmmer...tar.gz
+
  $guest tar xf hmmer.tar.gz
-
ou avec la dernière version
+
 
-
  tar xf hmmer...tar.gz
+
On se place dans le répertoire :
 +
  $guest cd hmmer-3.3.2
 +
 
 +
En général, pour ce type d'installation, l'archive contient des fichiers de documentations comme README ou INSTALL :
 +
cat INSTALL
* <tt>./configure</tt> permet de tester l'environnement et de configurer la compilation, notamment où installer les fichiers et où trouver les librairies partagées. <tt>./configure --help</tt> 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 <tt>./configure --PREFIX=~/destination</tt>.
* <tt>./configure</tt> permet de tester l'environnement et de configurer la compilation, notamment où installer les fichiers et où trouver les librairies partagées. <tt>./configure --help</tt> 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 <tt>./configure --PREFIX=~/destination</tt>.
-
* <tt>make</tt> lance la compilation
+
* <tt>$guest make</tt> lance la compilation
-
* <tt>make test</tt> ou <tt>make check</tt> (parfois optionnel ou absent) vérifie le bon fonctionnement de ce qui a été compilé
+
* <tt>$guest make test</tt> ou <tt>make check</tt> (parfois optionnel ou absent) vérifie le bon fonctionnement de ce qui a été compilé
-
* <tt>make install</tt> (habituellement en tant qu'administrateur) installe les fichiers sur le système.
+
* <tt>$root make install</tt> (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.
Si le script ./configure se plaint de ne pas de disposer de compilateur C. Il faut donc l'installer.
-
  dnf list gcc
+
  $guest dnf list gcc
  $root dnf install gcc
  $root dnf install gcc
-
D'habitude, les programmes d'HMMER sont installéq dans <tt>/usr/local/bin</tt>. Vérification :
+
D'habitude, les programmes d'HMMER sont installés dans <tt>/usr/local/bin</tt>. Vérification :
-
  ll /usr/local/bin
+
  $guest ll /usr/local/bin
 +
<!--
== depuis un dépôt ==
== depuis un dépôt ==
Les plus utilisés sont les gestionnaires ''git'' et ''subversion''. Ils permettent notamment de faire le suivi de modifications de code source.
Les plus utilisés sont les gestionnaires ''git'' et ''subversion''. Ils permettent notamment de faire le suivi de modifications de code source.
Line 399: Line 512:
Remarque : cet outil est aussi disponible ''via'' <tt>pip install --user cheat</tt>
Remarque : cet outil est aussi disponible ''via'' <tt>pip install --user cheat</tt>
 +
-->
= Installation/configuration de services et pare-feu =
= Installation/configuration de services et pare-feu =
Line 408: Line 522:
Pour afficher la liste des services :
Pour afficher la liste des services :
-
  systemctl list-unit-files
+
  $guest systemctl list-unit-files
Pour le seveur ssh (sshd) qui permet de se connecter à distance :
Pour le seveur ssh (sshd) qui permet de se connecter à distance :
-
  systemctl status sshd
+
  $guest systemctl status sshd
On voit qu'il apparaît mais n'est pas activé au démarrage.  
On voit qu'il apparaît mais n'est pas activé au démarrage.  
Démarrage :
Démarrage :
-
  systemctl start sshd
+
  $root systemctl start sshd
Vérification :
Vérification :
-
  systemctl status sshd
+
  $guest systemctl status sshd
-
  ssh localhost
+
  $guest ssh localhost
Pour qu'il soit lancé au démarrage :
Pour qu'il soit lancé au démarrage :
-
  systemctl enable sshd
+
  $root systemctl enable sshd
-
+
 
Vérification :
Vérification :
-
  systemctl list-unit-files | grep sshd
+
  $guest systemctl list-unit-files | grep sshd
Essayez de vous connecter sur l'ordinateur de votre voisin ou voisine.  
Essayez de vous connecter sur l'ordinateur de votre voisin ou voisine.  
== apache/httpd ==
== apache/httpd ==
 +
 +
RPMs : httpd (=apache)
Y a-t-il un serveur web ? Essayer http://localhost dans un navigateur.
Y a-t-il un serveur web ? Essayer http://localhost dans un navigateur.
-
  systemctl status httpd
+
  $guest systemctl status httpd
Pour changer la configuration du serveur Web, il faut éditer les fichiers dans /etc/httpd puis redémarrer le service
Pour changer la configuration du serveur Web, il faut éditer les fichiers dans /etc/httpd puis redémarrer le service
-
  systemctl restart httpd
+
  $root systemctl restart httpd
ou recharger la configuration
ou recharger la configuration
-
  systemctl reload httpd
+
  $root systemctl reload httpd
 +
 
 +
Si le serveur Web est actif, la page de test devrait être accessible sur http://localhost
 +
 
 +
Cette page peut-être désactivée :
 +
$root mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
 +
 
 +
Vérification :
 +
$root systemctl restart httpd
 +
 
 +
Puis, accédez à http://localhost dans votre navigateur. Normalement, le contenu du répertoire <tt>/var/www/html</tt> devrait s'afficher. Il correspond à la racine des documents servis par le serveur Web.
<!--
<!--
Line 460: Line 586:
== Configuration du firewall ==
== Configuration du firewall ==
Etat du firewall :
Etat du firewall :
-
  systemctl status firewalld
+
  $guest systemctl status firewalld
ou
ou
-
  firewall-cmd --state
+
  $root firewall-cmd --state
Documentation : https://fedoraproject.org/wiki/Firewalld
Documentation : https://fedoraproject.org/wiki/Firewalld
Line 475: Line 601:
Par exemple, pour autoriser l'accès au serveur Web (port 80 par défaut) :
Par exemple, pour autoriser l'accès au serveur Web (port 80 par défaut) :
-
  firewall-cmd --permanent --add-service=http
+
  $root firewall-cmd --permanent --add-service=http
ou par numéro de port
ou par numéro de port
-
  firewall-cmd --permanent --add-port=80/tcp
+
  $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) :
Quand une règle est ajoutée de manière permanente, il faut recharger les règles pour la rendre active (runtime) :
-
  firewall-cmd --reload
+
  $root firewall-cmd --reload
Documentation de Fedora : https://fedoraproject.org/wiki/Firewalld?rd=FirewallD
Documentation de Fedora : https://fedoraproject.org/wiki/Firewalld?rd=FirewallD
 +
 +
Autres commandes utiles :
 +
* <tt>$root firewall-cmd --list-services</tt> : liste des services "ouverts"
 +
* <tt>$root firewall-cmd --list-ports</tt> : liste des ports "ouverts"
 +
* <tt>$root firewall-cmd --permanent --remove-port=port-number/port-type</tt> : "fermeture" d'un port, ex: <tt>firewall-cmd --permanent --remove-port=4000/tcp</tt>
 +
 +
 +
'''Assurez-vous que sshd soit en mode "enabled" ET que le port 22  soit ouvert''' (pare-feu) afin que Roland puisse intervenir à distance.
== MySQL/MariaDB ==
== MySQL/MariaDB ==
 +
 +
RPMs : mariadb-server mariadb-devel mariadb
'''Remarque :''' Dans les versions plus récente de fedora, mysql est remplacé par un ''fork'' nommé [https://mariadb.org/ MariaDB] qui s'utilise exactement de la même manière (avec les mêmes commandes mysql, mysqladmin, ''etc.'').
'''Remarque :''' Dans les versions plus récente de fedora, mysql est remplacé par un ''fork'' nommé [https://mariadb.org/ MariaDB] qui s'utilise exactement de la même manière (avec les mêmes commandes mysql, mysqladmin, ''etc.'').
Line 498: Line 634:
Pour les question suivantes :
Pour les question suivantes :
* Enter current password for root (enter for none): '''ne rien mettre + entrée'''
* Enter current password for root (enter for none): '''ne rien mettre + entrée'''
 +
* Switch to unix_socket authentication [Y/n] '''y'''
* Set root password? [Y/n] '''y'''
* Set root password? [Y/n] '''y'''
* Remove anonymous users? [Y/n] '''y'''
* Remove anonymous users? [Y/n] '''y'''
Line 527: Line 664:
== PHP ==
== PHP ==
-
dnf install php.x86_64 phpMyAdmin  php-bcmath.x86_64 php-gd.x86_64 php-geshi.noarch php-mbstring.x86_64 php-mcrypt.x86_64 php-pdo.x86_64
+
RPMs : httpd php phpMyAdmin  php-bcmath php-gd php-geshi php-mbstring php-pdo
-
systemctl restart httpd
+
Aller à la page http://localhost/phpMyAdmin
Aller à la page http://localhost/phpMyAdmin
 +
 +
'''Remarque :''' Pour autoriser l'accès à phpMyAdmin depuis une autre machine, il faut éditer le fichier de configuration <tt>/etc/httpd/conf.d/phpMyAdmin.conf</tt> et ajouter la directive <tt>Require all granted</tt> dans la section <tt><Directory /usr/share/phpMyAdmin/></tt> puis recharger la configuration d'apache avec <tt>$root sytemctl reload httpd</tt>.
Ou bien test manuel, en créant dans le répertoire <tt>/var/www/html/</tt> les fichiers :
Ou bien test manuel, en créant dans le répertoire <tt>/var/www/html/</tt> les fichiers :
Line 539: Line 677:
: test http://localhost/phpinfo.php
: test http://localhost/phpinfo.php
* mysql.php
* mysql.php
-
<?php
+
<pre>
-
$dbh = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
+
<?php
-
var_dump($dbh);
+
 
-
?>
+
try {
 +
$dbh = new PDO('mysql:host=localhost;dbname=performance_schema', 'root', 'bioinfooooo');
 +
echo "Successfully connected to database<br/>";
 +
}
 +
catch (PDOException $ex){
 +
  echo "Connection to database failed<br/>";
 +
}
 +
 
 +
echo 'contenu de la variable $dbh → ';
 +
var_dump($dbh);
 +
?>
 +
</pre>
 +
 
: test http://localhost/mysql.php
: test http://localhost/mysql.php
Line 557: Line 707:
liste des services :
liste des services :
-
  systemctl list-unit-files
+
  $guest systemctl list-unit-files
activer un service au démarrage de la machine :
activer un service au démarrage de la machine :
-
  systemctl enable mysqld.service
+
  $root systemctl enable mysqld.service
désactiver un service au démarrage de la machine :
désactiver un service au démarrage de la machine :
-
  systemctl disable mysqld.service
+
  $root systemctl disable mysqld.service
Pour afficher les logs:
Pour afficher les logs:
-
  journalctl -xn
+
  $root journalctl -xn
Regarder dans /var/log/
Regarder dans /var/log/
Line 576: Line 726:
== apache ==
== apache ==
-
  yum install httpd
+
  $root yum install httpd
-
  chkconfig httpd on
+
  $root chkconfig httpd on
-->
-->
Arrêt ici 1er jour (9h30 - 17h30) 06 sep 2016
Arrêt ici 1er jour (9h30 - 17h30) 06 sep 2016
-
== Environnement de développement python/R ==
+
2ème 1/2 journée 01/09/2022 8h30-11h30
 +
 
 +
= Environnement de développement python/R/... =
 +
 
 +
== Environnement pour Gestion de données non structurées et applications post-génomiques (GDNS-AP) ==
 +
 
 +
'''Remarque :''' Toutes les commandes <tt>conda</tt> ou <tt>mamba</tt> sont à exécuter '''en tant qu'utilisateur''' et '''surtout PAS administrateur/root'''.
 +
 
 +
Utilisation de <tt>mamba</tt> (plus efficace et plus rapide que conda et qui garde la même syntaxe d'utilisation que 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).
 +
 
 +
=== Installation et intialisation de mamba ===
 +
 
 +
Documentation : https://mamba.readthedocs.io/en/latest/installation.html
 +
 
 +
Il faut donc faire la commande suivante (en tant qu'utilisateur et non PAS root) :
 +
$guest curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
 +
 
 +
Puis exécuter le script téléchargé :
 +
sh Mambaforge-Linux-x86_64.sh
 +
 
 +
Do you accept the license terms? [yes|no]
 +
[no] >>> yes
 +
 +
Mambaforge will now be installed into this location:
 +
/home/guest/mambaforge
 +
 +
  - Press ENTER to confirm the location
 +
  - Press CTRL-C to abort the installation
 +
  - Or specify a different location below
 +
 +
[/home/guest/mambaforge] >>>
 +
 +
Do you wish the installer to initialize Mambaforge
 +
by running conda init? [yes|no]
 +
[no] >>> '''yes'''
 +
 
 +
Il faudra ensuite ouvrir un nouveau terminal pour voir l'effet.
-
Utilisation de <tt>conda</tt> 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'''
'''environnements'''
-
Création d'un nouvel environnement (qui utilise la version 3.7 de python)
+
Création d'un nouvel environnement (qui utilise la version 3.6 de python)
-
  conda create --name devenv python=3.7
+
  mamba create --name gdnsap python=3.6
 +
 
 +
ou bien en deux étapes (création de l'environnement puis installation de python 3.6)
 +
mamba create --name gdnsap
 +
mamba activate gdnsap
 +
mamba install python=3.6
Liste des environnements
Liste des environnements
-
  conda env list
+
  mamba env list
Test de la version de python
Test de la version de python
Line 598: Line 788:
Activation d'un environnement
Activation d'un environnement
-
  conda activate devenv
+
  mamba activate gdnsap
Test de la version de python
Test de la version de python
Line 604: Line 794:
Pour quitter l'environnement
Pour quitter l'environnement
-
  conda deactivate
+
  mamba deactivate
'''channels'''
'''channels'''
Line 611: Line 801:
Ajout :
Ajout :
-
conda config --add channels conda-forge
 
  conda config --add channels bioconda  
  conda config --add channels bioconda  
Line 617: Line 806:
Liste de packages installés :
Liste de packages installés :
-
  conda list -n devenv
+
  mamba list -n gdnsap
-
Recherche du package <tt>cheat</tt>:
+
==== <tt>cheat</tt> un utilitaire plus synthétique et souple que <tt>man</tt> pour l'accès à la documentation ====
-
  conda search cheat
+
 
 +
Recherche du programme <tt>cheat</tt> qui permet d'éditer des fiches en lignes de commande:  
 +
  $root dnf list cheat
Installation
Installation
-
  conda install cheat
+
  $root dnf install cheat
-
Création ou modification d'un cheatsheet nommé conda
+
Test
-
cheat -e conda
+
$guest cheat
-
<pre>
+
Il faut l'initiatiliser
-
# install
+
$guest mkdir -p ~/.config/cheat && cheat --init > ~/.config/cheat/conf.yml
-
dnf install conda
+
$guest ln -s /usr/share/cheat ~/.config/cheat/cheatsheets/community
 +
$guest mkdir -p ~/.config/cheat/cheatsheets/personal
-
# links
+
Affichage des répertoires utilisés
-
https://opensource.com/article/19/4/managing-python-packages
+
$guest cheat -d
 +
 
 +
Affichage de l'aide d'une commande
 +
$guest cheat dnf
 +
 
 +
Création ou modification d'un cheatsheet nommé mamba avec <tt>vi</tt>
 +
$guest cheat -e mamba
 +
 
 +
à copier/coller dans <tt>vi</tt>
 +
<pre>
 +
# install Documentation : https://mamba.readthedocs.io/en/latest/installation.html
 +
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
 +
sh Mambaforge-Linux-x86_64.sh
# ENVS
# ENVS
####################################
####################################
-
conda info --envs
+
mamba env list
-
conda env list
+
# lists installed packages
# lists installed packages
-
conda list -n python3
+
mamba list -n gdnsap
# remove environment
# remove environment
-
conda remove --name myenv --all
+
mamba remove --name myenv --all
# create env
# create env
-
conda create --name devenv python=3.7
+
mamba create --name devenv python=3.7
-
conda create --name newly_created_env --clone existing_env
+
# clone env
 +
mamba create --name newly_created_env --clone existing_env
 +
 
 +
# export/import
 +
conda list -e > conda.env.list.txt
 +
conda list --export --name gdnsap > gdnas.mamba.list.txt
 +
 
 +
conda create -n new_env --file conda.env.list.txt
# activate/deactivate
# activate/deactivate
-
conda activate devenv
+
mamba activate devenv
-
conda deactivate
+
mamba deactivate
Line 661: Line 871:
conda config --add channels conda-forge  
conda config --add channels conda-forge  
conda config --add channels bioconda  
conda config --add channels bioconda  
 +
 +
conda config --remove channels conda-forge
# PACKAGES
# PACKAGES
######################################
######################################
-
conda list
+
mamba list
-
conda search
+
mamba search
-
conda install cheat
+
mamba install python
 +
mamba install python=2.7
</pre>
</pre>
Visualisation
Visualisation
-
  cheat conda
+
  cheat mamba
 +
=== Librairies R pour GDNS-AP ===
 +
 +
Nous aurons besoin des librairies suivantes :
 +
* tidyverse (CRAN)
 +
* RMySQL  (CRAN)
 +
* neo4r (CRAN)
 +
* reticulate (CRAN)
 +
* STRINGdb  (BioConductor)
 +
 +
On en déduit la commande suivante :
 +
mamba activate gdnsap
 +
mamba install r-tidyverse r-rmysql r-neo4r r-reticulate bioconductor-stringdb
 +
 +
<!--
 +
La librairie neo4r dont nous aurons besoin n'est pas disponible dans les dépôts de conda utilisés :
 +
R
 +
install.packages('neo4r')
 +
-->
 +
 +
=== Modules python pour GDNS-AP ===
 +
 +
Les modules suivants seront nécessaires :
 +
* numpy
 +
* pandas
 +
* igraph
 +
* scipy
 +
* neo4j
 +
 +
Les modules python sont installables directement avec leur nom utilisé pour leur import dans un script :
 +
mamba activate gdnsap
 +
mamba install scipy mycli igraph numpy pandas neo4j-python-driver
 +
 +
 +
 +
 +
'''Récapitulatif : création de l'environnement en une fois :'''
 +
mamba create -n gdnsap r-tidyverse r-rmysql r-neo4r r-reticulate r-dt r-kableextra bioconductor-stringdb r-rmdformats scipy mycli igraph numpy pandas neo4j-python-driver scipy mycli igraph numpy pandas neo4j-python-driver
 +
 +
 +
 +
<!--
 +
Le module neo4j permettant d'interroger le serveur de bases de données (graphiques) du même nom n'est pas disponible dans les dépôt conda :
 +
conda activate idh
 +
pip install neo4j
 +
-->
 +
 +
<!--biopython    mycli igraph  numpy pandas scipy scikit-learn matplotlib  keras theano tensorflow deeptools  macs2-->
 +
 +
<!--
 +
=== Autres programmes pour IDH ===
 +
 +
On pourra utiliser le client en ligne de commande (CLI) mycli pour interrogrer le serveur de bases de données MySQL/MariaDB :
 +
conda activate idh
 +
conda install mycli
 +
mycli -u root
 +
 +
<!--
 +
=== Variables d'environnement pour IDH ===
 +
 +
 +
Il est possible de positionner certaines variables selon l'environnement actif en créant ou modifiant un fichier dans <tt>~/.conda/envs/'''idh'''/activate.d/env_vars.sh</tt> (remplacer ''idh'' 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 <tt>~/.conda/envs/'''idh'''/deactivate.d/env_vars.sh</tt>
 +
 +
Ceux sont 2 scripts shell qui sont exécutés à l'activation ou la désactivation d'un environnement. Ils peuvent permettrent de positionner des variables ou des chemins pour accéder à certaines librairies.
 +
 +
 +
 +
 +
 +
<!--
 +
== R et librairies ==
 +
 +
Installation de R version 3.6
 +
conda install r-base=3.6
 +
 +
Avec conda, les librairies R sont nommées avec <tt>r-</tt> avant le nom de la librairie ; exemple avec <tt>tidyverse</tt>
 +
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 <tt>bioconductor-</tt> :
 +
conda install bioconductor-rhtslib bioconductor-chipseq bioconductor-GenomicRanges bioconductor-edgeR bioconductor-genefilter bioconductor-geneplotter bioconductor-DESeq2 bioconductor-mixOmics bioconductor-STRINGdb
 +
 +
<!--
 +
 +
c'est bien sûr aussi particulier et il faut utiliser les fonctions fournies par la librairie BiocManager installée précédemment :
 +
R> BiocManager::install( c('chipseq', 'GenomicRanges', 'edgeR', 'genefilter', 'geneplotter', 'DESeq2', 'mixOmics', 'STRINGdb') )
 +
 +
On remarque un problème pour certaines librairies :
 +
1: In install.packages(pkgs = doing, lib = lib, repos = repos, ...) :
 +
  installation of package ‘ShortRead’ had non-zero exit status
 +
2: In install.packages(pkgs = doing, lib = lib, repos = repos, ...) :
 +
  installation of package ‘chipseq’ had non-zero exit status
 +
 +
et tout particulièrement :
 +
configure: error: zlib not found
 +
 +
qui indique que le compilateur ne trouve pas cette librairie. Pour cette fois, il faut positionner les variables d'environnement suivantes pour résoudre le problème :
 +
export CPPFLAGS='-I/home/guest/.conda/envs/devenv/include'
 +
export LDFLAGS='-L/home/guest/.conda/envs/devenv/lib'
 +
 +
'''Remarque :''' les variables précédentes sont pour l'utilisateur <tt>guest</tt> et l'environnement <tt>devenv</tt>
 +
 +
-->
 +
 +
<!--
== R, librairies et RStudio ==
== R, librairies et RStudio ==
  $root dnf install -y R.x86_64  
  $root dnf install -y R.x86_64  
Line 731: Line 1,055:
Prérequis pour générer du PDF car il manque, entre autres, un fichier de style framed.sty :
Prérequis pour générer du PDF car il manque, entre autres, un fichier de style framed.sty :
  $root dnf install texlive-framed texlive-titling
  $root dnf install texlive-framed texlive-titling
 +
-->
 +
<!--
== Perl et BioPerl ==
== Perl et BioPerl ==
Line 759: Line 1,085:
  print Dumper($seq_obj);
  print Dumper($seq_obj);
  Ctrl-D
  Ctrl-D
 +
-->
 +
<!--
<!--
Line 810: Line 1,138:
-->
-->
-
= Autres logiciels spécifiques =
+
= Ateliers et autres logiciels spécifiques =
-
== Zotero ==
+
== Zotero (UE Communication) ==
A partir de https://www.zotero.org : Cliquer sur Download puis installer l'application stand-alone (à gauche). Elle est fournit au format tar :
A partir de https://www.zotero.org : Cliquer sur Download puis installer l'application stand-alone (à gauche). Elle est fournit au format tar :
-
  cd ~/Downloads
+
  $guest cd ~/Downloads
-
  tar tf Zotero-5.0.55_linux-x86_64.tar.bz2
+
  $guest tar tf Zotero-*.tar.bz2
-
  tar xf Zotero-5.0.55_linux-x86_64.tar.bz2
+
  $guest tar xf Zotero-*.tar.bz2
-
  cd Zotero_linux-x86_64
+
  $guest mv Zotero_linux-x86_64 ~/bin/
-
  ./zotero
+
$guest cd ~/bin
 +
$guest ln -s Zotero_linux-x86_64/zotero
 +
 
 +
Test depuis n'importe où dans un shell :
 +
  $guest zotero
 +
 
 +
Tester également que le plug-in est installé dans libreoffice :
 +
$guest oowriter
 +
 
 +
 
 +
Et ensuite, installer le plug-in firefox (à droite sur la page d'accueil du site de Zotero).
 +
 
 +
== Base de données avancées : SQL developer ==
 +
 
 +
Normalement, le RPM (linux 64 bits) est à récupérer dans la liste de la page https://www.oracle.com/tools/downloads/sqldev-downloads.html mais cette étape a déjà été réalisée la vieille avec la liste des RPM à installer.
 +
 
 +
Il faut un environnement avec Java ; openjdk fera l'affaire :
 +
$guest mamba create --name bd2 openjdk
 +
 
 +
A exécuter la première fois en ligne de commande pour renseigner le chemin d'accès au JDK :
 +
$guest mamba activate bd2
 +
$guest sqldeveloper
 +
 
 +
Apparaît
 +
 +
Oracle SQL Developer
 +
Copyright (c) 2005, 2021, Oracle and/or its affiliates. All rights reserved.
 +
 
 +
<!--
 +
A partir d'un autre shell, trouver le répertoire racine du JDK 1.8 ... Habituellement, les différentes versions sont dans :
 +
$guest ls -lh /usr/lib/jvm
 +
 
 +
On observe que la 1.8.0 est un lien symbolique vers <tt>/etc/alternatives/java_sdk_1.8.0</tt>. Si l'on regarde ce répertoire :
 +
$guest ls -lh /etc/alternatives/java_sdk_1.8.0
 +
 
 +
On observe que c'est encore une redirection vers OpenJDK :
 +
$guest ls -lh /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.265.b01-1.fc31.x86_64
 +
 
 +
Donc, le répertoire racine est
 +
/usr/lib/jvm/java-1.8.0
 +
 
 +
 
-
Et ensuite, installer le plug-in firefox (à doite).
 
<!--
<!--
Line 855: Line 1,223:
-->
-->
-
== samtools ==  
+
== Atelier Apprentissage automatique ==
-
prérequis : curses.h
+
L'ensemble se fait avec python et les modules ce-dessous. Il faut donc créer une environnement conda correspondant et installer les modules :
 +
$guest mamba deactivate
 +
$guest mamba create --name ml # pour machine learning
 +
$guest mamba activate ml
 +
$guest mamba install python=3 keras theano tensorflow deeptools matplotlib
-
pour trouver le rpm à installer :
+
Lors des séances d'apprentissage automatique, pensez à activer l'environnement <tt>ml</tt>
-
  dnf provides */curses.h
+
  conda activate ml
-
c'est bien sûr ncurses-devel donc :
+
== Atelier Galaxy ==
-
$root dnf install ncurses-devel
+
 +
Il sera fait à distance en 2022-23. Les étudiant·e·s peuvent travailler chez eux ou en P0.
-
La dernière version à récupérer sur http://www.htslib.org/download/
+
L'atelier nécessite
-
wget https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2
+
* UNIX/Linux or Mac OSX
-
tar xf samtools-1.9.tar.bz2
+
* python 3.7 ou plus récent
-
cd samtools-1.9
+
-
make
+
-
$root make install
+
-
== tabix ==
+
<!--
-
* dernière version à récupérer sur http://www.htslib.org/download/
+
On s'assure que apache est installé ainsi que la version 2 de python (au niveau système et pas dans un environnement conda spécifique à un utilisateur) :
-
wget https://github.com/samtools/htslib/releases/download/1.9/htslib-1.9.tar.bz2
+
  $root dnf install httpd git python2
-
tar xjf htslib-1.9.tar.bz2
+
-
cd htslib-1.9
+
-
./configure
+
-
make
+
-
  $root make install
+
-
== bwa ==
+
Au cas où, pour les développements, on installe aussi python2.7 dans un environnement spécifique :
 +
$guest conda deactivate
 +
$guest conda create --name galaxy python=2.7
 +
-->
-
Chez ''sourceforge'', la liste des versions disponibles : https://sourceforge.net/projects/bio-bwa/files/
+
== Atelier ChIP-seq / HiC / single cell ==
-
On récupère la dernière :
+
Cet atelier nécessite divers utilitaires et librairies. On commence par créer un environnement conda dédié :
-
  tar tf bwa-0.7.17.tar.bz2
+
  $guest mamba deactivate
-
  tar xf bwa-0.7.17.tar.bz2
+
  $guest mamba create --name chipseq
-
cd bwa-0.7.17
+
  $guest mamba activate chipseq
-
  make
+
-
cd ~/bin
+
-
ln -s ~/Downloads/bwa-0.7.17/bwa
+
-
cd
+
-
bwa
+
-
ldd ~/bin/bwa # vérification des librairies utilisées
+
-
== MACS2 ==
+
Certains programmes, comme FastQC ou BWA, sont disponibles depuis conda. <!-- L'un d'eux, samtools, l'est aussi mais il entre en conflit (à la date du 31 août 2020) avec d'autres librairies... On commence à installer tout ce qu'on peut pour conda :-->
 +
$guest mamba install fastqc cutadapt bwa macs2 deeptools igv trim-galore picard samtools
-
'''Prérequis:'''<br/>
+
Librairies pour R/Rstudio
-
A lire dans https://github.com/taoliu/MACS puis le ISNTALL. Il faut apparemment Python 2.7, Numpy (>=1.6) gcc, Cython (>=0.18).
+
$guest mamba install r-dplyr r-pheatmap r-biocmanager bioconductor-GenomicRanges bioconductor-chippeakanno bioconductor-limma bioconductor-seqplots bioconductor-rtracklayer r-highr r-knitr r-rmarkdown r-tinytex r-xfun
-
  pip -V
+
(ajouter pour Rmarkdown: highr, knitr, markdown, rmarkdown, tinytex, xfun → r-highr r-knitr, r-markdown, r-rmarkdown, r-tinytex, r-xfun)
-
pip2.7 list
 
-
<!--
+
Les annotations de la drosophile ne sont pas disponibles depuis conda donc on le fait sous R :
-
numy 1.9.2 est installé. Mise à jour de pip, un peu vieux :
+
  $guest R
-
  pip2.7 install --upgrade pip
+
BiocManager::install(c('GenomeInfoDb','TxDb.Dmelanogaster.UCSC.dm6.ensGene'))
-
-->
+
-
Pour Cython, il faut aller sur http://cython.org qui nous indique de l'installer avec PyPI -- http://pypi.python.org/pypi/Cython/ -- et donc avec la commande pip :
+
Tester si les librairies se chargent correctement :
-
  $root pip2.7 install Cython --install-option="--no-cython-compile"
+
$guest R
 +
library("GenomicRanges")
 +
library("TxDb.Dmelanogaster.UCSC.dm6.ensGene")
 +
  library("ChIPpeakAnno")
 +
library("limma")
 +
library("seqplots")
 +
library("dplyr")
 +
library("rtracklayer")
 +
library("pheatmap")
-
'''Installation :'''<br/>
+
<!--
-
Et encore d'après le README, on utilise ensuite pip pour installer  MACS2, mais avant cela il manque encore une librarie (python-devel) :
+
===TrimGalore===
-
$root dnf install python-devel
+
-
$guest pip2.7 install --user MACS2
+
-
== fastqc ==
+
Un script perl servant de wrapper pour cutadapt et bwa. On récupère l'archive et on créé un lien symbolique dans notre répertoire <tt>~/bin</tt>
-
Le site http://www.bioinformatics.babraham.ac.uk/projects/fastqc/
+
$guest curl -fsSL https://github.com/FelixKrueger/TrimGalore/archive/0.6.5.tar.gz -o trim_galore.tar.gz
 +
$guest tar xf trim_galore.tar.gz
 +
$guest mv TrimGalore-0.6.5 ~/bin
 +
$guest cd ~/bin
 +
$guest ln -s TrimGalore-0.6.5/trim_galore
-
Les liens de téléchargements http://www.bioinformatics.babraham.ac.uk/projects/download.html#fastqc
+
===picard-tools/picard===
-
Les instructions pour l'installation http://www.bioinformatics.babraham.ac.uk/projects/fastqc/INSTALL.txt
+
Un autre programme non trouvé dans les dépôts de conda. C'est un programme Java, donc on télécharge le fichier <tt>.jar</tt> que l'on met dans le répertoire <tt>~/bin</tt> et on créé un alias pour l'utiliser en ligne de commande plus "facilement" :
-
Il faut notamment java >= 1.6
+
Téléchargement sur https://broadinstitute.github.io/picard/
-
  $guest wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
+
Commandes :
-
  unzip -l fastqc_v0.11.5.zip
+
$guest cd ~/bin
-
unzip fastqc_v0.11.5.zip # car tout est dans un sous-répertoire
+
  $guest wget https://github.com/broadinstitute/picard/releases/download/2.23.3/picard.jar
-
cd FastQC
+
  $guest echo "alias picard='java -jar $HOME/bin/picard.jar'" >> ~/.bashrc
-
chmod +x fastqc
+
  source ~/.bashrc
-
  ./fastqc
+
-
Ca marche !
+
L'alias créé permet l'utilisation en ligne de commande :
 +
$guest which picard
 +
$guest picard -h
 +
-->
-
cd
+
== Atelier Phylogénomique ==
-
mv Downloads/FastQC ~/bin/
+
-
cd ~/bin
+
-
ln -s FastQC/fastqc
+
-
== Java ==
+
Création de l'environnement
 +
mamba deactivate
 +
mamba create -n phylog
 +
mamba info --envs
 +
mamba activate phylog
-
Téléchargement de Java 1.6 d'Oracle depuis http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html mais cela nécessite de s'enregistrer.
+
Installation de Mauve et progressiveMauve (http://darlinglab.org/mauve/mauve.html), Artemis (https://www.sanger.ac.uk/tool/artemis/) et FigTree (http://tree.bio.ed.ac.uk/software/figtree/)
 +
mamba install mauve progressivemauve artemis figtree
-
Il faut installer le paquet une fois téléchargé pour l'installation
+
=== seaview ===
-
$root dnf install jdk-6u24-linux-amd64.rpm
+
-
Cela installe Java dans <tt>/usr/java</tt>
+
Site : http://doua.prabi.fr/software/seaview
-
Ensuite, il faut configurer le système pour choisir la nouvelle version d'installée avec la commande <tt>alternatives</tt>.
+
$guest cd ~/Downloads
-
  which java                # on obtient /usr/bin/java
+
  $guest wget http://doua.prabi.fr/software/seaview_data/seaview5-64.tgz
-
ll /usr/bin/java          # on obtient quelque chose comme lrwxrwxrwx 1 root root 22 10 juil2015 /usr/bin/java -> /etc/alternatives/java
+
  $guest cd ~/bin
-
  ll /etc/alternatives/java  # donne quelque chose comme lrwxrwxrwx 1 root root 30 10 juil2015 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.fc23.x86_64/jre/bin/java
+
  $guest tar tf ~/Downloads/seaview5-64.tgz
 +
  $guest tar xf ~/Downloads/seaview5-64.tgz
 +
$guest mv seaview seaview5-64
 +
$guest ln -s seaview5-64/seaview
-
Pour sélectionner entre différentes version
+
=== SplitsTree ===
-
$root alternatives --config java
+
-
On obtient quelque chose comme
+
Site : https://uni-tuebingen.de/en/fakultaeten/mathematisch-naturwissenschaftliche-fakultaet/fachbereiche/informatik/lehrstuehle/algorithms-in-bioinformatics/software/splitstree/
-
  Selection    Command
+
-
-----------------------------------------------
+
-
*+ 1          java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-5.b01.fc25.x86_64/jre/bin/java)
+
-
  Enter to keep the current selection[+], or type selection number:  
+
  $guest cd ~/Downloads
 +
$guest wget https://software-ab.informatik.uni-tuebingen.de/download/splitstree5/SplitsTree5_unix_5_2_28-beta.sh
 +
$guest sh SplitsTree5_unix_5_2_28-beta.sh
-
Pour ajouter une alternative (la version que l'on vient d'installer) :
+
Lors de l'installation, vous pourrez spécifier le répertoire de destination où l'installer (par exemple, ~/bin/splitstee5) ainsi que où créer les liens symboliques pour le lancement en ligne de commande (par exemple ~/bin).
-
alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_24/bin/java 16024
+
-
Puis
+
Copie de l'installation de pc2 :
-
  alternatives --config java
+
  $guest rsync --itemize-changes -a -h --stats -e ssh guest@pc2:bin/splitstree5/ ~/bin/splitstree5/
 +
$guest cd ~/bin
 +
$guest ln -s splitstree5/SplitsTree5
-
nous propose
 
-
  Selection    Command
 
-
-----------------------------------------------
 
-
*+ 1          java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-5.b01.fc25.x86_64/jre/bin/java)
 
-
    2          /usr/java/jdk1.6.0_24/bin/java
 
-
Enter to keep the current selection[+], or type selection number: '''2'''
+
<!--
 +
=== Mauve / progressiveMauve ===
-
Ensuite faire pareil pour le compilateur java (javac)
+
Site : http://darlinglab.org/mauve/download.html
-
alternatives --install /usr/bin/'''javac''' '''javac''' /usr/java/jdk1.6.0_24/bin/'''javac''' 16024
+
-
alternatives --config '''javac'''
+
-
Pour la commande alternatives, voir le manuel <tt>man alternatives</tt>. pour <tt>--install</tt> l'ordre des paramètres est :
+
$guest cd ~/Downloads
-
  alternatives --install link  name path  priority
+
$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
-
* <tt>link</tt> est la commande à installer (obtenue avec de <tt>which java</tt>)
+
Tester en lançant la commande suivante depuis n'importe où dans un shell :
-
* <tt>name</tt> est le nom de l'alternative utilisée dans <tt>alternatives --config</tt> par exemple
+
Mauve
-
* <tt>path</tt> est le chemin de l'exécutable (que l'on vient d'installer)
+
-
* <tt>priority</tt> est utilisée lors des mises à jour ou d'installations de logiciels qui remplace la commande. Par défaut, la priorité la plus forte est utilisée. Ainsi, si on installe jdk7u32 (1.7.0.32), la priorité devrait être plus importante (17032).
+
-
== SQLDevelopper == <!-- 2018-09 Riad Mokadem
+
-->
-
Bonjour Roland,
+
-
Jeudi, j'entamerai aujourd'hui les cours BD puis les TPs la semaine prochaine.
+
<!--
-
En conséquence, les étudiants doivent installer SQL Developper. Je pensais demander aux étudiants de le faire sur chaque machine
+
=== artemis  figtree ===
-
Pourras tu s'il te plait leur demander d'installer (http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html)
+
conda create -n phylog
 +
conda info --envs
 +
conda activate phylog
-
Merci d'avance
+
conda install artemis
 +
conda install figtree
 +
-->
-
Bonne journée,
+
== Atelier Etude du métabolisme ==
-
Riad
+
Cytoscape à télécharger sur le site : https://github.com/cytoscape/cytoscape/releases/download/3.8.2/Cytoscape_3_8_2_unix.sh
-
-->
+
Autres modules pythons dans un environnement conda dédié :
 +
$guest mamba create --name metabo
 +
$guest mamba activate metabo
 +
$guest mamba install python=3.6 openjdk maven glpk
-
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 :
+
Récupération l'image singularity de met4j
-
  $guest sqldeveloper
+
  singularity pull met4j-toolbox.sif oras://registry.forgemia.inra.fr/metexplore/met4j/met4j-singularity:latest
-
Apparaît
+
Test est simple : la commande met4j-toolbox.sif doit retourner le help.  
-
+
-
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
+
A essayer
-
  $root alternatives --config javac
+
chmod 755 met4j-toolbox.sif
 +
  ./met4j-toolbox.sif
-
OpenJDK est installé par défaut dans
+
<!--
-
ll /usr/lib/jvm/
+
=== Glpk (ou lp_solve) ===
-
Donc, le répertoire racine est
+
Maintenant disponible dans conda :
-
  /usr/lib/jvm/java-1.8.0
+
  conda install glpk
 +
Anciennement :
-
== IGV (Integrated Genomics Viewer) ==
+
Site https://www.gnu.org/software/glpk/#downloading
-
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/ :
+
Téléchargement et compilation
-
  $guest wget http://data.broadinstitute.org/igv/projects/downloads/2.4/IGV_2.4.10.zip
+
$guest latest=glpk-4.65
-
  $guest unzip -l IGV_2.4.10.zip
+
  $guest wget http://ftp.gnu.org/gnu/glpk/$latest.tar.gz
-
  $guest unzip IGV_2.4.10.zip
+
  $guest tar tf $latest.tar.gz
-
  $guest cd IGV_2.4.10
+
  $guest tar xf $latest.tar.gz
-
  $guest ./igv.sh
+
  $guest cd $latest
-
  $guest cd ~/bin
+
  $guest ./configure
-
  $guest ln -s ~/Downloads/IGV_2.4.10/igv.sh igv
+
  $guest make
 +
  $guest make check
 +
 
 +
Si pas d'erreur
 +
$root make install
<!--
<!--
-
== snpEff ==
+
=== Cplex (TODO) ===
-
wget http://downloads.sourceforge.net/project/snpeff/snpEff_latest_core.zip
+
TODO : Autre logiciel et module à faire : cplex
-
unzip -l snpEff_latest_core.zip
+
-
unzip snpEff_latest_core.zip
+
-
cd snpEff/
+
-
Là, il faut java >= 1.7
+
'''NE PAS FAIRE CPlex'''
-
$root alternatives --config java
+
Cplex + Python, nécessite apparemment un compte ou un mail reconnu l'IBM Academic Initiative :
-
$guest java -jar snpEff.jar
+
-
-->
+
-
== Python modules ==
+
https://community.ibm.com/community/user/datascience/blogs/xavier-nodet1/2020/07/09/cplex-free-for-students
-
python 3 + libs : theano, matplotlib, keras
+
-
$root dnf install python3-theano python3-matplotlib
+
-
$guest pip3 install --user keras
+
-
pip2.7 install --user keras
+
Une fois téléchargé cplex, il faut installer le module python :
-
pip2.7 install --user scikit-learn
+
-
pip2.7 install --user scipy
+
-
pip2.7 install --user cycli
+
 +
https://www.ibm.com/support/knowledgecenter/SSSA5P_12.8.0/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/set_up/Python_setup.html
-
Arrêt ici 2èmé jour (9h30 - 18h00) 07 sep 2016
+
Et apparemment, il y a peut-être d'autres difficultés. Il faut python 3.6 et pas au dessus.
-
<!-- David Bouyssié 2015
 
-
== Scala IDE ==
 
 +
<!--
 +
Télécharger la dernière version 3.x de Cytoscape : https://cytoscape.org
-
* Scala IDE : http://scala-ide.org/download/sdk.html
+
$guest cd ~/Downloads
 +
$guest wget https://github.com/cytoscape/cytoscape/releases/download/3.8.0/Cytoscape_3_8_0_unix.sh
 +
sh Cytoscape_3_8_0_unix.sh
-
Téléchargement et extraction du .tar.gz puis lancement sans problème de eclipse. L'ensemble a été déplacé dans /home/guest/bin/eclipse-4.4.1
+
Si le répertoire d'installation choisi est ~/bin/Cytoscape_v3.7.2
 +
$guest cd ~/bin
 +
$guest ln -s Cytoscape_v3.7.2/Cytoscape
-
lancement depuis n'importe où pour l'utilisateur guest :
+
Test
-
  eclipse
+
  cd
-
-->
+
Cytoscape
-
== GNA ==
 
-
Genetic Network Analyzer Disponible https://team.inria.fr/ibis/genetic-network-analyzer-gna/
 
-
Téléchargement
+
<!-- == igraph/R-igraph ==
-
$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
+
 +
Avec dnf
 +
$root dnf install igraph igraph-devel
 +
R
 +
install.packages('igraph')
-
<!--
+
Apparemment, il manque la librairie glpk
-
Nécessite Java 1.6, pour sélectionner la version de java :
+
  $root dnf provides */libglpk.so
-
  $root alternatives --config java
+
$root dnf list glpk-devel
 +
$root dnf install glpk-devel
 +
ll /lib64/libglpk*
 +
-->
-
Installé dans /home/guest/bin/GNA_8.4.0
+
== Atelier Paléogénomique ==
-
Création du lien symbolique :
+
A compléter
-
cd ~/bin
+
-
ln -s GNA_8.4.0/genetic_network_analyzer GNA
+
-
Le script de lancement a dû être modifié car la mauvaise version de java était utilisée (cf. lignes 383-384 du fichier genetic_network_analyzer)
+
== Atelier Métagénomique et intégration de données ==
-
Pour le lancer de n'importe où (guest) :  
+
Création de l'environnement conda avec R et les librairies nécessaires :
-
  GNA
+
  $guest mamba deactivate
-
-->
+
$guest mamba create --name metagenomique bioconductor-mixomics r-mixkernel
-
== Charlie ==
+
$guest mamba activate metagenomique
 +
 
 +
== Atelier Modélisation ==
 +
 
 +
Création de l'environnement avec java
 +
mamba deactivate
 +
mamba create --name sysbio openjdk
 +
 
 +
=== Charlie ===
Site de téléchargement : http://www-dssz.informatik.tu-cottbus.de/DSSZ/Software/Charlie#download
Site de téléchargement : http://www-dssz.informatik.tu-cottbus.de/DSSZ/Software/Charlie#download
 +
$guest cd ~/Downloads
  $guest wget www-dssz.informatik.tu-cottbus.de/track/download.php?id=28 -O setup_charliev2_0.jar
  $guest wget www-dssz.informatik.tu-cottbus.de/track/download.php?id=28 -O setup_charliev2_0.jar
-
  java -version
+
si un problème de certificat :
 +
  $guest wget silico.biotoul.fr/enseignement/m2bbs/fedora/setup_charliev2_0.jar
-
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
+
Puis, faire l'installation, par exemple dans ~/bin/Charlie
 +
$guest mamba deactivate
 +
$guest mamba activate sysbio
 +
$guest cd ~/Downloads
  $guest java -jar setup_charliev2_0.jar
  $guest java -jar setup_charliev2_0.jar
Line 1,124: Line 1,507:
  $guest ./run.sh
  $guest ./run.sh
-
== COPASI ==
+
=== COPASI ===
-
Site http://copasi.org/
+
Site http://copasi.org
-
Téléchargements : http://copasi.org/Download//
+
Téléchargements : http://copasi.org/Download/
From binaries:
From binaries:
-
  wget https://github.com/copasi/COPASI/releases/download/Build-197/COPASI-4.24.197-Linux-64bit.tar.gz
+
  $guest cd ~/Downloads
-
tar tf COPASI-4.24.197-Linux-64bit.tar.gz
+
$guest wget https://github.com/copasi/COPASI/releases/download/Build-260/COPASI-4.36.260-Linux-64bit.sh -O COPASI-Linux-64bit.sh
-
  tar xf COPASI-4.24.197-Linux-64bit.tar.gz
+
  $guest sh COPASI-Linux-64bit.sh
-
cd COPASI-4.24.197-Linux-64bit/
+
-
ll
+
-
ll bin/
+
-
bin/CopasiUI
+
-
<!--
+
→ Installation directory: /home/guest/bin/COPASI/4.36.260
-
Erreur, il manque une librairie sur le système : ''/home/guest/Downloads/COPASI-4.16.104-Linux-64bit/share/copasi/lib/CopasiUI: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory''
+
-
Recherche du paquet à installer :
+
Il manque une librairie :
-
  $root dnf provides */libpng12.so.0
+
  $guest ldd ~/bin/COPASI/4.36.260/share/copasi/lib/CopasiUI
-
Il faut donc installer libpng12 :
+
Recherche et installation du RPM dont on a besoin :
-
  $root dnf install libpng12
+
$guest dnf provides */libQt5DataVisualization.so
 +
  $root dnf install qt5-qtdatavis3d-devel
-
Ca marche donc il est déplacé dans /home/guest/bin/
+
Test
-
  mv ~/Downloads/COPASI-4.16.104-Linux-64bit ~/bin/
+
  $guest ~/bin/COPASI/4.36.260/bin/CopasiUI
-
-->
+
Et création du lien symbolique pour le lancer de n'importe où :
Et création du lien symbolique pour le lancer de n'importe où :
-
  mv COPASI-4.24.197-Linux-64bit ~/bin/
+
  $guest cd ~/bin
-
  ln -s ~/bin/COPASI-4.24.197-Linux-64bit/bin/CopasiUI ~/bin/COPASI
+
  $guest $ ln -s COPASI/4.36.260/bin/CopasiUI  
-
  cd
+
  $guest cd
-
COPASI
+
-
== Snoopy ==
+
=== GINSim ===
-
* Snoopy : http://www-dssz.informatik.tu-cottbus.de/DSSZ/Software/Snoopy#downloads
+
-
$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 ==
+
-
 
+
-
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.
+
-
 
+
-
VirtualBox 5.2.18 pour Fedora 26-27-28
+
-
$guest wget https://download.virtualbox.org/virtualbox/5.2.18/VirtualBox-5.2-5.2.18_124319_fedora26-1.x86_64.rpm
+
-
$root dnf install VirtualBox-5.2-5.2.18_124319_fedora26-1.x86_64.rpm
+
-
$guest VirtualBox
+
-
 
+
-
En le lançant en ligne de commande, il y a un message indiquant qu'il manque des paquets :
+
-
$root dnf install kernel-* elfutils-libelf-devel
+
-
 
+
-
Et ensuite, il faut reconfigurer VirtualBox
+
-
$root /sbin/vboxconfig
+
-
 
+
-
== pymol ==
+
-
 
+
-
Site https://www.pymol.org/
+
-
 
+
-
$root dnf install pymol
+
-
 
+
-
 
+
-
<!--
+
-
Click on '''Download'''
+
-
 
+
-
Click in section '''Students and Instructors''' on http://pymol.org/educational/ then you will be brought to a regitration form.
+
-
 
+
-
* pymol (Pb de compilation)
+
-
yum install freeglut.x86_64 freeglut-devel.x86_64 python-pmw python-devel.x86_64 glew.x86_64 glew-devel.x86_64
+
-
-->
+
-
 
+
-
== VMD ==
+
-
 
+
-
cd vmd-1.9.2
+
-
less README
+
-
$root ./configure
+
-
$root cd src
+
-
$root make install
+
-
$guest vmd
+
-
 
+
-
<!--
+
-
Problem: download needs login, thus registration almost probably a licence
+
-
 
+
-
Site http://www.ks.uiuc.edu/Research/vmd/
+
-
 
+
-
Download page http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=VMD
+
-
-->
+
-
 
+
-
== Qt 4.8 ==
+
-
 
+
-
Avec dnf :
+
-
$root dnf list qt
+
-
$root dnf info qt
+
-
$root dnf install qt
+
-
 
+
-
== Gromacs ==
+
-
 
+
-
avec dnf
+
-
dnf list gromacs
+
-
$root dnf install gromacs
+
-
 
+
-
<!--
+
-
== Webmin ==
+
-
* Webmin (interface web pour l'administration du système)
+
-
 
+
-
Installer le paquet puis aller sur https://localhost:10000
+
-
-->
+
-
 
+
-
== GinSim ==
+
Site : http://ginsim.org/downloads
Site : http://ginsim.org/downloads
Téléchargement puis test :
Téléchargement puis test :
 +
$guest cd ~/bin
  $guest wget http://ginsim.org/sites/default/files/GINsim-2.4.jar
  $guest wget http://ginsim.org/sites/default/files/GINsim-2.4.jar
 +
 +
Test ou utilisation
  $guest java -jar 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/
+
Éventuellement, création d'un script pour le lancer en ligne de commande :
  $guest cd ~/bin
  $guest cd ~/bin
  $guest echo '#!/bin/bash' > ginsim
  $guest echo '#!/bin/bash' > ginsim
Line 1,276: Line 1,557:
  ginsim
  ginsim
-
== Glpk (ou lp_solve)==
+
=== GNA ===
-
Site https://www.gnu.org/software/glpk/#downloading
+
Site Genetic Network Analyzer https://team.inria.fr/ibis/genetic-network-analyzer-gna/
-
Téléchargement et compilation
+
Téléchargement  
-
  $guest latest=glpk-4.63
+
  $guest cd ~/Downloads
-
  wget http://ftp.gnu.org/gnu/glpk/$latest.tar.gz
+
  $guest wget http://ibis.inrialpes.fr/people/dejong/GNA/executables/GNA_unix_8_7_1_1.sh
-
  tar tf $latest.tar.gz
+
  $guest sh GNA_unix_8_7_1_1.sh
-
tar xf $latest.tar.gz
+
-
cd $latest
+
-
./configure
+
-
make
+
-
make check
+
-
Si pas d'erreur
+
A installer dans votre répertoire ~/bin/GNA_8.7.1.1, et le lien symbolique est à créer dans ~/bin, le montant maximum de mémoire peut être laissé à la valeur proposée.
-
$root make install
+
-
== Google Chrome ==
+
Test :
 +
genetic_network_analyzer
-
Chromium, la version FOSS (free an dopen source software) est disponible dans le dépôt Fedroa :
+
<!--
-
  $root dnf list chromium
+
Nécessite Java 1.6, pour sélectionner la version de java :
 +
  $root alternatives --config java
-
Autant utiliser celle-là quand elle suffit :
+
Installé dans /home/guest/bin/GNA_8.4.0
-
$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.
+
Création du lien symbolique :
-
 
+
-
== Mauve/progressiveMauve ==
+
-
 
+
-
Site : http://darlinglab.org/mauve/download.html
+
-
 
+
-
$guest cd ~/Downloads
+
-
wget http://darlinglab.org/mauve/snapshots/2015/2015-02-13/linux-x64/mauve_linux_snapshot_2015-02-13.tar.gz
+
  cd ~/bin
  cd ~/bin
-
  tar tf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz
+
  ln -s GNA_8.4.0/genetic_network_analyzer GNA
-
tar xf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz
+
-
ln -s mauve_snapshot_2015-02-13/Mauve
+
-
== OptFlux ==
+
Le script de lancement a dû être modifié car la mauvaise version de java était utilisée (cf. lignes 383-384 du fichier genetic_network_analyzer)
-
Télécharger la version 3 depuis le site http://www.optflux.org/ ou bien https://sourceforge.net/projects/optflux/files/LatestRelease/
+
Pour le lancer de n'importe où (guest) :  
 +
GNA
 +
-->
-
$guest wget https://sourceforge.net/projects/optflux/files/LatestRelease/OptFlux-3.4.0-linux-x64-installer.run/download -O OptFlux-installer.run
+
=== Snoopy ===
-
  $guest chmod +x OptFlux-installer.run
+
* Snoopy : http://www-dssz.informatik.tu-cottbus.de/DSSZ/Software/Snoopy#downloads
-
./OptFlux-installer.run
+
$guest wget https://www-dssz.informatik.tu-cottbus.de/track/download.php?id=246 -O snoopy-stable-linux.tgz
 +
en cas de problème de certificat
 +
  $guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/snoopy-stable-linux-64-2019-12-20.tgz -O snoopy-stable-linux.tgz
-
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 tar tf snoopy-stable-linux.tgz
-
  $guest cd ~/bin
+
  $guest tar xf snoopy-stable-linux.tgz
-
echo '#!/bin/bash
+
-
D=$(pwd)
+
-
cd ~/bin/OptFlux-3.4.0
+
-
./optflux.sh
+
-
cd $D
+
-
' > optflux
+
-
chmod +x optflux
+
-
Test :
+
Installation pour l'ensemble des utilisateurs dans <tt>/opt</tt>
-
  $guest cd
+
$root mv snoopy2 /opt/
-
  optflux
+
  $guest cd /opt/snoopy2
 +
  $guest ./bin/snoopy
 +
$guest ldd ./bin/snoopy
-
== hapflk ==
+
Problème : il manque des librairies partagées : elles sont dans un sous-répertoire :
 +
$guest ls -lh lib
-
Installation avec pip
+
On teste en ajoutant ce répertoire à la variable LD_LIBRARY_PATH
-
  $guest pip search hapflk
+
  $guest export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/snoopy2/lib
-
  $guest pip install --user hapflk
+
$guest ldd ./bin/snoopy
 +
  $guest ./bin/snoopy
-
== admixture ==
+
Ca fonctionne, on créé un script permettant à tous les utilisateurs du système d'utiliser snoopy :
 +
$root cd /opt/snoopy2
 +
$root echo '#!/bin/bash' > snoopy
 +
$root echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/snoopy2/lib' >> snoopy
 +
$root echo '/opt/snoopy2/bin/snoopy' >> snoopy
 +
$root chmod +x snoopy
 +
$root ln -s /opt/snoopy2/snoopy /usr/bin/snoopy
-
Site : https://www.genetics.ucla.edu/software/admixture/index.html
+
Test/utilisation :
 +
$guest snoopy
-
$guest cd ~/Downloads
+
== Atelier Génétique statistique ==
-
wget https://www.genetics.ucla.edu/software/admixture/binaries/admixture_linux-1.3.0.tar.gz
+
-
tar tf admixture_linux-1.3.0.tar.gz
+
-
cd ~/bin
+
-
tar xf ~/Downloads/admixture_linux-1.3.0.tar.gz
+
-
ln -s admixture_linux-1.3.0/admixture
+
-
Test
+
Création de l'environnement conda
-
cd
+
  $guest mamba create -n genetstat admixture hapflk python=2.7 numpy scipy
-
  admixture
+
-
== Cytoscape ==
+
= ssh =
-
Site : https://cytoscape.org
+
TODO: ajouter un ou deux schémas inspirés de https://wikieducator.org/Ict-innovation/LPI/110.3
-
$guest cd ~/Downloads
+
De base, l'authentification se fait par mot de passe. Ce qui n'est pas le plus sécurisé.
-
wget http://chianti.ucsd.edu/cytoscape-3.6.1/Cytoscape_3_6_1_unix.sh
+
-
sh Cytoscape_3_6_1_unix.sh
+
-
Si le répertoire d'installation choisi est ~/bin/Cytoscape_v3.6.1
+
Une amélioration consiste à utiliser une paire de clés publique/privée.
-
$guest cd ~/bin/Cytoscape_v3.6.1
+
-
  ln -s Cytoscape_v3.6.1/Cytoscape
+
-
Test
+
* Quand on veut se connecter sur une autre machine, on est le '''client''' et l'autre machine le '''serveur'''.
-
cd
+
* Côté client, il faut générer une paire de clés
-
Cytoscape
+
* Côté serveur, il faut copier sa clé publique
 +
* Ensuite, quand on lance la commande ssh, l'échange de clé va se produire, mais côté client il faut s'authentifier pour accéder à la clé.
-
== igraph/R-igraph ==
+
'''Important :''' des deux côtés, il faut que le répertoire <tt>~/.ssh</tt> ait les permissions <tt>drwx------</tt> : <tt>chmod 700 ~/.ssh</tt> ou <tt>chmod u=rwx,og=</tt>
-
Avec dnf
+
== Côté client ==
-
$root dnf install igraph igraph-devel
+
-
R
+
-
install.packages('igraph')
+
-
Apparemment, il manque la librairie glpk
+
Il faut donc commencer par générer une paire de clé. Il existe plusieurs types de clés : RSA, DSA, ECDSA, ... laquelle choisir ? [https://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys Discussion 1] [https://nordlocker.com/blog/rsa-vs-dsa/ 2]
-
$root dnf provides */libglpk.so
+
-
$root dnf list glpk-devel
+
-
$root dnf install glpk-devel
+
-
ll /lib64/libglpk*
+
-
== Autres librairies R ==
+
Nous allons utiliser RSA.
-
$root dnf -y install gsl-devel
+
'''Génération des clés'''
-
$root R
+
-
install.packages(c('Biostrings','BSgenome','BSgenome.Dmelanogaster.UCSC.dm3','BSgenome.Dmelanogaster.UCSC.dm3.masked','knitr','MotifDb','seqLogo','motifStack','IRanges','GenomicRanges','GenomicFeatures','TxDb.Dmelanogaster.UCSC.dm3.ensGene','ShortRead','ggplot2','Rqc','pasillaBamSubset','MMDiffBamSubset','GenomeInfoDb','Rsamtools','GenomicAlignments','AnnotationDbi','org.Dm.eg.db','drosophila2.db','drosophila2probe','drosophila2cdf','hom.Dm.inp.db','GO.db','rtracklayer','AnnotationHub','biomaRt','SRAdb','GEOquery','Gviz') )
+
-
 
+
-
source('https://bioconductor.org/biocLite.R')
+
-
biocLite(c('Biostrings','BSgenome','BSgenome.Dmelanogaster.UCSC.dm3','BSgenome.Dmelanogaster.UCSC.dm3.masked','knitr','MotifDb','seqLogo','motifStack','IRanges','GenomicRanges','GenomicFeatures','TxDb.Dmelanogaster.UCSC.dm3.ensGene','ShortRead','ggplot2','Rqc','pasillaBamSubset','MMDiffBamSubset','GenomeInfoDb','Rsamtools','GenomicAlignments','AnnotationDbi','org.Dm.eg.db','drosophila2.db','drosophila2probe','drosophila2cdf','hom.Dm.inp.db','GO.db','rtracklayer','AnnotationHub','biomaRt','SRAdb','GEOquery','Gviz') )
+
-
 
+
-
 
+
-
'''Remarque :''' Il peut-être pertinent de ne pas effectuer les mises à jours de R après l'installation de toutes les librairies. En effet, une nouvelle version de R peut entraîner la nécessité de réinstaller les librairies pour qu'elles soient en adéquation avec la nouvelle version de R, ce qui peut retarder le démarrage d'un atelier.
+
-
 
+
-
Test
+
<pre>
<pre>
-
library(Biostrings)
+
$guest ssh-keygen -t rsa
-
library(BSgenome)
+
Generating public/private rsa key pair.
-
library(BSgenome.Dmelanogaster.UCSC.dm3)
+
Enter file in which to save the key (/home/urlogin/.ssh/id_rsa):
-
library(BSgenome.Dmelanogaster.UCSC.dm3.masked)
+
Enter passphrase (empty for no passphrase):
-
library(knitr)
+
Enter same passphrase again:
-
library(MotifDb,verbose=F)
+
Your identification has been saved in /home/urlogin/.ssh/id_rsa.
-
library(seqLogo)
+
Your public key has been saved in /home/urlogin/.ssh/id_rsa.pub.
-
library(motifStack)
+
The key fingerprint is:
-
library(IRanges)
+
SHA256:XXX...---...XXX urlogin@urhost.tdn
-
library(GenomicRanges)
+
The key's randomart image is:
-
library(GenomicFeatures)
+
+---[RSA 2048]----+
-
library(TxDb.Dmelanogaster.UCSC.dm3.ensGene)
+
....
-
library(ShortRead)
+
+----[SHA256]-----+
-
library(ggplot2)
+
$ ls -lh
-
library(Rqc)
+
total 8.0K
-
library(pasillaBamSubset)
+
-rw------- 1 urlogin urgroup 1.8K Aug 24 08:41 id_rsa
-
library(MMDiffBamSubset)
+
-rw-r--r-- 1 urlogin urgroup  412 Aug 24 08:41 id_rsa.pub
-
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)
+
</pre>
</pre>
-
== Autre environnement linux ==
+
== Côté serveur ==
-
Pour installer et utiliser un autre environnement linux que cinnamon, on peut regarder ceux disponibles :
+
Il faut copier la clé la clé publique :
-
  dnf grouplist -v hidden | grep desktop
+
  $guest scp client:.ssh/id_rsa.pub ~/.ssh/urlogin.at.client.id_rsa.pub
 +
Puis l'ajouter aux clés autorisées :
 +
$guest cd ~/.ssh
 +
cat urlogin.at.client.id_rsa.pub >> authorized_keys
-
GNOME3
+
'''Important :''' il faut que le fichier <tt>authorized_keys</tt> ait les permissions <tt>-rw-------</tt> : <tt>chmod 600</tt> ou <tt>chmod u=rw,go=</tt>
-
$root dnf groupinstall gnome-desktop
+
-
KDE Plasma
+
Et bien sûr, il faut que le service sshd soit démarré :
-
  $root dnf install @kde
+
  $root systemctl status sshd # état du service
 +
$root systemctl start sshd  # démarrage
-
De manière plus générale, on peut les installer de différentes manières.
+
Et aussi que le port du firewall soit ouvert :
 +
$root firewall-cmd --list-services # liste des services "ouverts"
 +
$root firewall-cmd --add-service=ssh # ouverture (temporaire) du port
-
Avec le nom affiché :
+
== Utilisation, par exemple sur gitlab ==
-
$root dnf groupinstall "KDE Plasma Workspaces"
+
-
Avec le diminutif entre parenthèses
+
Une fois que l'on dispose d'une paire de clés, il est possible de l'utiliser par exemple sur gitlab afin d'effectuer les opérations <tt>git</tt> sans à avoir à fournir le mot de passe gitlab mais seulement localement pour accéder à la clé privée. Dans ce cas, il faut aller sur l'interface de son compte gitlab et dans la configuration ajouter sa clé '''publique''' (SURTOUT NE PAS DIVULGUER SA CLE PRIVEE).
-
$root dnf install @mate-desktop-environment
+
-
 
+
-
Pour changer d'environnement, il faudra bien sûr quitter sa session (et éventuellement redémarrer).
+
= Imprimante/Scanner =
= Imprimante/Scanner =
Line 1,471: Line 1,705:
** Connections: AppSocket/HP JetDirect
** Connections: AppSocket/HP JetDirect
* Driver: HP (recommended)
* Driver: HP (recommended)
-
** HP DeskJet 400 - CUPS+Gutenprint v5.2.14 Simplified ...
+
** HP LaserJet 400 MFP M425 (recommended) → Drivers HP LaserJet MFP M425 Postscript [en] (recommended)
'''Ne pas imprimer la page de test''' sinon on va avoir 18 fois la même chose.
'''Ne pas imprimer la page de test''' sinon on va avoir 18 fois la même chose.
Line 1,482: Line 1,716:
 +
<!--
==Scanner==
==Scanner==
* Numériser
* Numériser
Line 1,559: Line 1,794:
= Sauvegardes et restaurations =
= Sauvegardes et restaurations =
-
== dd ==
+
== Table de partitions, secteur de démarrage, partition ==
-
Pour des tables de partition de type dos :
+
 
 +
=== dd : copie binaire du MBR ou d'une partition ===
 +
 
 +
Pour des tables de partitions de type dos :
* sauvegarde du Master Boot Record (MBR = secteur de démarrage)
* sauvegarde du Master Boot Record (MBR = secteur de démarrage)
  dd if=/dev/sda of=mbr.dd bs=512 count=1
  dd if=/dev/sda of=mbr.dd bs=512 count=1
-
* copie physique d'une partition
+
* copie physique de la totalité d'une partition (même de ce qui est vide)
  dd if=/dev/sda1 of=sda1.dd
  dd if=/dev/sda1 of=sda1.dd
 +
 +
=== sfdisk : table de partitions de type dos/MBR ===
Il y a aussi l'utilitaire dédié sfdisk mais il ne gère pas les tables de partition de type gpt :
Il y a aussi l'utilitaire dédié sfdisk mais il ne gère pas les tables de partition de type gpt :
Line 1,572: Line 1,812:
  sfdisk --dump /dev/sda > sda.partitions
  sfdisk --dump /dev/sda > sda.partitions
-
restore (attention, peut rendre le disque inutilisable si mauvais fichier/device ou mauvaise manipulation):
+
restore (attention, peut rendre le disque inutilisable si mauvais fichier/device ou mauvaise manipulation) ; remplacer sdX par la bonne lettre:
-
  sfdisk /dev/sda < sda.partitions
+
  sfdisk /dev/sdX < sda.partitions
 +
 
 +
=== sgdisk : table de partitions de type GPT ===
Pour les tables de type gpt :
Pour les tables de type gpt :
Line 1,580: Line 1,822:
  sgdisk -b sda.partitions /dev/sda
  sgdisk -b sda.partitions /dev/sda
-
restore (attention, peut rendre le disque inutilisable si mauvais fichier/device ou mauvaise manipulation):
+
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/sda
+
  sgdisk -l sda.partitions /dev/sdX
 +
 
 +
== tar : arborescence de répertoires ==
-
== tar ==
+
tar pour "tape archive", utilisé historiquement pour l'archivage sur bandes magnétiques : permet de sauvegarder un ou plusieurs fichiers (avec la structures en répertoires, les permissions, etc.) en un seule fichier <tt>.tar</tt>.
-
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.
+
avec l'option ''p'' pour préserver les permission (rwx), et on exclut certains répertoires (ex: home) pour ne garder que le système (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
* On créé un répertoire pour l'archive
Line 1,608: Line 1,851:
  tar cpjf home.sda4.tar.bz2 /home
  tar cpjf home.sda4.tar.bz2 /home
-
== rsync ==
+
== rsync : faire des sauvegardes régulières (de ses données ou systèmes) ==
-
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 permet de "synchroniser" un fichier ou une sous-arborescence de répertoires, 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, par exemple de son "home" :
  rsync --dry-run \
  rsync --dry-run \
       --archive --hard-links --delete --acls --xattrs --one-file-system \
       --archive --hard-links --delete --acls --xattrs --one-file-system \
       --itemize-changes --stats -h \
       --itemize-changes --stats -h \
-
       --exclude='*/.thumbnails' --exclude='*/Cache' --exclude='*/.cache' --exclude='*/.gvfs'
+
       --exclude backup_home_$USER \
-
       /home/ /mnt/home_backup/
+
       $HOME/ $HOME/backup_home_$USER/
-
= NFS (Network File System) =
+
 
 +
Il est enfin possible d'automatiser la sauvegarde (tous les jours, mois, semaines, ...) avec l'utilitaire <tt>cron</tt>. cf; :
 +
crontab -l
 +
crontab -e
 +
 
 +
 
 +
'''Remarque :''' il existe une interface graphique → grsync
 +
 
 +
 
 +
Commandes supplémentaires à l'Atelier système pour cloner ou sauvegarder/restaurer l'état d'un système  : [[clone system]]
 +
 
 +
= Montage réseau =
 +
 
 +
== NFS (Network File System) ==
'''Côté serveur''', on "exporte" un répertoire (et sa sous-arborescence).
'''Côté serveur''', on "exporte" un répertoire (et sa sous-arborescence).
Line 1,625: Line 1,882:
  dnf list nfs-utils nfs-utils-lib
  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
+
Le répertoire partagé pour cet exemple est un répertoire sur l'ordi de l'intervenant/pc2 : pc2:/home/share
Fichier de configuration : <tt>/etc/exports</tt> sur intervenant
Fichier de configuration : <tt>/etc/exports</tt> sur intervenant
  /home/share  195.220.42.0/255.255.255.0(rw,no_root_squash)
  /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.).
+
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
Démarrage (manuel) du service
-
  $root systemctl start nfs
+
  $root systemctl start nfs-server
Au démarrage du système
Au démarrage du système
-
  $root systemctl enable nfs
+
  $root systemctl enable nfs-server
 +
 
 +
 
 +
'''Remarque :''' il faut s'assurer que le firewall autorise la connexion sur les ports nfs (<tt>firewall-cmd --list-services</tt> ou <tt>firewall-cmd --list-ports</tt>).
 +
 
Line 1,643: Line 1,904:
Création du répertoire où est monté l'export nfs pour cet exemple.
Création du répertoire où est monté l'export nfs pour cet exemple.
-
  $root mkdir /mnt/scan
+
  $root mkdir /mnt/share
Montage de l'export nfs avec la commande mount
Montage de l'export nfs avec la commande mount
-
  $root mount intervenant:/home/share /mnt/scan
+
  $root mount pc2:/home/share /mnt/share
-
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 de succès, le contenu de /mnt/share correspond à ce qu'il y a sur pc2. S'il y a des fichiers et/ou répertoires dans /mnt/share 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
En cas d'échec, on peut désactiver le pare-feu
Line 1,654: Line 1,915:
Pour débugger (option <tt>-v</tt>)
Pour débugger (option <tt>-v</tt>)
-
  $root mount -v intervenant:/home/share /mnt/scan
+
  $root mount -v pc2:/home/share /mnt/share
Pour démonter le répertoire :
Pour démonter le répertoire :
-
  $root umount /mnt/scan
+
  $root umount /mnt/share
Pour consulter les montages actifs :
Pour consulter les montages actifs :
  mount
  mount
 +
findmnt
 +
 +
'''Pour aller plus loin :''' le montage de répertoire peut se faire ''à la volée'', c'est-à-dire lorsque l'on tente d'accéder au répertoire distant. L'utilitaire s'appelle <tt>autofs</tt> et permet de monter un répertoire local ou distant seulement lorsque l'on en a besoin.
 +
 +
<!--
Pour simplifier l'opération de montage/démontage, on  peut l'ajouter au fichier '''<tt>/etc/fstab</tt>'''.
Pour simplifier l'opération de montage/démontage, on  peut l'ajouter au fichier '''<tt>/etc/fstab</tt>'''.
-
'''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).
+
'''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 liveUSB par exemple).
Edition de /etc/fstab et ajout de la ligne :
Edition de /etc/fstab et ajout de la ligne :
-
  intervenant:/home/share  /mnt/scan   noauto,rw,intr,nfsver=3    0  0
+
  pc2:/home/share  /mnt/share   noauto,rw,intr,nfsver=3    0  0
 +
 
 +
'''Important :''' le <tt>noauto</tt> est important car il indique que le montage ne se fait pas au démarrage du système. En effet, le démarrage du système risque de se bloquer si la machine pc2 n'est pas allumée ou s'il y a un problème réseau pour y accéder.
A tester avant de redémarrer avec :
A tester avant de redémarrer avec :
-
  $root umount /mnt/scan # s'il était monté
+
  $root umount /mnt/share # s'il était monté
  $root mount -a
  $root mount -a
-
  $root mount | grep scan
+
  $root mount | grep share
-
Si scan apparaît ou qu'on obtient une erreur avec <tt>mount -a</tt> il y a un problème à régler.
+
Si share apparaît ou qu'on obtient une erreur avec <tt>mount -a</tt> il y a un problème à régler.
Options :
Options :
-
* <tt>noauto</tt> : 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.
+
* <tt>noauto</tt> : ne demande pas le montage au démarrage. C'est préférable car si pc2 n'est pas allumée, le démarrage de votre ordi pourrait ne pas marcher.
* <tt>rw</tt> : droits en lecture et en écriture
* <tt>rw</tt> : droits en lecture et en écriture
* <tt>intr</tt> : permet au requête NFS d'être interrompue si on perd le serveur ou qu'il ne peut être contacter
* <tt>intr</tt> : permet au requête NFS d'être interrompue si on perd le serveur ou qu'il ne peut être contacter
Line 1,744: Line 2,012:
  ll /p0/138
  ll /p0/138
-->
-->
 +
 +
== sshfs ==
 +
 +
Installation
 +
$root dnf install sshfs
 +
 +
= encfs =
 +
 +
https://gitlab.com/rbarriot/guides/-/tree/master/encfs
 +
 +
= gestion des processus =
 +
 +
Etat d'un processus : running, stopped, dead, ...
 +
* commande & nohup disown
 +
* Ctrl-C  Ctrl-Z
 +
* ps jobs fg bg
 +
* signaux : kill
 +
 +
nohup glxgears &
 +
disown -h PID
 +
 +
= Monitoring =
 +
 +
Matériel
 +
$root inxi -Fxmt
 +
$root lshw
 +
 +
# memory
 +
$root lshw -short -C memory
 +
$root dmidecode --type 17
 +
cat /proc/meminfo
 +
 +
# usb
 +
lsusb -t
 +
 +
Utilisation du volume de stockage
 +
$root baobab /home/
 +
 +
Commandes et utilitaires pour les processus :
 +
top
 +
htop
 +
glances
 +
 +
Entrées/Sorties
 +
iotop
 +
atop
 +
iostat -xd 1
 +
iostat -p /dev/sda1 -xd 1
 +
 +
Réseau
 +
netstat
 +
iftop
 +
nethogs
 +
nmcli dev wifi
 +
iwlist scan
 +
iperf3 -s -p 8080
 +
 +
= Utilisation de containers : docker, podman, ... =
 +
 +
Page dédiée → [[docker]]
 +
 +
= Environnement linux : divers=
 +
 +
== Deskptop Environment ==
 +
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).
 +
 +
== Shell ==
 +
 +
Pour paramétrer plus spécifiquement le shell (bash) à l'échelle du système, le mieux est d'ajouter ou modifier le fichier <tt>/etc/profile.d/custom.sh</tt> qui sera pris en compte par tous les utilisateurs. Exemple :
 +
<source lang='bash'>
 +
# ALIASES
 +
alias lsblk='lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL,STATE,TYPE'
 +
alias l='ls -lhX --group-directories-first'
 +
alias ssh='ssh -o ServerAliveInterval=100 -Y'
 +
alias cp='cp --preserve=xattr'
 +
 +
function lwhich {
 +
  ls -lh $(which $1)
 +
}
 +
 +
# PATH
 +
export PATH=$PATH:~/bin
 +
 +
# PROMPT
 +
if [ "$EUID" == "0" ];
 +
then
 +
  export PSUSERCOL=1
 +
else
 +
  export PSUSERCOL=2
 +
fi
 +
export PS1="$(tput -Txterm-256color bold ; tput -Txterm-256color setaf $PSUSERCOL)### $(tput -Txterm-256color setaf 7)\d \A  $(tput -Txterm-256color setaf $PSUSERCOL)\u $(tput -Txterm-256color setaf 3)\H $(tput -Txterm-256color setaf 2)\w $(tput -Txterm-256color sgr0)\n\$ "
 +
</source>
 +
 +
=== Autres fonctions utiles ===
 +
 +
Pour visualiser des fichiers tsv ou csv avec les colonnes alignées.
 +
 +
Un script à placer dans <tt>~/bin/csvview</tt> :
 +
<source lang='bash'>
 +
#!/bin/bash
 +
 +
set -o errexit
 +
 +
function show_usage {
 +
  cat <<EOF
 +
Usage: $0 [--help] [filename]
 +
View a CSV file at the command line.
 +
  --help        Show this help text.
 +
  filename      CSV file to be viewed
 +
EOF
 +
  exit -1
 +
}
 +
 +
if [ "$1" == "--help" -o "$1" == "" ]; then
 +
  show_usage
 +
fi
 +
 +
column -ts $',' < "$1" | less -#.3 -N -S
 +
</source>
 +
 +
A essayer sur [[File:moodle.eval.annee.M1.csv]]
 +
 +
Et un autre pour les fichiers tabulés <tt>~/bin/tsvview</tt>
 +
<source lang='bash'>
 +
#!/bin/bash
 +
 +
set -o errexit
 +
 +
function show_usage {
 +
  cat <<EOF
 +
Usage: $0 [--help] [filename]
 +
View a TSV file at the command line.
 +
  --help        Show this help text.
 +
  filename      tabulated file to be viewed
 +
EOF
 +
  exit -1
 +
}
 +
 +
if [ "$1" == "--help" -o "$1" == "" ]; then
 +
  show_usage
 +
fi
 +
 +
column -ts $'\t' < "$1" | less -#.3 -N -S
 +
</source>
 +
 +
= Pour le M1 =
 +
 +
Passer à la section suivante : Imprimante
 +
 +
'''Utiliser le compte ''guest'' qui sera utilisé par les M1.'''
 +
su guest
 +
 +
Il sera sûrement nécessaire d'ajouter les ''channels''
 +
conda config --add channels conda-forge
 +
conda config --add channels bioconda
 +
 +
Comme pour votre compte, installer '''mamba''' :
 +
$guest curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
 +
$guest sh Mambaforge-Linux-x86_64.sh
 +
 +
== Algorithmique et complexité ==
 +
 +
<!--
 +
Algobox https://www.xm1math.net/algobox/
 +
 +
Installation
 +
$root dnf install algobox
 +
 +
<!--
 +
== Génétique quantitative ==
 +
 +
hapflk → environnement conda spécifique
 +
 +
python 2.7 numpi scipy
 +
 +
admixture https://www.genetics.ucla.edu/software/admixture/index.html
 +
 +
-->
 +
 +
== Fouille de données ==
 +
 +
Création d'un environnement conda avec le nécessaire
 +
$guest mamba deactivate
 +
$guest mamba create --name fouille r-tidyverse r-rmysql bioconductor-made4 r-ade4 r-ggally r-mass r-rcolorbrewer r-gridextra r-kableextra r-plotly  scipy mycli numpy pandas scikit-learn
 +
 +
== Programmation avancée et génie logiciel ==
 +
 +
from https://www.linuxcapable.com/how-to-install-eclipse-ide-on-fedora-36-35/
 +
 +
Activer les dépôts
 +
$root dnf copr enable dusansimic/eclipse
 +
 +
''via'' dnf :
 +
$root dnf install eclipse
 +
 +
== PTUT ==
 +
 +
Docker ne fonctionne pas bien avec la dernière version de Fedora. Un substitut avec les mêmes options et paramètres en ligne de commande est podman.
 +
 +
Installation
 +
$root mamba install podman
 +
 +
Test
 +
$guest podman run hello-world
 +
 +
<!--
 +
 +
'''docker''' cf. https://docs.docker.com/engine/install/fedora/
 +
 +
Ajout du dépôt :
 +
$root dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
 +
 +
Installation de docker
 +
$root dnf install docker-ce docker-ce-cli containerd.io
 +
 +
Accepter l'installation si la clé est <tt>060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35</tt>
 +
 +
Activer la compatibilité avec les version antérieures :
 +
$root grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
 +
 +
'''Redémarrez''' et testez l'installation :
 +
$root systemctl start docker
 +
$root docker run hello-world
 +
-->
 +
 +
== Traitement de données post-génomiques ==
 +
 +
=== RNA-Seq et Assemblage ===
 +
Création d'un environnement conda dédié :
 +
$guest mamba deactivate
 +
$guest mamba create --name RNASeq+Assemblage fastqc cutadapt bwa igv macs2 samtools htslib abyss bcftools tabix boost snpeff 
 +
$guest activate tdp
 +
$guest mamba install bioconductor-coseq r-tidyverse r-factominer r-factoextra r-lattice bioconductor-chipseq bioconductor-genomicranges bioconductor-limma bioconductor-deseq2 bioconductor-htsfilter bioconductor-edger bioconductor-topgo r-mixomics r-gplots bioconductor-a4base
 +
 +
 +
 +
Test des librairies R :
 +
$guest mamba deactivate
 +
$guest mamba activate tdp
 +
$guest R
 +
<source lang='rsplus'>
 +
BiocManager::install(c('GenomeInfoDb', 'org.At.tair.db'))
 +
library(a4Base)
 +
library(DESeq2)
 +
library(tidyverse)
 +
library(edgeR)
 +
library(gplots)
 +
library(HTSFilter)
 +
library(limma)
 +
library(org.At.tair.db)
 +
library(topGO)
 +
library(FactoMineR)
 +
library(factoextra)
 +
library(coseq)
 +
library(mixOmics)
 +
</source>
 +
 +
[[File:conda.env.tdp.list.txt]] à utiliser un environnement mamba :
 +
mamba create --name tdp2 --file conda.env.tdp.list.txt
 +
 +
=== sRNA-Seq ===
 +
 +
Création d'un environnement conda dédié :
 +
$guest mamba deactivate
 +
$guest mamba create --name srnaseq igv viennarna infernal trnascan-se sra-tools cutadapt fastqc bowtie samtools subread bedtools mirdeep2 r-biocmanager bioconductor-deseq2 bioconductor-rtracklayer bioconductor-chippeakanno r-pheatmap
 +
 +
 +
<!--
 +
conda install r-lattice bioconductor-chipseq bioconductor-genomicranges  r-dplyr r-tidyr bioconductor-limma bioconductor-deseq2 bioconductor-htsfilter bioconductor-edger bioconductor-topgo r-mixomics r-gplots bioconductor-a4base bioconductor-org.at.tair.db
 +
 +
$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
 +
 +
# - abyss 2.0.2
 +
# - samtools 1.3.1
 +
# - bcftools 1.3.1
 +
# - htslib 1.3.1
 +
# - tabix 1.3.1
 +
# - bwa 0.7.12 (0.7.15 ok)
 +
# - IGV (Integrative Genomics Viewer)
 +
# - boost 1.57
 +
# - fastqc 0.11.4 (0.11.5 ok)
 +
# - snpEff 3.6
 +
# - vcfutils.pl
 +
 +
library(HTSFilter)
 +
library(DESeq2)
 +
library(edgeR)
 +
library(limma)
 +
library(topGO)
 +
library(mixOmics)
 +
library(gplots)
 +
 +
# Chargment libraries non obligatoires
 +
library(cluster)
 +
library(a4Base)
 +
library(dplyr)
 +
library(tidyr)
 +
library(org.At.tair.db)
 +
 +
-->
 +
 +
== Evolution Moléculaire ==
 +
=== rstudio ===
 +
Création d'un environnement conda dédié :
 +
 +
$guest mamba create -n evomol r-base r-ape r-base64enc r-digest r-evaluate r-glue r-highr r-htmltools r-jsonlite r-knitr r-magrittr r-markdown r-mime r-rmarkdown r-rprojroot r-stringi r-stringr r-tinytex r-xfun r-yaml
 +
$guest mamba activate evomol
 +
$guest mamba info --envs
 +
 +
$guest rstudio
 +
 +
=== seaview ===
 +
Un lien ici :
 +
http://silico.biotoul.fr/p/M2BBS_-_Atelier_Syst%C3%A8me#seaview
= fonts/police de caractères =
= fonts/police de caractères =
Line 1,754: Line 2,354:
== fonts Microsoft ==
== 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
 +
 +
<!--
Récupérer les fonts sur http://corefonts.sourceforge.net
Récupérer les fonts sur http://corefonts.sourceforge.net
   wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
   wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
Line 1,765: Line 2,374:
vérifier où elles ont été créées et  
vérifier où elles ont été créées et  
   $root dnf install /root/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
   $root dnf install /root/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
-
+
-->
== fonts pour la programmation ==
== fonts pour la programmation ==
Line 1,776: Line 2,385:
   mkdir ~/.local/share/fonts  
   mkdir ~/.local/share/fonts  
-
   unzip  ~/Downloads/FiraCode_1.204.zip  ttf/*
+
   unzip  ~/Downloads/FiraCode_VERSION.zip  ttf/*
   mv ttf/* ~/.local/share/fonts
   mv ttf/* ~/.local/share/fonts
   rmdir ttf
   rmdir ttf
Line 1,783: Line 2,392:
= A ajouter/à faire =
= A ajouter/à faire =
-
* différencier les commandes root/user
+
* slurm
 +
* docker/podman
 +
* gitlab
 +
* sshfs
 +
* encfs
 +
* gpg
 +
* tmate
 +
* sudoers + passwdless ssh pc2 → pcX
* photo du groupe pour le site
* photo du groupe pour le site
 +
* sondage M1
 +
 +
= TODO 2022-23 =
 +
 +
* gestion réseau nouvelle salle
 +
 +
* conda, mamba
 +
* docker, podman
 +
* ansible
 +
* slurm
 +
* nettoyer/archiver ce qui est trop vieux
= Liens et autres =
= Liens et autres =
Line 1,792: Line 2,419:
* explication du swap https://www.redhat.com/en/about/blog/do-we-really-need-swap-modern-systems
* 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
* 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
* <tt>nohup</tt> et <tt>disown -h PID</tt>
* <tt>nohup</tt> et <tt>disown -h PID</tt>
Line 1,897: Line 2,525:
</source>
</source>
 +
 +
 +
 +
 +
<!-- archive softs spécifiques avant 2020 -->
 +
 +
= Archives =
 +
== 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
 +
 +
 +
<!-- plus vrai le 2019-10-21
 +
== MACS2 ==
 +
 +
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 macs2
 +
$guest conda activate macs2
 +
 +
Maintenant 2020-08
 +
$guest conda install macs2
 +
 +
 +
<!--
 +
'''Remarque :''' Lors de l'atelier ChIPseq, vous devriez être amené·e à l'utiliser. Il faudra donc se souvenir qu'il faut passer dans l'environnement macs2 (python 2.7 au lieu du python 3.7 de <tt>devenv</tt>) :
 +
$guest conda activate macs2
 +
$guest macs2
 +
$guest python --version
 +
-->
 +
 +
 +
<!--
 +
'''Prérequis:'''<br/>
 +
A lire dans https://github.com/taoliu/MACS puis le ISNTALL. Il faut apparemment Python 2.7, Numpy (>=1.6) gcc, Cython (>=0.18).
 +
 +
pip -V
 +
 +
pip2.7 list
 +
 +
Pour Cython, il faut aller sur http://cython.org qui nous indique de l'installer avec PyPI -- http://pypi.python.org/pypi/Cython/ -- et donc avec la commande pip :
 +
$root pip2.7 install Cython --install-option="--no-cython-compile"
 +
 +
'''Installation :'''<br/>
 +
Et encore d'après le README, on utilise ensuite pip pour installer  MACS2, mais avant cela il manque encore une librarie (python-devel) :
 +
$root dnf install python-devel
 +
$guest pip2.7 install --user 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
 +
 +
<!--
 +
== Java ==
 +
 +
Téléchargement de Java 1.6 d'Oracle depuis http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html mais cela nécessite de s'enregistrer.
 +
 +
Il faut installer le paquet une fois téléchargé pour l'installation
 +
$root dnf install jdk-6u24-linux-amd64.rpm
 +
 +
Cela installe Java dans <tt>/usr/java</tt>
 +
 +
Ensuite, il faut configurer le système pour choisir la nouvelle version d'installée avec la commande <tt>alternatives</tt>.
 +
which java                # on obtient /usr/bin/java
 +
ll /usr/bin/java          # on obtient quelque chose comme lrwxrwxrwx 1 root root 22 10 juil.  2015 /usr/bin/java -> /etc/alternatives/java
 +
ll /etc/alternatives/java  # donne quelque chose comme lrwxrwxrwx 1 root root 30 10 juil.  2015 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.fc23.x86_64/jre/bin/java
 +
 +
Pour sélectionner entre différentes version
 +
$root alternatives --config java
 +
 +
On obtient quelque chose comme
 +
  Selection    Command
 +
-----------------------------------------------
 +
*+ 1          java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-5.b01.fc25.x86_64/jre/bin/java)
 +
 +
Enter to keep the current selection[+], or type selection number:
 +
 +
Pour ajouter une alternative (la version que l'on vient d'installer) :
 +
alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_24/bin/java 16024
 +
 +
Puis
 +
alternatives --config java
 +
 +
nous propose
 +
  Selection    Command
 +
-----------------------------------------------
 +
*+ 1          java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-5.b01.fc25.x86_64/jre/bin/java)
 +
    2          /usr/java/jdk1.6.0_24/bin/java
 +
 +
Enter to keep the current selection[+], or type selection number: '''2'''
 +
 +
Ensuite faire pareil pour le compilateur java (javac)
 +
alternatives --install /usr/bin/'''javac''' '''javac''' /usr/java/jdk1.6.0_24/bin/'''javac''' 16024
 +
alternatives --config '''javac'''
 +
 +
Pour la commande alternatives, voir le manuel <tt>man alternatives</tt>. pour <tt>--install</tt> l'ordre des paramètres est :
 +
alternatives --install  link  name  path  priority
 +
 +
* <tt>link</tt> est la commande à installer (obtenue avec de <tt>which java</tt>)
 +
* <tt>name</tt> est le nom de l'alternative utilisée dans <tt>alternatives --config</tt> par exemple
 +
* <tt>path</tt> est le chemin de l'exécutable (que l'on vient d'installer)
 +
* <tt>priority</tt> est utilisée lors des mises à jour ou d'installations de logiciels qui remplace la commande. Par défaut, la priorité la plus forte est utilisée. Ainsi, si on installe jdk7u32 (1.7.0.32), la priorité devrait être plus importante (17032).
 +
-->
 +
 +
== 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
 +
 +
<!--
 +
== snpEff ==
 +
 +
wget http://downloads.sourceforge.net/project/snpeff/snpEff_latest_core.zip
 +
unzip -l snpEff_latest_core.zip
 +
unzip snpEff_latest_core.zip
 +
cd snpEff/
 +
 +
Là, il faut java >= 1.7
 +
 +
$root alternatives --config java
 +
$guest java -jar snpEff.jar
 +
-->
 +
 +
<!-- → conda 2019/09
 +
== Python modules ==
 +
python 3 + libs : theano, matplotlib, keras
 +
$root dnf install python3-theano python3-matplotlib
 +
$guest pip3 install --user keras
 +
 +
pip2.7 install --user keras
 +
pip2.7 install --user scikit-learn
 +
pip2.7 install --user scipy
 +
pip2.7 install --user cycli
 +
 +
-->
 +
 +
Arrêt ici 2ème jour (9h30 - 18h00) 07 sep 2016
 +
 +
 +
<!-- David Bouyssié 2015
 +
== Scala IDE ==
 +
 +
 +
* Scala IDE : http://scala-ide.org/download/sdk.html
 +
 +
Téléchargement et extraction du .tar.gz puis lancement sans problème de eclipse. L'ensemble a été déplacé dans /home/guest/bin/eclipse-4.4.1
 +
 +
lancement depuis n'importe où pour l'utilisateur guest :
 +
eclipse
 +
-->
 +
 +
== 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
 +
 +
<!--
 +
 +
VirtualBox 5.2.18 pour Fedora 26-27-28
 +
$guest wget https://download.virtualbox.org/virtualbox/5.2.18/VirtualBox-5.2-5.2.18_124319_fedora26-1.x86_64.rpm
 +
$root dnf install VirtualBox-5.2-5.2.18_124319_fedora26-1.x86_64.rpm
 +
$guest VirtualBox
 +
 +
En le lançant en ligne de commande, il y a un message indiquant qu'il manque des paquets :
 +
$root dnf install kernel-* elfutils-libelf-devel
 +
 +
Et ensuite, il faut reconfigurer VirtualBox
 +
$root /sbin/vboxconfig
 +
-->
 +
 +
<!--
 +
avec dnf since 2020
 +
 +
== pymol ==
 +
 +
Site https://www.pymol.org/
 +
 +
$root dnf install pymol
 +
 +
 +
<!--
 +
Click on '''Download'''
 +
 +
Click in section '''Students and Instructors''' on http://pymol.org/educational/ then you will be brought to a regitration form.
 +
 +
* pymol (Pb de compilation)
 +
yum install freeglut.x86_64 freeglut-devel.x86_64 python-pmw python-devel.x86_64 glew.x86_64 glew-devel.x86_64
 +
-->
 +
 +
== VMD ==
 +
 +
cd vmd-1.9.3
 +
less README
 +
$root ./configure
 +
$root cd src
 +
$root make install
 +
$guest vmd
 +
 +
<!--
 +
Problem: download needs login, thus registration almost probably a licence
 +
 +
Site http://www.ks.uiuc.edu/Research/vmd/
 +
 +
Download page http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=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
 +
 +
<!--
 +
== Webmin ==
 +
* Webmin (interface web pour l'administration du système)
 +
 +
Installer le paquet puis aller sur https://localhost:10000
 +
-->
 +
 +
== 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.
 +
 +
== 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 <tt>~/bin/OptFlux-3.4.0</tt>, 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.
 +
 +
<!--
 +
Installation avec pip
 +
$guest pip search hapflk
 +
$guest pip install --user hapflk
 +
-->
 +
 +
== 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
 +
 +
== 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
 +
 +
<!--
 +
$root dnf -y install gsl-devel
 +
$root R
 +
install.packages(c('Biostrings','BSgenome','BSgenome.Dmelanogaster.UCSC.dm3','BSgenome.Dmelanogaster.UCSC.dm3.masked','knitr','MotifDb','seqLogo','motifStack','IRanges','GenomicRanges','GenomicFeatures','TxDb.Dmelanogaster.UCSC.dm3.ensGene','ShortRead','ggplot2','Rqc','pasillaBamSubset','MMDiffBamSubset','GenomeInfoDb','Rsamtools','GenomicAlignments','AnnotationDbi','org.Dm.eg.db','drosophila2.db','drosophila2probe','drosophila2cdf','hom.Dm.inp.db','GO.db','rtracklayer','AnnotationHub','biomaRt','SRAdb','GEOquery','Gviz') )
 +
 +
source('https://bioconductor.org/biocLite.R')
 +
biocLite(c('Biostrings','BSgenome','BSgenome.Dmelanogaster.UCSC.dm3','BSgenome.Dmelanogaster.UCSC.dm3.masked','knitr','MotifDb','seqLogo','motifStack','IRanges','GenomicRanges','GenomicFeatures','TxDb.Dmelanogaster.UCSC.dm3.ensGene','ShortRead','ggplot2','Rqc','pasillaBamSubset','MMDiffBamSubset','GenomeInfoDb','Rsamtools','GenomicAlignments','AnnotationDbi','org.Dm.eg.db','drosophila2.db','drosophila2probe','drosophila2cdf','hom.Dm.inp.db','GO.db','rtracklayer','AnnotationHub','biomaRt','SRAdb','GEOquery','Gviz') )
 +
 +
 +
'''Remarque :''' Il peut-être pertinent de ne pas effectuer les mises à jours de R après l'installation de toutes les librairies. En effet, une nouvelle version de R peut entraîner la nécessité de réinstaller les librairies pour qu'elles soient en adéquation avec la nouvelle version de R, ce qui peut retarder le démarrage d'un atelier.
 +
-->
 +
 +
Test
 +
<pre>
 +
$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)
 +
</pre>

Current revision as of 12:59, 7 July 2023

Contents

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
  • Exemple d'utilisation de containers du type docker


Distributions linux populaires :

  • Fedora http://fedoraproject.org/ et Red Hat Entreprise Linux (RHEL) dont le support est payant. Le source était repris par la communauté et mis à disposition gratuitement → CentOS. La stabilité et la fiabilité de cette distribution l'ont rendue très populaire dans les laboratoires de recherche.
  • Debian https://www.debian.org/ très stable et à l'origine de beaucoup d'autres distributions comme Ubuntu http://www.ubuntu.com/

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.


Liens :

Démarrage du liveCD/DVD/USB

Création d'un LiveCD/DVD/USB
Pour l'année 2023-24, il s'agit de Fedora core 37 64bits (https://dl.fedoraproject.org/pub/fedora/linux/releases/37/). La dernière est la 38 mais avec la version la plus récente, il y a parfois certains logiciels qui ne s'installent pas (car pas encore mis à jour par exemple). Pour créer un tel média, il faut télécharger son image : un fichier .iso correspondant à l'image d'un disque (historiquement un CD) ou d'une partition au format iso9660 contenant tout le système de fichiers. Pour restaurer cette image sur un disque USB, il faut utiliser un logiciel qui permet de graver/restaurer une image (burn ISO ou restore disk image) tel que gnome-disks sous GNOME. Sur windows ou mac, il existe des outils équivalents.

Remarque : Il se peut que l'ordinateur démarre à partir du disque dur. Pour booter depuis la clé USB, 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 LiveUSB
De nos jour, le système live se met généralement sur une clé USB (ou un disque externe). Cela a l'avantage d'être plus rapide (à créer et pour installer le système) notamment pour l'USB3. 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.

Pour afficher la liste des disques disponibles : commande lsblk ou avec plein d'options :

lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL,STATE,TYPE

sortie :

NAME     SIZE FSTYPE LABEL  MOUNTPOINT UUID                                 MODEL                     SERIAL            STATE   TYPE
sda    476.9G                                                               SK hynix SC311 SATA 512GB MJ88N538310808F5M running disk
├─sda1   200M vfat          /boot/efi  84CC-70E3                                                                                part
├─sda2     1G ext4   boot   /boot      0356c3ce-74cc-4002-81b6-cbef930f10f4                                                     part
├─sda3   100G ext4   system /          3af2deda-cea2-4510-94a5-b8451ca3b705                                                     part
├─sda4    10G swap   swap   [SWAP]     5a8102ef-5571-41ff-be0e-9de10ade2289                                                     part
└─sda5 365.7G ext4   data   /home      668b05dc-2351-4ede-b7af-5c423b30981a                                                     part
sdb          14.3G iso9660     Fedora-Cinn-Live-37-1-7             2022-11-05-09-14-38-00               Ultra USB 3.0           4C530001161008112440  running disk
├─sdb1        2.2G iso9660     Fedora-Cinn-Live-37-1-7             2022-11-05-09-14-38-00                                                                    part
├─sdb2        9.9M vfat        ANACONDA                            9131-7535                                                                                 part
└─sdb3        300K                                                                                                                                           part
zram0    7.5G               [SWAP]                                                                                              disk


Ici, la clé USB (/dev/sdb) contient déjà la version live Fedora 37.

Creating and using live USB

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 (qui ne devrait pas exister, pour éviter les accidents).

dd if=Fedora-Cinnamon-Live-x86_64-VERSION.iso of=/dev/sdX bs=8M status=progress oflag=direct

Fichier sur silico : Fedora-Cinnamon-Live-x86_64-37-1.7.iso

Sur fedora (et la plupart des distributions linux), on pourra utiliser l'utilitaire gnome-disks (ou juste Disks dans les menu de l'environnement cinnamon).


Démarrer le PC avec la liveUSB
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 (pas nécessaire en U2-207)

Séquence de démarrage

Etapes :

  • 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 bootloaders).

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, session (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.

Paramétrage du système et installation

Après avoir démarré le liveUSB, il suffit normalement de lancer l'assistant d'installation.

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 messages. 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 ; 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
  • ...
Schéma typique à la maison ci-contre.
Schéma réseau box


Il y a un serveur DHCP configuré pour la U2-207. Les machines sont identifiées par leur adresse MAC et une adresse IP leur est attribuée. De plus, lors de l'activation de la connexion, certains paramètres sont aussi configurés comme les DNS et les tables de routages. Toutes les machines de la salle ont été placées dans un VLAN (réseau local virtuel) et ont toutes des adresses IP de la forme 10.14.0.X

Commandes et fichiers :

ip ifconfig 
hostname 
dig nslookup getent ifup ifdown whois
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-INTERFACE /etc/hosts /etc/resolve.conf


Partitionnement du/des disque(s)

Sujet aussi é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) et ne PAS la formater ou bien la créer (1GB EFI System Partition), 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
findmnt

RPMs : gparted

Redémarrage du système après installation et configuration post-installation

Documentation collaborative de l'atelier

https://semestriel.framapad.org/p/P02022installPC

ou le créer à partir de https://framapad.org/

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). Il faudra redémarrer la machine (mais pas tout de suite pour cet atelier) pour que ce changement soit effectif.

gestionnaire de paquets

A partir d'une ou plusieurs sources (dépôts), 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-get, apt (debian, 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

Afficher le contenu d'un rpm

$guest rpm -qpl http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Voir aussi l'article dnf vs. apt.

Ajout de dépôts supplémentaires : RPM fusion

RPM fusion met à disposition des packages supplémentaires, notamment ceux dont le code source n'est pas libre (rpm-fusion-nonfree-release) avec par exemple VLC pour l'utilisation de certains codecs.

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ème (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

Redémarrage après les dernières mises à jour et paramétrages

Redémarrer la machine.

Création d'un compte utilisateur

La création de compte utilisateur sur linux se fait avec la commande useradd :

$root useradd barriot

Par défaut, en général,

  • un groupe avec le même nom que le login est créé
  • le répertoire de l'utilisateur est créé, ici /home/barriot

Il faut ensuite définir un mot de passe pour cet utilisateur :

$root passwd barriot

Créez votre compte ayant pour username votre nom de famille en le simplifiant :

  • tout en minuscule
  • uniquement des lettres de l'alphabet et pas de caractère problématique : espace, cédille, accent, ponctuation, ...

Ensuite, fermez votre session pour utiliser votre propre compte.


Il est possible de faire la même chose en mode graphique. Avec cinnamon, allez dans les paramètres pour créer un compte utilisateur :

Image:Users and Groups.png

Variables d'environnement (PATH et LD_LIBRARY_PATH)

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 :

$guest echo $PATH

Pour le modifier :

$guest PATH="$HOME/.local/bin:$HOME/bin:$PATH"


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 :

$guest 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 :

$guest 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 des rpm à installer (fichier texte disponible sur rpms.to.install.txt) :

kernel-devel

gparted

httpd ncurses-devel

bzip2-devel xz-devel zlib-devel libpng12-devel grsync

php phpMyAdmin php-bcmath php-gd php-geshi php-mbstring php-mcrypt php-pdo

mariadb-server mariadb-devel mariadb

gcc automake autoconf

java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-openjfx

geany geany-plugins-spellcheck

git meld

tilda  fd-find baobab

htop glances iotop iftop atop sysstat lshw nethogs iperf iperf3

wget telnet filezilla firewall-config chromium

libreoffice xournal okular gnome-font-viewer 

gimp krita inkscape vlc

rstudio-desktop

igraph igraph-devel

octave pymol

podman singularity

ansible-core ansible-collection-ansible-posix ansible-collection-community-general

sshfs encfs

On pourra copier/coller cette liste dans un fichier rpms.to.install.txt et ensuite lancer l'installation :

$root dnf install $(cat rpms.to.install.txt)

ou encore

$root dnf install $(curl http://silico.biotoul.fr/enseignement/m2bbs/fedora/rpms.to.install.txt)

Lors de la première installation depuis un dépôt (ici, ce devrait concerner ceux de RPM Fusion), il faut s'assurer que le serveur auquel on se connecte est bien celui qu'il prétend être : ceci passe par des clés https://rpmfusion.org/keys qu'il est nécessaire de vérifier pour ne pas s'exposer à des failles de sécurité (ou pire).

A télécharger et installer :

$guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/mysql-workbench-community-8.0.33-1.fc37.x86_64.rpm
$guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/sqldeveloper-22.2.0-173.2018.noarch.rpm
$root dnf install mysql-workbench-community-8.0.33-1.fc37.x86_64.rpm sqldeveloper-22.2.0-173.2018.noarch.rpm

Remarque : pendant l'installation, demander à quoi correspondent ces rpm.

arrêt ici jour 1 2022/08/31 13h30-17h30

depuis le code source (ex : HMMER)

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 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).

Extraction du contenu :

$guest tar xf hmmer.tar.gz

On se place dans le répertoire :

$guest cd hmmer-3.3.2

En général, pour ce type d'installation, l'archive contient des fichiers de documentations comme README ou INSTALL :

cat INSTALL
  • ./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és 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

RPMs : httpd (=apache)

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

Si le serveur Web est actif, la page de test devrait être accessible sur http://localhost

Cette page peut-être désactivée :

$root mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak

Vérification :

$root systemctl restart httpd

Puis, accédez à http://localhost dans votre navigateur. Normalement, le contenu du répertoire /var/www/html devrait s'afficher. Il correspond à la racine des documents servis par le serveur Web.


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 "ouverts"
  • $root firewall-cmd --permanent --remove-port=port-number/port-type : "fermeture" d'un port, ex: firewall-cmd --permanent --remove-port=4000/tcp


Assurez-vous que sshd soit en mode "enabled" ET que le port 22 soit ouvert (pare-feu) afin que Roland puisse intervenir à distance.

MySQL/MariaDB

RPMs : mariadb-server mariadb-devel 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
  • Switch to unix_socket authentication [Y/n] y
  • 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

RPMs : httpd php phpMyAdmin php-bcmath php-gd php-geshi php-mbstring php-pdo

Aller à la page http://localhost/phpMyAdmin

Remarque : Pour autoriser l'accès à phpMyAdmin depuis une autre machine, il faut éditer le fichier de configuration /etc/httpd/conf.d/phpMyAdmin.conf et ajouter la directive Require all granted dans la section <Directory /usr/share/phpMyAdmin/> puis recharger la configuration d'apache avec $root sytemctl reload httpd.

Ou bien test manuel, en créant dans le répertoire /var/www/html/ les fichiers :

  • phpinfo.php
<?php
  phpinfo();
?>
test http://localhost/phpinfo.php
  • mysql.php
<?php

try {
 	$dbh = new PDO('mysql:host=localhost;dbname=performance_schema', 'root', 'bioinfooooo');
	echo "Successfully connected to database<br/>";
}
catch (PDOException $ex){
   echo "Connection to database failed<br/>";
}

echo 'contenu de la variable $dbh → ';
var_dump($dbh);
?>
test http://localhost/mysql.php


Arrêt ici 1er jour (9h30 - 17h30) 06 sep 2016

2ème 1/2 journée 01/09/2022 8h30-11h30

Environnement de développement python/R/...

Environnement pour Gestion de données non structurées et applications post-génomiques (GDNS-AP)

Remarque : Toutes les commandes conda ou mamba sont à exécuter en tant qu'utilisateur et surtout PAS administrateur/root.

Utilisation de mamba (plus efficace et plus rapide que conda et qui garde la même syntaxe d'utilisation que 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).

Installation et intialisation de mamba

Documentation : https://mamba.readthedocs.io/en/latest/installation.html

Il faut donc faire la commande suivante (en tant qu'utilisateur et non PAS root) :

$guest curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"

Puis exécuter le script téléchargé :

sh Mambaforge-Linux-x86_64.sh 
Do you accept the license terms? [yes|no]
[no] >>> yes 

Mambaforge will now be installed into this location:
/home/guest/mambaforge

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/home/guest/mambaforge] >>> 

Do you wish the installer to initialize Mambaforge
by running conda init? [yes|no]
[no] >>> yes

Il faudra ensuite ouvrir un nouveau terminal pour voir l'effet.


environnements

Création d'un nouvel environnement (qui utilise la version 3.6 de python)

mamba create --name gdnsap python=3.6

ou bien en deux étapes (création de l'environnement puis installation de python 3.6)

mamba create --name gdnsap
mamba activate gdnsap
mamba install python=3.6

Liste des environnements

mamba env list

Test de la version de python

python --version

Activation d'un environnement

mamba activate gdnsap

Test de la version de python

python --version

Pour quitter l'environnement

mamba 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 bioconda 

packages

Liste de packages installés :

mamba list -n gdnsap

cheat un utilitaire plus synthétique et souple que man pour l'accès à la documentation

Recherche du programme cheat qui permet d'éditer des fiches en lignes de commande:

$root dnf list cheat

Installation

$root dnf install cheat

Test

$guest cheat

Il faut l'initiatiliser

$guest mkdir -p ~/.config/cheat && cheat --init > ~/.config/cheat/conf.yml
$guest ln -s /usr/share/cheat ~/.config/cheat/cheatsheets/community 
$guest mkdir -p ~/.config/cheat/cheatsheets/personal

Affichage des répertoires utilisés

$guest cheat -d

Affichage de l'aide d'une commande

$guest cheat dnf

Création ou modification d'un cheatsheet nommé mamba avec vi

$guest cheat -e mamba

à copier/coller dans vi

# install Documentation : https://mamba.readthedocs.io/en/latest/installation.html
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
sh Mambaforge-Linux-x86_64.sh 

# ENVS
####################################
mamba env list

# lists installed packages
mamba list -n gdnsap 

# remove environment
mamba remove --name myenv --all

# create env
mamba create --name devenv python=3.7

# clone env
mamba create --name newly_created_env --clone existing_env

# export/import
conda list -e > conda.env.list.txt
conda list --export --name gdnsap > gdnas.mamba.list.txt

conda create -n new_env --file conda.env.list.txt

# activate/deactivate
mamba activate devenv

mamba deactivate


# CHANNELS
#####################################
conda config --add channels conda-forge 
conda config --add channels bioconda 

conda config --remove channels conda-forge

# PACKAGES
######################################
mamba list

mamba search

mamba install python
mamba install python=2.7

Visualisation

cheat mamba

Librairies R pour GDNS-AP

Nous aurons besoin des librairies suivantes :

  • tidyverse (CRAN)
  • RMySQL (CRAN)
  • neo4r (CRAN)
  • reticulate (CRAN)
  • STRINGdb (BioConductor)

On en déduit la commande suivante :

mamba activate gdnsap
mamba install r-tidyverse r-rmysql r-neo4r r-reticulate bioconductor-stringdb


Modules python pour GDNS-AP

Les modules suivants seront nécessaires :

  • numpy
  • pandas
  • igraph
  • scipy
  • neo4j

Les modules python sont installables directement avec leur nom utilisé pour leur import dans un script :

mamba activate gdnsap
mamba install scipy mycli igraph numpy pandas neo4j-python-driver



Récapitulatif : création de l'environnement en une fois :

mamba create -n gdnsap r-tidyverse r-rmysql r-neo4r r-reticulate r-dt r-kableextra bioconductor-stringdb r-rmdformats scipy mycli igraph numpy pandas neo4j-python-driver scipy mycli igraph numpy pandas neo4j-python-driver






Ateliers et autres logiciels spécifiques

Zotero (UE Communication)

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 mv Zotero_linux-x86_64 ~/bin/
$guest cd ~/bin
$guest ln -s Zotero_linux-x86_64/zotero

Test depuis n'importe où dans un shell :

$guest zotero

Tester également que le plug-in est installé dans libreoffice :

$guest oowriter


Et ensuite, installer le plug-in firefox (à droite sur la page d'accueil du site de Zotero).

Base de données avancées : SQL developer

Normalement, le RPM (linux 64 bits) est à récupérer dans la liste de la page https://www.oracle.com/tools/downloads/sqldev-downloads.html mais cette étape a déjà été réalisée la vieille avec la liste des RPM à installer.

Il faut un environnement avec Java ; openjdk fera l'affaire :

$guest mamba create --name bd2 openjdk

A exécuter la première fois en ligne de commande pour renseigner le chemin d'accès au JDK :

$guest mamba activate bd2
$guest sqldeveloper

Apparaît

Oracle SQL Developer Copyright (c) 2005, 2021, Oracle and/or its affiliates. All rights reserved.


Atelier Apprentissage automatique

L'ensemble se fait avec python et les modules ce-dessous. Il faut donc créer une environnement conda correspondant et installer les modules :

$guest mamba deactivate
$guest mamba create --name ml # pour machine learning
$guest mamba activate ml 
$guest mamba install python=3 keras theano tensorflow deeptools matplotlib

Lors des séances d'apprentissage automatique, pensez à activer l'environnement ml

conda activate ml

Atelier Galaxy

Il sera fait à distance en 2022-23. Les étudiant·e·s peuvent travailler chez eux ou en P0.

L'atelier nécessite

  • UNIX/Linux or Mac OSX
  • python 3.7 ou plus récent


Atelier ChIP-seq / HiC / single cell

Cet atelier nécessite divers utilitaires et librairies. On commence par créer un environnement conda dédié :

$guest mamba deactivate
$guest mamba create --name chipseq 
$guest mamba activate chipseq 

Certains programmes, comme FastQC ou BWA, sont disponibles depuis conda.

$guest mamba install fastqc cutadapt bwa macs2 deeptools igv trim-galore picard samtools

Librairies pour R/Rstudio

$guest mamba install r-dplyr r-pheatmap r-biocmanager bioconductor-GenomicRanges bioconductor-chippeakanno bioconductor-limma bioconductor-seqplots bioconductor-rtracklayer r-highr r-knitr r-rmarkdown r-tinytex r-xfun

(ajouter pour Rmarkdown: highr, knitr, markdown, rmarkdown, tinytex, xfun → r-highr r-knitr, r-markdown, r-rmarkdown, r-tinytex, r-xfun)


Les annotations de la drosophile ne sont pas disponibles depuis conda donc on le fait sous R :

$guest R
BiocManager::install(c('GenomeInfoDb','TxDb.Dmelanogaster.UCSC.dm6.ensGene'))

Tester si les librairies se chargent correctement :

$guest R
library("GenomicRanges")
library("TxDb.Dmelanogaster.UCSC.dm6.ensGene")
library("ChIPpeakAnno")
library("limma")
library("seqplots")
library("dplyr")
library("rtracklayer")
library("pheatmap")


Atelier Phylogénomique

Création de l'environnement

mamba deactivate
mamba create -n phylog
mamba info --envs
mamba activate phylog

Installation de Mauve et progressiveMauve (http://darlinglab.org/mauve/mauve.html), Artemis (https://www.sanger.ac.uk/tool/artemis/) et FigTree (http://tree.bio.ed.ac.uk/software/figtree/)

mamba install mauve progressivemauve artemis figtree

seaview

Site : http://doua.prabi.fr/software/seaview

$guest cd ~/Downloads
$guest wget http://doua.prabi.fr/software/seaview_data/seaview5-64.tgz
$guest cd ~/bin
$guest tar tf ~/Downloads/seaview5-64.tgz
$guest tar xf ~/Downloads/seaview5-64.tgz
$guest mv seaview seaview5-64
$guest ln -s seaview5-64/seaview

SplitsTree

Site : https://uni-tuebingen.de/en/fakultaeten/mathematisch-naturwissenschaftliche-fakultaet/fachbereiche/informatik/lehrstuehle/algorithms-in-bioinformatics/software/splitstree/

$guest cd ~/Downloads
$guest wget https://software-ab.informatik.uni-tuebingen.de/download/splitstree5/SplitsTree5_unix_5_2_28-beta.sh
$guest sh SplitsTree5_unix_5_2_28-beta.sh

Lors de l'installation, vous pourrez spécifier le répertoire de destination où l'installer (par exemple, ~/bin/splitstee5) ainsi que où créer les liens symboliques pour le lancement en ligne de commande (par exemple ~/bin).

Copie de l'installation de pc2 :

$guest rsync --itemize-changes -a -h --stats -e ssh guest@pc2:bin/splitstree5/ ~/bin/splitstree5/
$guest cd ~/bin
$guest ln -s splitstree5/SplitsTree5



Atelier Etude du métabolisme

Cytoscape à télécharger sur le site : https://github.com/cytoscape/cytoscape/releases/download/3.8.2/Cytoscape_3_8_2_unix.sh

Autres modules pythons dans un environnement conda dédié :

$guest mamba create --name metabo
$guest mamba activate metabo
$guest mamba install python=3.6 openjdk maven glpk


Récupération l'image singularity de met4j

singularity pull met4j-toolbox.sif oras://registry.forgemia.inra.fr/metexplore/met4j/met4j-singularity:latest

Test est simple : la commande met4j-toolbox.sif doit retourner le help.

A essayer

chmod 755 met4j-toolbox.sif
./met4j-toolbox.sif 


Atelier Paléogénomique

A compléter

Atelier Métagénomique et intégration de données

Création de l'environnement conda avec R et les librairies nécessaires :

$guest mamba deactivate
$guest mamba create --name metagenomique bioconductor-mixomics r-mixkernel
$guest mamba activate metagenomique

Atelier Modélisation

Création de l'environnement avec java

mamba deactivate
mamba create --name sysbio openjdk

Charlie

Site de téléchargement : http://www-dssz.informatik.tu-cottbus.de/DSSZ/Software/Charlie#download

$guest cd ~/Downloads
$guest wget www-dssz.informatik.tu-cottbus.de/track/download.php?id=28 -O setup_charliev2_0.jar

si un problème de certificat :

$guest wget silico.biotoul.fr/enseignement/m2bbs/fedora/setup_charliev2_0.jar


Puis, faire l'installation, par exemple dans ~/bin/Charlie

$guest mamba deactivate
$guest mamba activate sysbio
$guest cd ~/Downloads
$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 cd ~/Downloads
$guest wget https://github.com/copasi/COPASI/releases/download/Build-260/COPASI-4.36.260-Linux-64bit.sh -O COPASI-Linux-64bit.sh
$guest sh COPASI-Linux-64bit.sh

→ Installation directory: /home/guest/bin/COPASI/4.36.260

Il manque une librairie :

$guest ldd ~/bin/COPASI/4.36.260/share/copasi/lib/CopasiUI

Recherche et installation du RPM dont on a besoin :

$guest dnf provides */libQt5DataVisualization.so
$root dnf install qt5-qtdatavis3d-devel

Test

$guest ~/bin/COPASI/4.36.260/bin/CopasiUI

Et création du lien symbolique pour le lancer de n'importe où :

$guest cd ~/bin
$guest $ ln -s COPASI/4.36.260/bin/CopasiUI 
$guest cd

GINSim

Site : http://ginsim.org/downloads

Téléchargement puis test :

$guest cd ~/bin
$guest wget http://ginsim.org/sites/default/files/GINsim-2.4.jar

Test ou utilisation

$guest java -jar GINsim-2.4.jar 


Éventuellement, création d'un script pour le lancer en ligne de commande :

$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

GNA

Site Genetic Network Analyzer https://team.inria.fr/ibis/genetic-network-analyzer-gna/

Téléchargement

$guest cd ~/Downloads
$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

A installer dans votre répertoire ~/bin/GNA_8.7.1.1, et le lien symbolique est à créer dans ~/bin, le montant maximum de mémoire peut être laissé à la valeur proposée.

Test :

genetic_network_analyzer


Snoopy

$guest wget https://www-dssz.informatik.tu-cottbus.de/track/download.php?id=246 -O snoopy-stable-linux.tgz

en cas de problème de certificat

$guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/snoopy-stable-linux-64-2019-12-20.tgz -O snoopy-stable-linux.tgz
$guest tar tf snoopy-stable-linux.tgz 
$guest tar xf snoopy-stable-linux.tgz 

Installation pour l'ensemble des utilisateurs dans /opt

$root mv snoopy2 /opt/
$guest cd /opt/snoopy2
$guest ./bin/snoopy
$guest ldd ./bin/snoopy

Problème : il manque des librairies partagées : elles sont dans un sous-répertoire :

$guest ls -lh lib

On teste en ajoutant ce répertoire à la variable LD_LIBRARY_PATH

$guest export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/snoopy2/lib
$guest ldd ./bin/snoopy
$guest ./bin/snoopy

Ca fonctionne, on créé un script permettant à tous les utilisateurs du système d'utiliser snoopy :

$root cd /opt/snoopy2
$root echo '#!/bin/bash' > snoopy
$root echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/snoopy2/lib' >> snoopy 
$root echo '/opt/snoopy2/bin/snoopy' >> snoopy 
$root chmod +x snoopy 
$root ln -s /opt/snoopy2/snoopy /usr/bin/snoopy

Test/utilisation :

$guest snoopy

Atelier Génétique statistique

Création de l'environnement conda

$guest mamba create -n genetstat admixture hapflk python=2.7 numpy scipy

ssh

TODO: ajouter un ou deux schémas inspirés de https://wikieducator.org/Ict-innovation/LPI/110.3

De base, l'authentification se fait par mot de passe. Ce qui n'est pas le plus sécurisé.

Une amélioration consiste à utiliser une paire de clés publique/privée.

  • Quand on veut se connecter sur une autre machine, on est le client et l'autre machine le serveur.
  • Côté client, il faut générer une paire de clés
  • Côté serveur, il faut copier sa clé publique
  • Ensuite, quand on lance la commande ssh, l'échange de clé va se produire, mais côté client il faut s'authentifier pour accéder à la clé.

Important : des deux côtés, il faut que le répertoire ~/.ssh ait les permissions drwx------ : chmod 700 ~/.ssh ou chmod u=rwx,og=

Côté client

Il faut donc commencer par générer une paire de clé. Il existe plusieurs types de clés : RSA, DSA, ECDSA, ... laquelle choisir ? Discussion 1 2

Nous allons utiliser RSA.

Génération des clés

$guest ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/urlogin/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/urlogin/.ssh/id_rsa.
Your public key has been saved in /home/urlogin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XXX...---...XXX urlogin@urhost.tdn
The key's randomart image is:
+---[RSA 2048]----+
....
+----[SHA256]-----+
$ ls -lh
total 8.0K
-rw------- 1 urlogin urgroup 1.8K Aug 24 08:41 id_rsa
-rw-r--r-- 1 urlogin urgroup  412 Aug 24 08:41 id_rsa.pub

Côté serveur

Il faut copier la clé la clé publique :

$guest scp client:.ssh/id_rsa.pub ~/.ssh/urlogin.at.client.id_rsa.pub

Puis l'ajouter aux clés autorisées :

$guest cd ~/.ssh
cat urlogin.at.client.id_rsa.pub >> authorized_keys

Important : il faut que le fichier authorized_keys ait les permissions -rw------- : chmod 600 ou chmod u=rw,go=

Et bien sûr, il faut que le service sshd soit démarré :

$root systemctl status sshd # état du service
$root systemctl start sshd  # démarrage

Et aussi que le port du firewall soit ouvert :

$root firewall-cmd --list-services # liste des services "ouverts" 
$root firewall-cmd --add-service=ssh # ouverture (temporaire) du port

Utilisation, par exemple sur gitlab

Une fois que l'on dispose d'une paire de clés, il est possible de l'utiliser par exemple sur gitlab afin d'effectuer les opérations git sans à avoir à fournir le mot de passe gitlab mais seulement localement pour accéder à la clé privée. Dans ce cas, il faut aller sur l'interface de son compte gitlab et dans la configuration ajouter sa clé publique (SURTOUT NE PAS DIVULGUER SA CLE PRIVEE).

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 LaserJet 400 MFP M425 (recommended) → Drivers HP LaserJet MFP M425 Postscript [en] (recommended)

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/



Sauvegardes et restaurations

Table de partitions, secteur de démarrage, partition

dd : copie binaire du MBR ou d'une partition

Pour des tables de partitions 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 de la totalité d'une partition (même de ce qui est vide)
dd if=/dev/sda1 of=sda1.dd

sfdisk : table de partitions de type dos/MBR

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

sgdisk : table de partitions de type GPT

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 : arborescence de répertoires

tar pour "tape archive", utilisé historiquement pour l'archivage sur bandes magnétiques : permet de sauvegarder un ou plusieurs fichiers (avec la structures en répertoires, les permissions, etc.) en un seule fichier .tar.

avec l'option p pour préserver les permission (rwx), et on exclut certains répertoires (ex: home) pour ne garder que le système (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 : faire des sauvegardes régulières (de ses données ou systèmes)

rsync permet de "synchroniser" un fichier ou une sous-arborescence de répertoires, 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, par exemple de son "home" :

rsync --dry-run \
     --archive --hard-links --delete --acls --xattrs --one-file-system \
     --itemize-changes --stats -h \
     --exclude backup_home_$USER \
     $HOME/ $HOME/backup_home_$USER/


Il est enfin possible d'automatiser la sauvegarde (tous les jours, mois, semaines, ...) avec l'utilitaire cron. cf; :

crontab -l
crontab -e


Remarque : il existe une interface graphique → grsync


Commandes supplémentaires à l'Atelier système pour cloner ou sauvegarder/restaurer l'état d'un système  : clone system

Montage réseau

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 un répertoire sur l'ordi de l'intervenant/pc2 : pc2:/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-server

Au démarrage du système

$root systemctl enable nfs-server


Remarque : il faut s'assurer que le firewall autorise la connexion sur les ports nfs (firewall-cmd --list-services ou firewall-cmd --list-ports).


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/share

Montage de l'export nfs avec la commande mount

$root mount pc2:/home/share /mnt/share

En cas de succès, le contenu de /mnt/share correspond à ce qu'il y a sur pc2. S'il y a des fichiers et/ou répertoires dans /mnt/share 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 pc2:/home/share /mnt/share

Pour démonter le répertoire :

$root umount /mnt/share

Pour consulter les montages actifs :

mount
findmnt


Pour aller plus loin : le montage de répertoire peut se faire à la volée, c'est-à-dire lorsque l'on tente d'accéder au répertoire distant. L'utilitaire s'appelle autofs et permet de monter un répertoire local ou distant seulement lorsque l'on en a besoin.


sshfs

Installation

$root dnf install sshfs

encfs

https://gitlab.com/rbarriot/guides/-/tree/master/encfs

gestion des processus

Etat d'un processus : running, stopped, dead, ...

  • commande & nohup disown
  • Ctrl-C Ctrl-Z
  • ps jobs fg bg
  • signaux : kill
nohup glxgears &
disown -h PID

Monitoring

Matériel

$root inxi -Fxmt
$root lshw

# memory
$root lshw -short -C memory
$root dmidecode --type 17
cat /proc/meminfo

# usb
lsusb -t

Utilisation du volume de stockage

$root baobab /home/

Commandes et utilitaires pour les processus :

top
htop
glances

Entrées/Sorties

iotop
atop
iostat -xd 1
iostat -p /dev/sda1 -xd 1

Réseau

netstat
iftop
nethogs
nmcli dev wifi
iwlist scan
iperf3 -s -p 8080

Utilisation de containers : docker, podman, ...

Page dédiée → docker

Environnement linux : divers

Deskptop Environment

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).

Shell

Pour paramétrer plus spécifiquement le shell (bash) à l'échelle du système, le mieux est d'ajouter ou modifier le fichier /etc/profile.d/custom.sh qui sera pris en compte par tous les utilisateurs. Exemple :

# ALIASES
alias lsblk='lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL,STATE,TYPE'
alias l='ls -lhX --group-directories-first'
alias ssh='ssh -o ServerAliveInterval=100 -Y'
alias cp='cp --preserve=xattr'
 
function lwhich {
   ls -lh $(which $1)
} 
 
# PATH
export PATH=$PATH:~/bin
 
# PROMPT
if [ "$EUID" == "0" ];
then
   export PSUSERCOL=1
else
   export PSUSERCOL=2
fi
export PS1="$(tput -Txterm-256color bold ; tput -Txterm-256color setaf $PSUSERCOL)### $(tput -Txterm-256color setaf 7)\d \A  $(tput -Txterm-256color setaf $PSUSERCOL)\u $(tput -Txterm-256color setaf 3)\H $(tput -Txterm-256color setaf 2)\w $(tput -Txterm-256color sgr0)\n\$ "

Autres fonctions utiles

Pour visualiser des fichiers tsv ou csv avec les colonnes alignées.

Un script à placer dans ~/bin/csvview :

#!/bin/bash
 
set -o errexit
 
function show_usage {
  cat <<EOF
Usage: $0 [--help] [filename]
View a CSV file at the command line.
  --help        Show this help text.
  filename      CSV file to be viewed
EOF
  exit -1
}
 
if [ "$1" == "--help" -o "$1" == "" ]; then
  show_usage
fi
 
column -ts $',' < "$1" | less -#.3 -N -S

A essayer sur File:Moodle.eval.annee.M1.csv

Et un autre pour les fichiers tabulés ~/bin/tsvview

#!/bin/bash
 
set -o errexit
 
function show_usage {
  cat <<EOF
Usage: $0 [--help] [filename]
View a TSV file at the command line.
  --help        Show this help text.
  filename      tabulated file to be viewed
EOF
  exit -1
}
 
if [ "$1" == "--help" -o "$1" == "" ]; then
  show_usage
fi
 
column -ts $'\t' < "$1" | less -#.3 -N -S

Pour le M1

Passer à la section suivante : Imprimante

Utiliser le compte guest qui sera utilisé par les M1.

su guest

Il sera sûrement nécessaire d'ajouter les channels

conda config --add channels conda-forge 
conda config --add channels bioconda 

Comme pour votre compte, installer mamba :

$guest curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh" 
$guest sh Mambaforge-Linux-x86_64.sh 

Algorithmique et complexité

Fouille de données

Création d'un environnement conda avec le nécessaire

$guest mamba deactivate
$guest mamba create --name fouille r-tidyverse r-rmysql bioconductor-made4 r-ade4 r-ggally r-mass r-rcolorbrewer r-gridextra r-kableextra r-plotly  scipy mycli numpy pandas scikit-learn

Programmation avancée et génie logiciel

from https://www.linuxcapable.com/how-to-install-eclipse-ide-on-fedora-36-35/

Activer les dépôts

$root dnf copr enable dusansimic/eclipse

via dnf :

$root dnf install eclipse

PTUT

Docker ne fonctionne pas bien avec la dernière version de Fedora. Un substitut avec les mêmes options et paramètres en ligne de commande est podman.

Installation

$root mamba install podman

Test

$guest podman run hello-world


Traitement de données post-génomiques

RNA-Seq et Assemblage

Création d'un environnement conda dédié :

$guest mamba deactivate
$guest mamba create --name RNASeq+Assemblage fastqc cutadapt bwa igv macs2 samtools htslib abyss bcftools tabix boost snpeff   
$guest activate tdp
$guest mamba install bioconductor-coseq r-tidyverse r-factominer r-factoextra r-lattice bioconductor-chipseq bioconductor-genomicranges bioconductor-limma bioconductor-deseq2 bioconductor-htsfilter bioconductor-edger bioconductor-topgo r-mixomics r-gplots bioconductor-a4base 


Test des librairies R :

$guest mamba deactivate
$guest mamba activate tdp
$guest R
BiocManager::install(c('GenomeInfoDb', 'org.At.tair.db'))
library(a4Base)
library(DESeq2)
library(tidyverse)
library(edgeR)
library(gplots)
library(HTSFilter)
library(limma)
library(org.At.tair.db)
library(topGO)
library(FactoMineR)
library(factoextra)
library(coseq)
library(mixOmics)

File:Conda.env.tdp.list.txt à utiliser un environnement mamba :

mamba create --name tdp2 --file conda.env.tdp.list.txt

sRNA-Seq

Création d'un environnement conda dédié :

$guest mamba deactivate
$guest mamba create --name srnaseq igv viennarna infernal trnascan-se sra-tools cutadapt fastqc bowtie samtools subread bedtools mirdeep2 r-biocmanager bioconductor-deseq2 bioconductor-rtracklayer bioconductor-chippeakanno r-pheatmap 


Evolution Moléculaire

rstudio

Création d'un environnement conda dédié :

$guest mamba create -n evomol r-base r-ape r-base64enc r-digest r-evaluate r-glue r-highr r-htmltools r-jsonlite r-knitr r-magrittr r-markdown r-mime r-rmarkdown r-rprojroot r-stringi r-stringr r-tinytex r-xfun r-yaml
$guest mamba activate evomol
$guest mamba info --envs
$guest rstudio

seaview

Un lien ici : http://silico.biotoul.fr/p/M2BBS_-_Atelier_Syst%C3%A8me#seaview

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_VERSION.zip  ttf/*
 mv ttf/* ~/.local/share/fonts
 rmdir ttf
 fc-cache -f

A ajouter/à faire

  • slurm
  • docker/podman
  • gitlab
  • sshfs
  • encfs
  • gpg
  • tmate
  • sudoers + passwdless ssh pc2 → pcX
  • photo du groupe pour le site
  • sondage M1

TODO 2022-23

  • gestion réseau nouvelle salle
  • conda, mamba
  • docker, podman
  • ansible
  • slurm
  • nettoyer/archiver ce qui est trop vieux

Liens et autres

  • 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



Archives

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

$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



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


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


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


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


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.

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

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)