silico.biotoul.fr
 

M2BBS - Atelier Système

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Base de données avancées : SQL developer)
m (Base de données avancées : SQL developer)
Line 1,050: Line 1,050:
-->
-->
-
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 lsite des RPM à installer.
+
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.
A exécuter la première fois en ligne de commande pour renseigner le chemin d'accès au JDK :
A exécuter la première fois en ligne de commande pour renseigner le chemin d'accès au JDK :

Revision as of 07:54, 30 August 2021

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


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
Pour l'année 2020-21, il s'agit de Fedora core 31 64bits (https://dl.fedoraproject.org/pub/fedora/linux/releases/31/). La dernière est la 32 mais avec la version la plus récente, il y a parfois certains logiciels qui ne s'installent pas. Pour créer un tel média, il faut télécharger son image : un fichier .iso correspondant à l'image d'un disque (CD ou support physique) ou d'une partition au format iso9660 contenant tout le système de fichiers. Pour le graver sur un CD (ou DVD), il faut utiliser un logiciel qui permet de graver une image (burn ISO ou burn disc image) tel que Brasero sous GNOME apparemment il existe sur Windows depuis le 7 un outil qui permet de faire ça et, sinon, il en existe des gratuits.

Remarque : Il se peut que l'ordinateur démarre à partir du disque dur. Pour booter depuis le CD, il faut parfois accéder au menu de boot. On y accède le plus souvent avec la touche Esc, F2, F8, F9, F10, F12 ou delete/suppr (dépend de chaque ordi). On obtient alors soit le menu de démarrage soit le paramétrage du BIOS.

Création d'une LiveUSBKey
Il est aussi possible de créer une clé 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.

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.

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-33-1.2.iso

Démarrer le PC avec la liveUSBKey
Avant de procéder à l'installation, on peut explorer les fonctionnalités offertes par le liveCD. Il s'agit d'un vrai système linux et permet notamment de réparer un système défectueux (par exemple, réinstaller le bootloader, modifier le montage des partitions, ...).

La première chose à faire est de passer en clavier français. On peut faire ça à partir de l'interface graphique, ou bien taper la commande

# en mode graphique (server X = runlevel 5)
setxkbmap fr
# en mode texte (= runlevel 3)
loadkeys fr
  • Déterminer les partitions du disque dur (normalement /dev/sda).
  • s'il y en a, et qu'elles ne sont pas montées, monter (commande mount) dans des répertoires dans /mnt (à créer, par exemple /mnt/sda1) pour explorer les systèmes de fichiers qu'elles contiennent.
  • exercices :
    • création, formatage, montage, démontage, suppression de partitions aux différents formats et notions de LVM
    • configuration manuelle du réseau

Séquence de démarrage

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.

Installation et configuration du système

Après avoir démarré le liveUSB, il suffit normalement de lancer l'assistant d'installation. Mais, en P0, nous allons d'bord configurer le réseau. Ainsi, le système une fois installé sera bien configuré de ce côté là.

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 n'y a pas de serveur DHCP configuré pour la P0. Il faut donc spécifier les IP des machines manuellement en fonction de la machine que vous utilisez.

Les plages d'adresses IP réservées pour la P0 sont les suivantes :

  • 195.220.42.2 à 25 mais la 3 est utilisée ailleurs
  • 195.220.42.131 à 146

Les paramètres sont les mêmes pour tout le monde :

subnet mask: 255.255.255.0
gateway: 195.220.42.1
DNS1: 64.6.64.6
DNS2: 64.6.65.6

Il semblerait que les deux DNS de la fac fonctionnent mal. Depuis la rentrée 2015, il vous est proposé d'utiliser les DNS de VerySign 64.6.64.6,64.6.65.6

A ajouter au fichier /etc/hosts

195.220.42.2 pc2 bbs18A intervenant enseignant
195.220.42.131 printer HPLaserJetM425dn.p0
195.220.42.146 router
195.220.42.4 pc4   pc4.p0  bbs14A
195.220.42.5 pc5   pc5.p0  bbs15A
195.220.42.6 pc6   pc6.p0  bbs19A
195.220.42.7 pc7   pc7.p0  bbs20C
195.220.42.8 pc8   pc8.p0  bbs18B
195.220.42.9 pc9   pc9.p0  bbs20E
195.220.42.10 pc10 pc10.p0 bbs14B
195.220.42.11 pc11 pc11.p0 bbs20D
195.220.42.12 pc12 pc12.p0 bbs15B
195.220.42.13 pc13 pc13.p0 bbs15C
195.220.42.14 pc14 pc14.p0 bbs19B
195.220.42.15 pc15 pc15.p0 bbs20G
195.220.42.16 pc16 pc16.p0 bbs20H
195.220.42.17 pc17 pc17.p0 bbs19C
195.220.42.18 pc18 pc18.p0 bbs14C
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

     fenêtres           fenêtres             fenêtres
  /---------\   /---------\                          /---------\   /---------\
  |         |   |         |                          |         |   |         |    /--------------\
  |  .7 20C |   | .11 20D |                          | .15 20G |   | .19 20A |    |              |
  |         |   |         |     /--------------------|         |   |         |    | .131 printer |
  |  .6 19A |   | .10 14B |     |                    | .14 19B |   | .18 14C |    |              |
  |         |   |         |     | .21 20B    .20 20F |         |   |         |    |              | 
e |  .5 15A |   |  .9 20E |     |                    | .13 15C |   | .17 19C |    | .146 router  |
n |         |   |         |     |      .2 18A        |         |   |         |    |              | 
t |  .4 14A |   |  .8 18B |     \--------------------| .12 15B |   | .16 20H |    \--------------/
r |         |   |         |                          |         |   |         |
é \---------/   \---------/                          \---------/   \---------/
e                      tableau


Commandes et fichiers :

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

Partitionnement du/des disque(s)

Sujet déjà évoqué dans Linux tips - fs & partitions

Pour stocker des données sur un disque, celui-ci doit d'abord être partitionné. Puis, une partition formatée (création du système de fichiers), et ensuite la partition doit être montée en un point du système de fichier.

Les disques se trouvent en général dans /dev/sdX ; X étant une lettre, a pour le premier disque, b pour le second, ... et les partitions dans /dev/sdaX ; X étant le n° de partition, 1 pour la première, etc.

Le choix du partitionnement du disque est peut-être l'étape la plus délicate pour les néophytes. Il se fait très tôt (à l'installation) mais peut être modifié par la suite. Cela reste une opération sensible car il existe toujours un risque de perdre les données d'une partition voire le système complet.

