silico.biotoul.fr
 

M2BBS - Atelier Système

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (depuis un dépôt)
m (Imprimante)
Line 468: Line 468:
  yum install cups system-config-printer
  yum install cups system-config-printer
  service cups start
  service cups start
-
Puis dans le menu System - Administration - Printing : connect (localhost), add network printer (IP: 195.220.42.131), HP - LaserJet PCL 4/5 (recommended)
+
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)
 +
<!--
connecté sur le serveur vulcain qui gère donc la file d'impression. L'installation est détaillée sur la page :
connecté sur le serveur vulcain qui gère donc la file d'impression. L'installation est détaillée sur la page :
[http://www.m2p-bioinfo.ups-tlse.fr/index.php/Salle#Printer_HP_LaserJet_2420d Salle P0 HP LasetJet 2420d]
[http://www.m2p-bioinfo.ups-tlse.fr/index.php/Salle#Printer_HP_LaserJet_2420d Salle P0 HP LasetJet 2420d]
 +
-->
= Sauvegardes et restaurations =
= Sauvegardes et restaurations =

Revision as of 16:14, 8 September 2015

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
  • installation des dernières mises à jour

1er jour (7h) : liveCD, configuration réseau, partionnement de disque, installation sur HD, service httpd, mises à jour


Lien : rappel de certaines commandes linus Linux_tips

Contents

Démarrage du liveCD/DVD

Démarrer le PC avec le liveCD.

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 (dépend de chaque ordi). On obtient alors soit le menu de démarrage soit le paramétrage du BIOS.

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 4)
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) les dans des répertoires dans /mnt pour explorer les systèmes de fichiers qu'elles contiennent.
  • exercices :
    • création, formatage, montage, démontage, suppression de partitions aux différents format et utilisation 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 :

195.220.42.132 blast
195.220.42.133 fasta
195.220.42.134 mauve
195.220.42.135 meme
195.220.42.136 glam
195.220.42.137 hmmer
195.220.42.138 mummer
195.220.42.139 trimal 
195.220.42.140 phyml
195.220.42.141 mafft
195.220.42.142 muscle
195.220.42.143 paml
195.220.42.144 newbler
195.220.42.145 gna

et pour le reste 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 

Remarques : Plage d'adresses réservées à la salle P0 (pas de DHCP) : 195.220.42.131 .. 195.220.42.146 (la dernière correspond au routeur wifi).

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 :

fdisk parted palimpsest (ou gnome-disks) mkfs[.ext4|.ext3|.ext2|.ntfs|...] resize2fs resizepart pvdisplay pvcreate vgdisplay vgcreate lvdisplay lvcreate mount umount ...
/etc/fstab /etc/mtab /proc/partitions /dev/sd* /dev/hd* /dev/mapper/* /dev/disk/

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 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ù son recherchée 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).

Ajouter un alias, par exemple :

alias l='ls -lh'

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 utilitaires package-kit/yum :

root> yum list updates
root> yum update

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)

yum

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)

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


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

yum search apache

Pour obtenir la description :

yum info httpd

Pour chercher quels paquets contiennent un fichier donné :

yum provides */sbin/httpd

Ajout d'une source : EPEL (Extra Packages for Enterprise Linux)

Afficher le contenu d'un rpm

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

Installation

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

On peut maintenant installer geany :

yum list geany
yum install geany.x86_64

Installation d'autres logiciels

process monitor

yum install htop 

net

yum install wget telnet

libreoffice

yum install libreoffice

transfer de fichier

yum install filezilla

image manipulation (équivalent de photoshop et illustrator en FOSS)

yum install gimp.x86_64 inkscape.x86_64

depuis le code source

Exemple avec HMMER http://hmmer.janelia.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

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

Extraction du contenu :

tar xzf 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.

Le script ./configure devrait se plaindre de ne pas de disposer de compilateur C. Il faut donc l'installer.

yum list gcc
yum install gcc

depuis un dépôt

Les plus utilisés sont les gestionnaires git et svn. Ils permettent notamment de faire le suivi de modifications de code source.

root# yum install git
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 yum

Installation/configuration de services

Commandes :

  • chkconfig et service (CentOS, vieilles fedora)
  • systemctl (fedora plus récentes)

La commande chkconfig permet de gérer quels services sont disponibles dans quel runlevel

Sans paramètre, elle liste les services installés :

chkconfig

On voit que apache (httpd) n'apparaît pas. Y a-t-il un serveur web ? Essayer http://localhost dans un navigateur.

Installation :

yum install httpd

Démarrage

service httpd start

Etat

service httpd status

Si l'on redémarre la machine le service n'est pas automatiquement démarré :

chkconfig --list httpd

On voit que tout est à off

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

chkconfig httpd on

Vérification :

chkconfig --list httpd

apache/httpd

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

service httpd restart

ou recharger la configuration

service httpd reload


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

yum install mysql.x86_64 mysql-devel.x86_64 mysql-server.x86_64

Démarrage

service mysqld start

Changement du mot de passe administrateur

root# mysqladmin -u root password 'bioinfo'
root# mysqladmin -u root -h localhost.localdomain password 'bioinfo' -p

Démarrage au boot

chkconfig mysqld on

Interface Web d'administration et de gestion

yum install php phpMyAdmin
service httpd restart

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


R

yum install R.x86_64

Ensuite, pour les librairies R, on utilise

Perl

Modules Perl : on utilise yum ou le CPAN

  • yum list perl-*

Prérequis BioPerl:

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

Autres logiciels spécifiques


yum install boost.x86_64 boost-devel.x86_64
prérequis: yum install sqlite-devel.x86_64
wget https://github.com/samtools/samtools/releases/download/1.2/samtools-1.2.tar.bz2
tar tjf samtools-1.2.tar.bz2
tar xjf samtools-1.2.tar.bz2
cd samtools-1.2
make
# curses.h introuvable !
yum provides */curses.h
yum install ncurses-devel.x86_64
wget https://github.com/samtools/htslib/releases/download/1.2.1/htslib-1.2.1.tar.bz2
tar tjf ...
tar tjf bwakit-0.7.12_x64-linux.tar.bz2
vérification des librairies partagées
ldd bwa.kit/bwa
vérification du contenu de l'archive
unzip -l snpEff_latest_core.zip
extraction du contenu
unzip snpEff_latest_core.zip
test
cd snpEff
java -jar snpEff.jar


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

  • VirtualBox (Oracle pas rpmfusion)
  • pymol (Pb de compilation)
yum install freeglut.x86_64 freeglut-devel.x86_64 python-pmw python-devel.x86_64 glew.x86_64 glew-devel.x86_64
  • VMD (registration and licence ?)

  • Webmin (interface web pour l'administration du système)


Imprimante

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)


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.

mkdir /clone
cd /clone
tar cpjf rootfs.tar.bz2  \
                       --exclude=/proc \
                       --exclude=/mnt \
                       --exclude=/sys \
                       --exclude=/lost+found \
                       --exclude=/media \
                       --exclude=/home \
                       --exclude=/clone \
                       --exclude=/run/media/guest \
                      /

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/