silico.biotoul.fr
 

M2BBS - Atelier Système

From silico.biotoul.fr

Revision as of 15:17, 31 August 2017 by Barriot (Talk | contribs)
Jump to: navigation, search

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
  • Installation et configuration d'un cluster

Distributions linux populaires :

Principales étapes d'une installation typique :

  • récupération d'un live cd ou usb
  • gravure ou préparation du live media
  • démarrage du système depuis ce live media
  • procédure d'installation sur la machine. En général, les paramètres sont réduits au minimum pour faciliter l'adoption du système mais nous verrons que l'on peut organiser l'espace disque, la configuration réseau et les logiciels installés.
  • redémarrage du système
  • SELinux (Security Enhanced Linux)
  • installation des dernières mises à jour

1er jour (8h) : liveCD, configuration réseau, partionnement de disque, installation sur HD, mises à jour, ..., service httpd/mysql/php.


Lien : rappel de certaines commandes linux Linux_tips

Démarrage du liveCD/DVD

Création LiveCD
Pour 2017-18, il s'agit de Fedora core 25 64bits (https://dl.fedoraproject.org/pub/fedora/linux/releases/25/). La dernière est la 26 mais avec les versions les plus récentes, il y a souvent certains logiciels qui ne s'installent pas. Pour créer un tel CD/DVD, il faut télécharger son image : un fichier .iso correspondant à une image de CD 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, 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'un LiveUSB
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://fedoraproject.org/wiki/How_to_create_and_use_Live_USB

Démarrer le PC avec le liveCD
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

Installation du système

Après avoir démarré le liveCD, il suffit de lancer l'assistant d'installation. Choisissez la langue pour l’assistant, le clavier ; régler la date et l'heure.

Configuration réseau

Pour le protocole IPv4, il faut obtenir une adresse IP valide. Ceci se fait le plus souvent via le protocole DHCP, ou bien 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).

Il n'y a pas de serveur DHCP configuré pour la P0. Entrez donc l'IP 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: 195.220.59.2
DNS2: 195.220.59.6 

Il semblerait que ces deux DNS fonctionnent mal. Depuis la rentrée 2015, il a été ajouté le DNS de google 8.8.8.8

A ajouter au fichier /etc/hosts ;

195.220.42.2 intervenant
195.220.42.131 printer
195.220.42.146 router
195.220.42.4 pc4 pc4.p0
195.220.42.5 pc5 pc5.p0
195.220.42.6 pc6 pc6.p0
195.220.42.7 pc7 pc7.p0
195.220.42.8 pc8 pc8.p0
195.220.42.9 pc9 pc9.p0
195.220.42.10 pc10 pc10.p0
195.220.42.11 pc11 pc11.p0
195.220.42.12 pc12 pc12.p0
195.220.42.13 pc13 pc13.p0
195.220.42.14 pc14 pc14.p0
195.220.42.15 pc15 pc15.p0
195.220.42.16 pc16 pc16.p0
195.220.42.17 pc17 pc17.p0
195.220.42.18 pc18 pc18.p0
195.220.42.19 pc19 pc19.p0
195.220.42.20 pc20 pc20.p0
195.220.42.21 pc21 pc21.p0


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 |   | 11 |     | 20   21     15 |   | 19 |    |     |
  |    |   |    |     |                |   |    |    | 131 |
  |  6 |   | 10 |     |      2      14 |   | 18 |    |     |
  |    |   |    |     \-----------\    |   |    |    |     | 
e |  5 |   |  9 |                 | 13 |   | 17 |    \-----/
n |    |   |    |                 |    |   |    |
t |  4 |   |  8 |                 | 12 |   | 16 |
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-ce 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.

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 :

  • 1: 500Mb ext4 /boot
  • 2: 100Gb ext4 /
  • 3: 4Gb swap (pour pouvoir suspendre/hiberner la machine, il faut au une taille au moins égale à la RAM)
  • 4: ce qui re 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

Doumentation

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

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

gestionnaire de paquets

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

  • dnf (fedora >= 22)
  • yum (fedora <22, centos)
  • rpm
  • apt (ubuntu)

dnf et yum peuvent être utilisés en parallèle mais mieux vaut n'en utiliser qu'un http://dnf.readthedocs.io/en/latest/user_faq.html

Ajout des sources 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

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)

dnf list kernel-devel
  • Si il apparaît dans Installed Packages : rien à faire à moins qu'il y ait une version plus récente :
dnf upgrade kernel-devel
  • Si il apparaît dans Available Packages :
dnf install kernel-devel