Pour la taille des différentes partitions, cela dépend de la distribution linux. Le mieux est de se référer aux recommandations habituellement trouvées dans le guide d'administration. Par exemple pour fedora18, il est recommandé de créer au moins 4 partitions : http://docs.fedoraproject.org/en-US/Fedora/18/html/Installation_Guide/s2-diskpartrecommend-x86.html

  • swap partition
  • /boot partition
  • / partition
  • /home partition

La partition /boot est souvent à part et contient les fichiers nécessaires aux toutes premières étapes de démarrage du système. C'est donc en général une partition primaire au format ext. Les autres peuvent être des partition primaires/étendues ou bien gérées par LVM.

Il est en général judicieux d'avoir une partition séparée pour /home qui contient les répertoires utilisateurs. En effet, lors d'une réinstallation du système, il est courant de formater la partition / ce qui aurait pour effet d'effacer toutes les données utilisateurs si elles ne sont pas sur une autre partition.

Pour aujourd'hui, on utilisera le paramétrage suivant pour UEFI :

  • 1: laisser la partition EFI existante (la première) ou bien la créer, et la monter sur /boot/efi
  • 1bis: s'il y a une deuxième partition nommée OS de type FAT/Microsoft Reserved, ne pas y toucher
  • 2: 1GB ext4 /boot
  • 3: 75GB ext4 /
  • 4: 4Gb swap (pour pouvoir suspendre/hiberner la machine, il est recommandé 1.5 fois la RAM)
  • 5: 25GB ext4 /var
  • 6: 20GB ext4 /mnt/other au cas où l'on veuille y installer une autre distribution
  • 7: ce qui reste pour /home


Pour aujourd'hui, on utilisera le paramétrage suivant pour legacy :

  • 1: 1GB ext4 /boot
  • 2: 75GB ext4 /
  • 3: 4Gb swap (pour pouvoir suspendre/hiberner la machine, il est recommandé 1.5 fois la RAM)
  • 4: 25GB ext4 /var
  • 5: 20GB ext4 /mnt/other au cas où l'on veuille y installer une autre distribution
  • 6: ce qui reste pour /home

Commandes et fichiers :

lsblk fdisk parted gparted gnome-disks palimpsest: affichage et manipulation des partitions
mkfs[.ext4|.ext3|.ext2|.ntfs|...]: formatage
resize2fs resizepart: redimensionner une partition
pvdisplay pvcreate vgdisplay vgcreate lvdisplay lvcreate: commandes pour LVM (pv: physical volume, vg: volumegroup, lv: logical volume)
mount umount: montage/démontage d'une partition sur un répertoire
/etc/fstab: montage des partitions au démarrage
/etc/mtab /proc/partitions: table de partitions actives
/dev/sd* /dev/hd* /dev/sr* /dev/mapper/* /dev/disk/: périphériques de stockages

Notamment

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

Documentation

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

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

gestionnaire de paquets

A partir d'une ou plusieurs sources, ils permettent d'installer et de maintenir à jour le système et les logiciels installés.

  • dnf (fedora >= 22)
  • yum (fedora <22, centos)
  • rpm
  • apt (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

Pour fedora avant la 22 et CentOS, c'est exactement la même chose mais avec yum, exemple :

$guest yum list kernel-devel

Afficher le contenu d'un rpm

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

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èmes (puis régulièrement).

Avec les systèmes RedHat (CentOs, fedora, RHEL, ...), ceci est géré avec les RPM (RedHat Package Manager) et les logiciels package-kit/software et les utilitaires rpm/yum/dnf :

$root dnf list upgrades
$root dnf upgrade

SELinux

SELinux (pour Security Enhanced Linux) permet de renforcer la sécurité. En pratique, il bloque souvent des accès et peut être déroutant lors de la configuration/installation de la machine. Par exemple à une époque (à vérifier aujourd'hui), il bloquait les connexions de apache vers mysql (pour un site web dynamique php qui se connectait à une base de données) et la cause de l'impossibilité de connexion a mis du temps à être décelée.

Pour le désactiver :

$root vi /etc/selinux/config

Remplacer :

SELINUX=enforcing

par :

SELINUX=disabled

Sauvegarder et quitter (<Esc>:wq<Enter> dans vi)

Puis redémarrer la machine.

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 :

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

wget telnet filezilla firewall-config chromium

libreoffice xournal okular gnome-font-viewer 

gimp krita inkscape vlc lpf-flash-plugin

conda

rstudio-desktop

igraph igraph-devel

pymol

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)

A télécharger et installer :

$guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/mysql-workbench-community-8.0.23-1.fc33.x86_64.rpm
$guest wget http://silico.biotoul.fr/enseignement/m2bbs/fedora/sqldeveloper-21.2.1-204.1703.noarch.rpm
$root dnf install mysql-workbench-community-8.0.23-1.fc33.x86_64.rpm sqldeveloper-21.2.1-204.1703.noarch.rpm

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


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 tzf hmmer.tar.gz

Cela permet de voir ce qui va être extrait (option t. On vérifie que c'est bien dans un sous-répertoire sinon l'extraction va créer un tas de fichiers dans le répertoire courant (auquel cas on créé un répertoire et on se place dedans pour faire l'extraction).

Remarque : il y a plusieurs méthodes de compression/décompression (ici z pour gzip, sinon j pour bzip2 extension .tar.bz2, ... cf. man tar ). La dernière version de tar identifie automatique de quel format il s'agit.

Extraction du contenu :

$guest tar xf hmmer.tar.gz

On se place dans le répertoire :

$guest cd hmmer-3.3.2
  • ./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

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 "ouvers"
  • $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

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 :

  • Switch to unix_socket authentication [Y/n] n
  • Enter current password for root (enter for none): ne rien mettre + entrée
  • Set root password? [Y/n] y
  • Remove anonymous users? [Y/n] y
  • Disallow root login remotely? [Y/n] y
  • Remove test database and access to it? [Y/n] n
  • Reload privilege tables now? [Y/n] y

Démarrage au boot

$root systemctl enable mariadb

Remarque : Un site assez efficace pour installer et configurer des logiciels et serveurs sur Red Hat, CentOS, Fedora est http://www.if-not-true-then-false.com/ ; par exemple pour MariaDB: http://www.if-not-true-then-false.com/2013/install-mariadb-on-fedora-centos-rhel/ vous trouverez les commandes précédentes et aussi d'autres informations : création d'une base, ajout d'un utilisateur pouvant se connecter à distance, configuration du firewall pour ouverture le port réseau pour se connecter à distance au serveur, ...

Test du bon fonctionnement :

$root mysql -uroot -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> use mysql
MariaDB [mysql]> show tables;

Ctrl + D ou \q ou \quit pour quitter.

Interface Web d'administration et de gestion : phpMyAdmin


Il faut donc installer PHP.

PHP

$root dnf install php.x86_64 phpMyAdmin  php-bcmath php-gd php-geshi php-mbstring php-pdo
$root systemctl restart httpd

Aller à la page http://localhost/phpMyAdmin

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

  • phpinfo.php
<?php
  phpinfo();
?>
test http://localhost/phpinfo.php
  • mysql.php
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', 'bioinfo');

if ($dbh) {
   echo "Successfully connected to database
"; } else { echo "Connection to database failed
"; } var_dump($dbh); ?>
test http://localhost/mysql.php


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

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

Environnement pour Intégration de données hétérogènes

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

Utilisation de conda qui permet de créer différents environnement avec différentes versions de python, de R, ou de leurs librairies (parfois certaines libs sont en conflits ou ne fonctionnent pas si certaines autres sont installées).

environnements

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

conda create --name idh python=3.6

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

conda create --name idh
conda activate idh
conda install python=3.6

Liste des environnements

conda env list

Test de la version de python

python --version

Activation d'un environnement

conda activate idh

Test de la version de python

python --version

Pour quitter l'environnement

conda deactivate

channels

Comme pour les rpm, il existe différents dépôts pour les modules python ou les librairies R.

Ajout :

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

packages

Liste de packages installés :

conda list -n idh

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

$root dnf list cheat

Installation

$root dnf install cheat

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

cheat -e conda

à copier/coller dans vi

# install
dnf install conda

# links
https://opensource.com/article/19/4/managing-python-packages

# ENVS
####################################
conda info --envs
conda env list

# lists installed packages
conda list -n idh 

# remove environment
conda remove --name myenv --all

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

conda create --name newly_created_env --clone existing_env

# activate/deactivate
conda activate devenv

conda deactivate


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

# PACKAGES
######################################
conda list

conda search

conda install cheat

Visualisation

cheat conda

Librairies R pour IDH

Nous aurons besoin des librairies suivantes :

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

On en déduit la commande suivante :

conda activate idh
conda install r-tidyverse r-rmysql r-neo4r r-reticulate bioconductor-stringdb


Modules python pour IDH

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 :

conda activate idh
conda install scipy mycli igraph numpy pandas neo4j-python-driver


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 ~/.conda/envs/idh/activate.d/env_vars.sh (remplacer devenv par le nom de l'environnement concerné).

De même, pour supprimer ces variables lorsque l'environnement est désactivé, il faut placer les commandes dans le fichier ~/.conda/envs/devenv/deactivate.d/env_vars.sh

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.






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.

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

$guest sqldeveloper

Apparaît

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

Type the full pathname of a JDK installation (or Ctrl-C to quit), the path 
will be stored in /home/guest/.sqldeveloper/18.2.0/product.conf

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 /etc/alternatives/java_sdk_1.8.0. 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




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 conda deactivate
$guest conda create --name ml # pour machine learning
$guest conda activate ml 
$guest conda 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 2021-22.

L'atelier nécessite

  • UNIX/Linux or Mac OSX
  • python 3.6 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 conda deactivate
$guest conda create --name chipseq 
$guest conda activate chipseq 

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) avec d'autres librairies... On commence à installer tout ce qu'on peut pour conda :

$guest conda install fastqc cutadapt bwa macs2 deeptools igv r-dplyr r-pheatmap r-biocmanager bioconductor-GenomicRanges bioconductor-chippeakanno bioconductor-limma bioconductor-seqplots bioconductor-rtracklayer

(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('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")


TrimGalore

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 ~/bin

$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 

picard-tools/picard

Un autre programme non trouvé dans les dépôts de conda. C'est un programme Java, donc on télécharge le fichier .jar que l'on met dans le répertoire ~/bin et on créé un alias pour l'utiliser en ligne de commande plus "facilement" :

Téléchargement sur https://broadinstitute.github.io/picard/

Commandes :

$guest cd ~/bin
$guest wget https://github.com/broadinstitute/picard/releases/download/2.23.3/picard.jar
$guest echo "alias picard='java -jar $HOME/bin/picard.jar'" >> ~/.bashrc
source ~/.bashrc

L'alias créé permet l'utilisation en ligne de commande :

$guest which picard
$guest picard -h

Atelier Phylogénomique

Mauve / progressiveMauve

Site : http://darlinglab.org/mauve/download.html

$guest cd ~/Downloads
$guest wget http://darlinglab.org/mauve/snapshots/2015/2015-02-13/linux-x64/mauve_linux_snapshot_2015-02-13.tar.gz
$guest cd ~/bin
$guest tar tf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz
$guest tar xf ~/Downloads/mauve_linux_snapshot_2015-02-13.tar.gz
$guest ln -s mauve_snapshot_2015-02-13/Mauve

Tester en lançant la commande suivante depuis n'importe où dans un shell :

Mauve

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

artemis figtree

conda create -n phylog
conda info --envs
conda activate phylog
conda install artemis
conda install figtree

Atelier Etude du métabolisme

Cytoscape ainsi que des modules pythons dans un environnement conda dédié :

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

Test de Cytoscape :

$guest cytoscape.sh 


Atelier Paléogénomique

A compléter

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

mixOmics et mixKernel avec R

Atelier Modélisation

Charlie

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

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

Si ce n'est pas la dernière (1.8), passez à la dernière.

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

$guest java -jar setup_charliev2_0.jar

Si l'on choisit de l'installer dans /home/guest/bin/Charlie

Et vérifier l'installation

$guest cd ~/bin/Charlie
$guest ./run.sh

COPASI

Site http://copasi.org

Téléchargements : http://copasi.org/Download/

From binaries:

$guest wget https://github.com/copasi/COPASI/releases/download/Build-228/COPASI-4.29.228-Linux-64bit.tar.gz
$guest tar tf COPASI-4.29.228-Linux-64bit.tar.gz
$guest tar xf COPASI-4.29.228-Linux-64bit.tar.gz
$guest mv COPASI-4.29.228-Linux-64bit ~/bin/
$guest cd ~/bin
$guest cd COPASI-4.29.228-Linux-64bit/
$guest ll
$guest ll bin/
$guest ./bin/CopasiUI

Il manque une librairie :

$guest ldd share/copasi/lib/CopasiUI

Recherche et installation du RPM dont on a besoin :

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

Test

$guest ./bin/CopasiUI

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

$guest cd ~/bin
$guest ln -s COPASI-4.29.228-Linux-64bit/bin/CopasiUI
$guest cd

GINSim (TODO)

NE PAS FAIRE 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

$guest java -jar GINsim-2.4.jar 

Création d'un script pour le lancer en ligne de commande :

$guest mv GINsim-2.4.jar ~/bin/
$guest cd ~/bin
$guest echo '#!/bin/bash' > ginsim
$guest echo 'java -jar ~/bin/GINsim-2.4.jar' >> ginsim
$guest chmod +x ginsim

Test

cd
ginsim

GNA

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

Téléchargement

$guest wget http://ibis.inrialpes.fr/people/dejong/GNA/executables/GNA_unix_8_7_1_1.sh
$guest sh GNA_unix_8_7_1_1.sh

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
$guest tar tf snoopy-stable-linux.tgz 
$guest tar xf snoopy-stable-linux.tgz 

$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éé le lien symbolique et on ajoute le chemin des librairies dans ~/.bashrc :

$root ln -s /opt/snoopy2/bin/snoopy /usr/bin/snoopy
$guest echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/snoopy2/lib" >> ~/.bashrc

Test :

source ~/.bashrc # pour utiliser le nouveau .bashrc
snoopy

Atelier Génétique statistique

Création de l'environnement conda

$guest conda 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 pair 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

Imprimante/Scanner

L'installation dépend de la distribution ainsi que de la manière dont est gérée la file d'impression. Pour les systèmes les plus récents, l'installation n'est pas trop difficile mais pour ce qui est des imprimantes exotiques cela se gère au cas par cas.

Pour la salle P0, l'imprimante est une imprimante réseau (HP LaserJet M425dn).

Pour l'installer sur Fedora 25, à partir de la configuration :

  • Ajouter une imprimante
  • Network Printer
    • AppSocket/HP JetDirect
    • Host 195.220.42.131 ou printer s'il est présent dans /etc/hosts
    • Port: 9100
    • Connections: AppSocket/HP JetDirect
  • Driver: HP (recommended)
    • HP DeskJet 400 - CUPS+Gutenprint v5.2.14 Simplified ...

Ne pas imprimer la page de test sinon on va avoir 18 fois la même chose.

Interface Web de gestion de m'imprimante : http://printer/


Scanner


Configuration du PC intervenant

création du répertoire

mkdir /home/share
chmod 777 /home/share

installer samba

dnf list samba samba-client

éditer /etc/samba/smb.conf

[global]
 workgroup = WORKGROUP
 security = user
 passdb backend = tdbsam
 hosts allow = 195.220.42.131
 map to guest = Bad User
 printing = cups
 printcap name = cups
 load printers = yes
 cups options = raw

[Share]
 path = /home/share
 writable = yes
 guest ok = yes
 guest only = yes
 create mode = 0777
 directory mode = 0777

Activer le service et ouvrir le port

firewall-cmd --add-service=samba --permanent 
firewall-cmd --reload 
systemctl start smb nmb 
systemctl enable smb nmb 

Configuration du client

installer autofs

dnf list autofs

ajouter à /etc/auto.master

/share  /etc/auto.share

créer /etc/auto.share

scan	195.220.42.2:/home/share

Activer le service

systemctl start autofs
systemctl enable autofs

Tester

ls -l /share/scan/


Sauvegardes et restaurations

dd

Pour des tables de partition de type dos :

  • sauvegarde du Master Boot Record (MBR = secteur de démarrage)
dd if=/dev/sda of=mbr.dd bs=512 count=1
  • copie physique d'une partition
dd if=/dev/sda1 of=sda1.dd

Il y a aussi l'utilitaire dédié sfdisk mais il ne gère pas les tables de partition de type gpt :

backup:

sfdisk --dump /dev/sda > sda.partitions

restore (attention, peut rendre le disque inutilisable si mauvais fichier/device ou mauvaise manipulation) ; remplacer sdX par la bonne lettre:

sfdisk /dev/sdX < sda.partitions

Pour les tables de type gpt :

backup :

sgdisk -b sda.partitions /dev/sda

restore (attention, peut rendre le disque inutilisable si mauvais fichier/device ou mauvaise manipulation) ; remplacer sdX par la bonne lettre:

sgdisk -l sda.partitions /dev/sdX

tar

tar (tape archive)

avec l'option p pour préserver les permission (rwx), et on exclut certains répertoires (ex: home) pour ne garder que le systèmes (sans les répertoires spéciaux comme /proc ou /sys). Remarque : Il faudra recréer ces répertoires lors de la restauration.

  • On créé un répertoire pour l'archive
mkdir /mnt/backup
cd /mnt/backup
  • /dev/sda1 montée sur /boot
tar cpjf boot.sda1.tar.bz2 /boot
  • /dev/sda2 montée sur /
tar cpjf rootfs.sda2.tar.bz2  \
                       --exclude=/proc \
                       --exclude=/mnt \
                       --exclude=/sys \
                       --exclude=/lost+found \
                       --exclude=/media \
                       --exclude=/home \
                      /
  • /dev/sda4 montée sur /home
tar cpjf home.sda4.tar.bz2 /home

rsync

rsync permet de "synchroniser" un fichier ou une sous-arborescence de répertoire, c'est-à-dire faire un miroir exact ou bien recopier seulement ce qui a été modifié, ou bien rajouter ce qui a été modifié, ..., et ceci éventuellement entre deux machines.

Cela peut être utile pour faire une sauvegarde de ces données personnelles :

rsync --dry-run \
     --archive --hard-links --delete --acls --xattrs --one-file-system \
     --itemize-changes --stats -h \
     --exclude='*/.thumbnails' --exclude='*/Cache' --exclude='*/.cache' --exclude='*/.gvfs' 
     /home/ /mnt/home_backup/