Quand on ne connaît pas le nom du paquet : search. Cela a pour effet de chercher dans la description.

dnf search apache

Pour obtenir la description :

dnf info httpd

Pour chercher quels paquets contiennent un fichier donné :

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

rpm -qpl http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.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 :

vi /etc/selinux/config

Remplacer :

SELINUX=enforcing

par :

SELINUX=disabled

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

Puis redémarrer la machine.

Variables d'environnement

Le sccript ~/.bashrc est chargé par tout processus bash à son démarrage. Cela permet de personnaliser certaines choses comme par exemple

  • la variable PATH qui contient une liste de répertoires où sont recherchées les commandes
  • les alias qui permettent de définir des commandes en raccourcis d'autres

Pour afficher le contenu d'une variable d'environnement :

echo $PATH

Pour le modifier :

PATH=$PATH:~/bin

Ajouter ~/bin à la variable d'environnement PATH dans .bashrc (vi ~/.bashrc) si ce répertoire n'était pas déjà présent dans la variable PATH.

Ajouter un alias, par exemple :

alias l='ls -lh'



Installation d'autres logiciels

Il peut être plus simple de tout mettre dans un script et de le lancer en tant que root mais il faut vérifier avant que les commandes sont bonnes :

#!/bin/bash
 
# dnf RPMs #
############
echo kernel-devel
echo dnf -y install kernel-devel
dnf -y install kernel-devel
echo
 
echo geany
echo dnf -y install geany-plugins-spellcheck.x86_64 geany.x86_64 geany-plugins-geanyprj.x86_64 
dnf -y install geany-plugins-spellcheck.x86_64 geany.x86_64 geany-plugins-geanyprj.x86_64 
echo
 
echo process, network, IO monitors
echo dnf -y install htop glances iotop iftop atop sysstat
dnf -y install htop glances iotop iftop atop sysstat
echo
 
echo net
echo dnf -y install wget telnet firewall-config
dnf -y install wget telnet
echo
 
echo libreoffice
echo dnf -y install libreoffice
dnf -y install libreoffice
echo
 
echo transfer de fichier
echo dnf -y install filezilla
dnf -y install filezilla
echo
 
echo "image manipulation (équivalent de photoshop et illustrator en FOSS)"
echo dnf -y install gimp.x86_64 inkscape.x86_64
dnf -y install gimp.x86_64 inkscape.x86_64
echo
 
echo compilateur C
echo dnf -y install gcc automake autoconf
dnf -y install gcc
echo
 
echo gnome configuration
echo dnf -y install gnome-tweak-tool
dnf -y install gnome-tweak-tool
echo

Vous pouvez aussi copier/coller une à une les commandes dnf.

depuis le code source

Exemple avec HMMER http://hmmer.org/

Procédure typique configure make install.

En général, on dispose d'une archive du code au format .tar.gz ou .tgz

On vérifie le contenu de l'archive

tar tzf hmmer...tar.gz

ou avec la dernière version

tar tf hmmer...tar.gz

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

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

Extraction du contenu :

tar xzf hmmer...tar.gz

ou avec la dernière version

tar xf hmmer...tar.gz
  • ./configure permet de tester l'environnement et de configurer la compilation, notamment où installer les fichiers et où trouver les librairies partagées. ./configure --help pour voir toutes les options. Si l'on ne dispose pas des droits administrateur, on ne peut pas l'installer ailleurs que dans son espace utilisateur. En général, il suffit de spécifier ./configure --PREFIX=~/destination.
  • make lance la compilation
  • make test ou make check (parfois optionnel ou absent) vérifie le bon fonctionnement de ce qui a été compilé
  • 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.

dnf list gcc
dnf install gcc

D'habitude, les programmes d'HMMER sont installéq dans /usr/local/bin. Vérification :

ll /usr/local/bin

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.

git est normalement déjà installé.

user# git clone https://github.com/jahendrie/cheat.git
cd cheat
user# cp -r data ~/.cheat
mkdir ~/bin
cp src/cheat.sh ~/bin/cheat
cheat -L
cheat dnf

Installation/configuration de services

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 :

systemctl list-unit-files

Pour le seveur Web apache (httpd) :

systemctl status httpd

On voit qu'il apparaît mais n'est pas activé au démarrage. Y a-t-il un serveur web ? Essayer http://localhost dans un navigateur.

Démarrage

systemctl start httpd

Pour qu'il soit lancé au démarrage :

systemctl enable httpd

Vérification :

systemctl list-unit-files | grep httpd


apache/httpd