TODO: transfert/clone du système sur une autre machine (table des partitions + rsync + live.iso ; live boot + chroot + grub2-mkconfig & grub2-install)

Backup de tout le système pour le cloner sur une autre machine

Sauvegardes du contenu des partitions :

$root mkdir -p /root/backup 
$root cd /root/backup
$root mkdir boot.efi boot rootfs home
$root rsync --dry-run --archive --hard-links --delete --acls --xattrs --one-file-system --itemize-changes --stats -h /boot/efi/ /root/backup/boot.efi/
$root rsync --dry-run --archive --hard-links --delete --acls --xattrs --one-file-system --itemize-changes --stats -h /boot/     /root/backup/boot/
$root rsync --dry-run --archive --hard-links --delete --acls --xattrs --one-file-system --itemize-changes --stats -h --exclude /root/backup /          /root/backup/rootfs/
$root rsync --dry-run --archive --hard-links --delete --acls --xattrs --one-file-system --itemize-changes --stats -h --exclude archive* --exclude Trash /home/ --exclude .cache         /root/backup/home/

Au démarrage, le bootloader (grub) et le système utilise les UUID des partitions pour les monter et démmarrer le système. Pour cet exercice, par facilité pour le transfert, nous allons imposer les mêmes UUID sur les partitions du clone (sinon après restauration, il s'agit d'aller éditer certains fichiers de configuration pour positionner les UUID des partitions du clone).

Sauvegardes des identifiants des partitions :

$ ls -l /dev/disk/by-uuid/| grep sda > /root/backup/uuids.txt

Restauration du clone sur une autre machine

Etapes :

  1. Création des partitions avec les mêmes UUID (sauf EFI et swap qui ne sont pas en ext4)
  2. Copies des fichiers (rsync)
  3. Installation du bootloader
  4. Redémarrage

Une étape supplémentaire sera nécessaire ici, car nous allons transférer pc2 sur pc15. Il faudra donc renommer la machine (hostname) et paramétrer le réseau.

Pour les différentes étapes, nous allons utiliser une clé USB-live.

Pour la création des partitions, on démarre sur la clé USB, on installe gparted et on créé les partitions sur le disque de la nouvelle machine :

  • nouvelle table de partition de type gpt
  • /dev/sda1 FAT16 200Mo avec les flags boot et esp (/boot/efi)
  • /dev/sda2 ext4 2Go (/boot)
  • /dev/sda3 ext4 75Go /
  • /dev/sda4 swap 9Go
  • /dev/sda5 ext4 le reste (/home)

Ensuite, on monte les partitions temporairement et on copie les fichiers

$root mkdir /a
$root mount /dev/sda1 /a    # montage de /boot/efi
$root mount /dev/sdc1 /mnt  # montage de la clé
$root rsync --dry-run --archive --hard-links --acls --xattrs --itemize-changes --stats -h /mnt/boot.efi/ /a/
$root umount /a
$root mount /dev/sda2 /a # montage de /boot
$root rsync --dry-run --archive --hard-links --acls --xattrs --itemize-changes --stats -h /mnt/boot/ /a/
$root umount /a
$root umount /mnt
$root mount /dev/sda3 /a # montage de /
$root mount /dev/sdc1 /mnt  # montage de la clé
$root rsync --dry-run --archive --hard-links --acls --xattrs --itemize-changes --stats -h /mnt/rootfs/ /a/
$root umount /a
$root umount /mnt
$root mount /dev/sda5 /a # montage de /home
$root mount /dev/sdc1 /mnt  # montage de la clé
$root rsync --dry-run --archive --hard-links --acls --xattrs --itemize-changes --stats -h /mnt/home/ /a/
$root umount /a
$root umount /mnt