Pour changer la configuration du serveur Web, il faut éditer les fichiers dans /etc/httpd puis redémarrer le service

systemctl restart httpd

ou recharger la configuration

systemctl reload httpd


MySQL

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

dnf install mariadb-server.x86_64 mariadb-libs.x86_64 mariadb-devel.x86_64 mariadb.x86_64

Démarrage du serveur

systemctl start mariadb

Configuration du serveur : il faut faire certains paramétrage juste après l'installation du serveur (mot de passe, et autres) :

/usr/bin/mysql_secure_installation

Pour les question suivantes :

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

Démarrage au boot

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

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 
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');
var_dump($dbh);
test http://localhost/mysql.php


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

R, librairies et RStudio

dnf install R.x86_64 

Ensuite, pour les librairies R, on utilise

R libraries

En cas de problème, par exemple si une librairie est dite non disponible, par exemple pour la version de R trop récente, essayer à partir d'un autre site miroir :

chooseCRANmirror()

et choisir un autre site. Cela peut aussi être dû à des erreurs de connexion en https, dans ce cas sélectionner le dernier HTTP mirrors

CRAN

  • lattice
  • reshape et/ou reshape2
  • dplyr
  • tidyr
  • ggplot2

Bioconductor

  • chipseq
  • GenomicRanges
  • edgeR
  • DESeq2
  • mixOmics


prérequis :

dnf install libxml2-devel mesa-libGL-devel mesa-libGLU-devel

packages CRAN R nécessaires :

root> R
R> install.packages( c('lattice','ggplot2','reshape2','rgl','dplyr','tidyr') )

Pour RMarkdown, il faut mettre à jour certaines librairies :

R> install.packages(c('evaluate', 'formatR', 'highr', 'markdown', 'yaml', 'htmltools', 'caTools', 'bitops', 'knitr', 'rmarkdown'), repos='https://cran.univ-paris1.fr/')

packages Bioconductor R nécessaires :

R> source('http://bioconductor.org/biocLite.R')
R> biocLite( c('chipseq','GenomicRanges','edgeR','genefilter','geneplotter','DESeq2','mixOmics') )

RStudio

Le RPM est à télécharger sur le site RStudio : https://www.rstudio.com/products/rstudio/download/#download puis

dnf -y install rstudio-1.0.153-x86_64.rpm

Documents utiles pour RStudio et RMarkdown sur http://rmarkdown.rstudio.com/ et http://rmarkdown.rstudio.com/lesson-1.html (RMarkdown cheatsheet et RMarkdown reference guide)

Prérequis pour générer du PDF:

dnf install texlive-framed texlive-titling

Perl et BioPerl

D'après le site http://bioperl.org/INSTALL.html et l'installation avec cpanminus.

Prérequis

dnf install perl-App-cpanminus

Modules Perl : on utilise dnf (préférable pour les mises à jour) ou le module CPAN

  • dnf list perl-*

Puis depuis le shell :

cpanm Bio::Perl
cpanm Mail::Sender

Ancienne méthode : Prérequis BioPerl :

dnf install perl-YAML perl-Term-ReadLine-Gnu perl-Test-Most perl-CPAN-DistnameInfo 
  • ou le CPAN:
dnf install perl-CPAN
perl -MCPAN -e shell
m BioPerl
install LWP
d /bioperl/
install CJFIELDS/BioPerl-1.6.924.tar.gz


Conseil concernant les questions lors de la 1ère configuration de CPAN :

  • Would you like to configure as much as possible automatically? [yes] yes

Conseils concernant les questions lors de l'installation de LWP :

  • Should I do external tests?
These test will detect if there are network problems and fail soft,
so please disable them only if you definitely don't want to have any
network traffic to external sites. [Y/n] n
  • These tests *will* *fail* if you do not have network connectivity. [n] n

Conseils concernant les questions lors de l'installation de BioPerl :

  • Do you want to run the Bio::DB::GFF or Bio::DB::SeqFeature::Store live database tests? y/n [n] n
  • Install [a]ll BioPerl scripts, [n]one, or choose groups [i]nteractively? [a] a
  • Do you want to run tests that require connection to servers across the internet