Tout est copié, il s'agit maintenant de faire les modification pour l'UUID du swap et de la partition EFI, le nom de la machine et d'installer le bootloader.

Montage du système de fichier :

mount /dev/sda3 /a
mount /dev/sda2 /a/boot
mount /dev/sda1 /a/boot/efi
mount /dev/sda5 /a/home

Avec un éditeur de texte, il faut modifier le fichier fstab qui iondique où monter quelles partitions. Il faut aussi modifier /etc/hostname qui contient le nom de la machine.

L'installation du bootloader nécessite de changer la racine du système de fichier, il faut donc aussi monter les répertoires particuliers dev, proc et sys :

mount --bind /dev  /a/dev
mount --bind /proc /a/proc
mount --bind /sys  /a/sys

Changement de racine, génération du fichier de config de grub et installation du bootloader :

chroot /a
grub2-mkinit -o /boot/efi/EFI/fedora/grub.cfg

NFS (Network File System)

Côté serveur, on "exporte" un répertoire (et sa sous-arborescence).

Paquets nécessaires :

dnf list nfs-utils nfs-utils-lib

Le répertoire partagé pour cet exemple est le répertoire sur l'ordi de l'intervenant qui accueille les scans : scan@intervnant:/home/share

Fichier de configuration : /etc/exports sur intervenant

/home/share  195.220.42.0/255.255.255.0(rw,no_root_squash)

Cela indique que ce répertoire là peut-être contacté par un client nfs depuis toute machine du sous-réseau (toute machine dont l'IP commence par 195.220.42.).

Démarrage (manuel) du service

$root systemctl start nfs

Au démarrage du système

$root systemctl enable nfs


Côté client :

dnf list nfs-utils nfs-utils-lib

Création du répertoire où est monté l'export nfs pour cet exemple.

$root mkdir /mnt/scan

Montage de l'export nfs avec la commande mount

$root mount intervenant:/home/share /mnt/scan

En cas de succès, le contenu de /mnt/scan correspond à ce qu'il y a sur pc4. S'il y a des fichiers et/ou répertoires dans /mnt/scan du client (celui qui fait mount), ils ne sont plus accessibles après le montage.

En cas d'échec, on peut désactiver le pare-feu

$root firewall-config

Pour débugger (option -v)

$root mount -v intervenant:/home/share /mnt/scan

Pour démonter le répertoire :

$root umount /mnt/scan

Pour consulter les montages actifs :

mount

Pour simplifier l'opération de montage/démontage, on peut l'ajouter au fichier /etc/fstab.

Avertissement : si le fichier /etc/fstab n'est pas bon, le système peut ne plus démarrer et il faudra le réparer (avec un liveCD par exemple).

Edition de /etc/fstab et ajout de la ligne :

intervenant:/home/share   /mnt/scan   noauto,rw,intr,nfsver=3    0  0

A tester avant de redémarrer avec :

$root umount /mnt/scan # s'il était monté
$root mount -a
$root mount | grep scan

Si scan apparaît ou qu'on obtient une erreur avec mount -a il y a un problème à régler.

Options :

  • noauto : ne demande pas le montage au démarrage. C'est préférable car si mummer n'est pas allumée, le démarrage de votre ordi pourrait ne pas marcher.
  • rw : droits en lecture et en écriture
  • intr : permet au requête NFS d'être interrompue si on perd le serveur ou qu'il ne peut être contacter
  • nfsver= : spécifie quelle version du protocole utiliser

Si le fichier fstab est bon on peut monter/démonter le répertoire comme suit :

$root mount /mnt/scan
$root umount /mnt/scan

Arrêt ici, 3ème jour (9h30-17h30 12 septembre 2016).


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 


Algorithmique et complexité

Algobox https://www.xm1math.net/algobox/

Installation

$root dnf install algobox


Fouille de données

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

$guest conda deactivate
$guest conda 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

via dnf :

dnf module enable eclipse:latest
dnf install eclipse

PTUT

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 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

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

RNAseq

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

$guest conda deactivate
$guest conda create --name tdp python=2.7 fastqc cutadapt bwa igv macs2 samtools htslib abyss bcftools tabix boost snpeff   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

Test des librairies R :

$guest conda deactivate
$guest conda activate tdp
$guest R
library(a4Base)
library(DESeq2)
library(dplyr)
library(edgeR)
library(gplots)
library(HTSFilter)
library(limma)
library(mixOmics)
library(org.At.tair.db)
library(tidyr)
library(topGO)

sRNAseq

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

$guest conda deactivate
$guest conda 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é :

conda create -n evomol r-base r-ape
conda activate evomol
conda info --envs
rstudio

Message:

Rendering R Markdown documents requires updated versions of the following packages: base64enc, digest, evaluate, glue, highr, htmltools, jsonlite, knitr, magrittr, markdown, mime, rmarkdown, rprojroot, stringi, stringr, tinytex, xfun, yaml.

Do you want to install these packages now?
yes

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

A ajouter/à faire

  • slurm
  • différencier les commandes root/user
  • photo du groupe pour le site
  • gitlab
  • docker
  • sshfs
  • tmate

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



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)