(likely to cause some failures)? y/n [n] n
  • Do you want to install 'xml_pp' (XML pretty printer)? [y] y
  • Do you want to install 'xml_grep' (XML grep - grep XML files using XML::Twig's subset of XPath)? [y] y
  • Do you want to install 'xml_split' (split big XML files)? [y] y
  • Do you want to install 'xml_merge' (merge back files created by xml_split)? [y] y
  • Do you want to install 'xml_spellcheck' (spellcheck XML files skipping tags)? [y] y
  • Configuring G/GO/GOZER/mod_perl-1.31.tar.gz with Makefile.PL
Enter `q' to stop search
Please tell me where I can find your apache src
[../apache_x.x/src] q

Configuration du firewall

C'est maintenant avec firewall-config. Il faudrait que les services suivants soient accessibles dans la Configuration permanente :

  • http et https
  • mysql
  • nfs
  • ssh

Autres logiciels spécifiques

Zotero

A partir de https://www.zotero.org : Cliquer sur Download puis Installer le plug-in firefox (à gauche).


samtools

prérequis : curses.h

pour trouver le rpm à installer :

dnf provides */curses.h

c'est bien sûr ncurses-devel donc :

dnf install ncurses-devel


La dernière version à récupérer sur http://www.htslib.org/download/

wget https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2
tar xjf samtools-1.3.1.tar.bz2 
cd samtools-1.3.1
make
make install

tabix

wget https://github.com/samtools/htslib/releases/download/1.3.1/htslib-1.3.1.tar.bz2
tar xjf htslib-1.3.1.tar.bz2
cd htslib-1.3.1
./configure
make
make install

bwa

Chez sourceforge, la liste des versions disponibles : https://sourceforge.net/projects/bio-bwa/files/

On récupère la dernière :

wget downloads.sourceforge.net/project/bio-bwa/bwa-0.7.15.tar.bz2
tar tjf bwa-0.7.15.tar.bz2
tar xjf bwa-0.7.15.tar.bz2
cd bwa-0.7.15
make
cd ~/bin
ln -s ~/install/bwa-0.7.15/bwa
cd
bwa
ldd ~/bin/bwa # vérification des librairies utilisées

MACS2

Prérequis:
A lire dans https://github.com/taoliu/MACS puis le README. Il faut apparemment Python 2.7, Numpy (>=1.6) gcc, Cython (>=0.18).

pip list

numy 1.9.2 est installé. Mise à jour de pip, un peu vieux :

pip install --upgrade pip

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 :

pip install Cython --install-option="--no-cython-compile"

Installation :
Et encore d'après le README, on utilise ensuite pip pour installer MACS2, mais avant cela il manque encore une librarie (python-devel) :

dnf install python-devel
pip install MACS2

fastqc

Le site http://www.bioinformatics.babraham.ac.uk/projects/fastqc/

Les liens de téléchargements http://www.bioinformatics.babraham.ac.uk/projects/download.html#fastqc

Les instructions pour l'installation http://www.bioinformatics.babraham.ac.uk/projects/fastqc/INSTALL.txt

Il faut notamment java >= 1.6

guest> wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
unzip -l fastqc_v0.11.5.zip
unzip fastqc_v0.11.5.zip # car tout est dans un sous-répertoire
cd FastQC
chmod +x fastqc
./fastqc

Ca marche !

cd
mv Downloads/FastQC ~/bin/
cd ~/bin
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 car la plus récente nécessite de s'enregistrer. Donc afin d'éviter enregistrement jdk6u24 a été pris http://download.oracle.com/otn/java/jdk/6u24-b07/jdk-6u24-linux-x64-rpm.bin

Il faut lancer l'exécutable une fois téléchargé pour l'installation

root> ./jdk-6u24-linux-x64-rpm.bin

Cela installe Java dans /usr/java

Ensuite, il faut configurer le système pour choisir la nouvelle version d'installée avec la commande alternatives.

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           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.fc23.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           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.fc23.x86_64/jre/bin/java
   2           /usr/java/jdk1.6.0_24/jre/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 man alternatives. pour --install l'ordre des paramètres est :

alternatives --install  link  name  path  priority
  • link est la commande à installer (obtenue avec de which java)
  • name est le nom de l'alternative utilisée dans alternatives --config par exemple
  • path est le chemin de l'exécutable (que l'on vient d'installer)
  • priority 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) :

wget http://data.broadinstitute.org/igv/projects/downloads/IGV_2.3.81.zip
unzip -l IGV_2.3.81.zip
unzip IGV_2.3.81.zip
cd IGV_2.3.81
./igv.sh
cd ~/bin
ln -s ~/Downloads/IGV_2.3.81/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

Python modules

python 3 + libs : theano, matplotlib

dnf install python3-theano python3-matplotlib

Arrêt ici 2èmé jour (9h30 - 18h00) 07 sep 2016

Scala IDE

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

GNA

Nécessite Java 1.6, pour sélectionner la version de java :

root> alternatives --config java

Installé dans /home/guest/bin/GNA_8.4.0

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)

Pour le lancer de n'importe où (guest) :

GNA

COPASI

Site http://copasi.org/

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

From binaries:

wget https://github.com/copasi/COPASI/releases/download/Build-104/COPASI-4.16.104-Linux-64bit.tar.gz
tar tzf  COPASI-4.16.104-Linux-64bit.tar.gz COPASI-4.16.104-Linux-64bit/
tar xzf  COPASI-4.16.104-Linux-64bit.tar.gz COPASI-4.16.104-Linux-64bit/
cd COPASI-4.16.104-Linux-64bit/
ll
ll bin/
bin/CopasiUI

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 :

root> dnf provides */libpng12.so.0

Il faut donc installer libpng12 :

root> dnf install libpng12

Ca marche donc il est déplacé dans /home/guest/bin/

mv ~/Downloads/COPASI-4.16.104-Linux-64bit ~/bin/

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

ln -s ~/bin/COPASI-4.16.104-Linux-64bit/bin/CopasiUI ~/bin/COPASI
cd
COPASI

Snoopy

wget http://www-dssz.informatik.tu-cottbus.de/track/download.php?id=176 -O snoopy-stable-linux-ubuntu64-2016-07-03.tgz
tar tzf snoopy-stable-linux-ubuntu64-2016-07-03.tgz
tar xzf snoopy-stable-linux-ubuntu64-2016-07-03.tgz 
cd snoopy2
./bin/snoopy
ldd ./bin/snoopy
# Problème : il manque des librairies partagées
ls -lh lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/Downloads/snoopy2/lib
./bin/snoopy

Ca fonctionne, on créé le lien symbolique et on le déplace dans bin et on ajoute le chemin des librairies dans ~/.bashrc :

cd ..
mv snoopy2 ~/bin
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 :

bash # 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

VirtualBox 5.1.4 pour Fedora 22

wget http://download.virtualbox.org/virtualbox/5.1.4/VirtualBox-5.1-5.1.4_110228_fedora22-1.x86_64.rpm
dnf install VirtualBox-5.1-5.1.4_110228_fedora22-1.x86_64.rpm

En le lançant en ligne de commande, il y a un message indiquant qu'il manque des paquets :

root> dnf install kernel-*

Et ensuite, il faut reconfigurer VirtualBox

root> /sbin/vboxconfig

pymol

Site https://www.pymol.org/

root> dnf install freeglut-devel glew-devel
root> python setup.py build install


VMD

cd vmd-1.9.2
less README
root> ./configure
root> cd src
root> make install
guest> vmd


Qt 4.8

Il est déjà installé avec cette version (au 12 septembre 2016) :

dnf list qt # ou
dnf info 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

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 sous CentOS6.7:

yum install cups system-config-printer
service cups start

Puis dans le menu System - Administration - Printing : connect (localhost), add network printer - AppSocket/HP JetDirect (IP: 195.220.42.131, port: 9100), HP - LaserJet PCL 4/5 (recommended)


Scanner

  • Configurer pour l'ordi de David mummer (il faut qu'il soit allumé).
  • Sur le scanner faire Numériser puis Numériser vers un ordi
  • le fichier PDF se retrouve sur mummer
  • pour le récupérer via nautilus
    • Connect to server...
    • smb://mummer
    • aller dans le répertoire scan (utilisateur guest avec son mot de passe)



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

sfdisk /dev/sda < 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):

sgdisk -l sda.partitions /dev/sda

tar

tar (tape archive)

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

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

rsync

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

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

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

NFS (Network File System)

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

Paquets nécessaires :

dnf list nfs-utils nfs-utils-lib

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

Fichier de configuration : /etc/exports sur mummer

/home/guest/scan  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 mummer:/home/guest/scan /mnt/scan

En cas de succès, le contenu de /mnt/scan correspond à ce qu'il y a sur mummer. 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 mummer:/home/guest/scan /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 :

mummer:/home/guest/scan   /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).


oublis

  • LVM puis parted, gparted
  • gnome software / packages / yumex /
  • packages installed with dnf: htop, glances, gimp, inkscape, tweak-tool...
  • photo du groupe pour le site

A ajouter

  • jupyter
  • Neo4j
  • cytoscape ?
  • igraph ?
  • scikitlearn ...
  • firebug, dictionnaries?
  • Sun Grid Engine (now Oracle ?)
  • wps office
  • other linux desktop

Liens et autres