Logo carnetderootxzz@carnetderoot.net"La simplification est la sophistication suprême" - Léonard De Vinci
jeudi 18 octobre 2018

:: CloudSHell2 - Installation d'Archlinux ::

Détails techniques

Introduction

Toutes les opérations décrites ci-dessous ont été faites à partir d'un portable sous Archlinux et du reader/writer eMMC se branchant sur le port SD (via un adaptateur micro-SD).

La commande lsblk permet de récupérer le nom du périphérique, pour ma part /dev/mmcblk0

Préparation du module eMMC

Remise à zéro

$ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=8

Partitionnement

$ sudo fdisk /dev/mmcblk0

Créer une nouvelle partition primaire vide, en tapant les commandes suivantes :

  1. o : crée une nouvelle table de partition DOS
  2. n : crée une nouvelle partition avec les paramètres suivants :
    • p : type de partition primaire
    • 1 : première partition
    • 4096 : premier secteur de la partition
    • ENTER : dernier secteur de la partition (defaut)
  3. w : écrit la table de partition et quitte

Création du système de fichiers ext4

$ sudo mkfs.ext4 /dev/mmcblk0p1

Montage du système de fichiers

$ mkdir root  
$ sudo mount /dev/mmcblk0p1 root

Téléchargement et extraction du système de fichier root

$ wget http://os.archlinuxarm.org/os/ArchLinuxARM-odroid-xu3-latest.tar.gz  
$ sudo bsdtar -xpf ArchLinuxARM-odroid-xu3-latest.tar.gz -C root

Flash du bootloader

$ cd root/boot/
$ sudo ./sd_fusing.sh /dev/mmcblk0

Démontage du système de fichiers

$ cd ../..
$ sudo umount root

Premier démarrage du système

  1. Insérer le module eMMC dans son emplacement sur la carte XU4
  2. Connecter le câble ethernet et brancher l'alimentation
  3. Attendre la fin du démarrage du système puis se connecter en ssh avec le user alarm et le mot de passe alarm

    $ ssh alarm@tyr.asgard.lan
  4. Ouvrir une session root avec le mot de passe root

    $ su - root

Initialisation

Création du trouseau de clés et enrichissement des certificats des dépôts Arch Linux ARM

# pacman-key --init
# pacman-key --populate archlinuxarm

Gestion de paquets

Mise à jour du système

# pacman -Syu

Paquets supplémentaires

# pacman -S vim

Configuration réseau

Nom d'hôte

  • /etc/hostname

    tyr
  • /etc/hosts

    127.0.0.1       localhost
    ::1             localhost
    127.0.1.1       tyr.localdomain tyr

Adresse IP

Comme il s'agit d'un serveur installé dans mon réseau local, je préfère lui assigner une adresse ip fixe tout en gardant la possibilité de demander une adresse ip dynamique (si je le déplace par exemple). J'ai donc créé un profil statique en ajoutant les lignes suivantes à la fin du fichier /etc/dhcpcd.conf :

  • /etc/dhcpcd.conf

    # Static profile
    interface eth0
    static ip_address=192.168.0.2/24 
    static routers=192.168.0.254
    static domain_name_servers=192.168.0.254 8.8.8.8

Références


mercredi 03 octobre 2018

:: Machines à commandes numériques (CNC) ::

Références

Machines CNC

Magasins en ligne

Logiciels

  • SketchChair : Outil open-source de design et de conception.

Designs

Matériaux

Présentation de l'OX CNC Router

L'OX CNC Machine est une machine-outil à commande numérique permettant la découpe de différentes matières : bois, plexi, autres.
Elle possède une structure solide et reste relativement facile à construire soi-même. Qui plus est, elle est facilement dimensionnable pour convenir à la plupart des besoins.

En l'occurence les besoins de référence sont la découpe de panneaux de bois de tailles standards.

Modèle XL

Dimensions de la machine
(mm)
Espace de travail
(mm)
X 2500 2320
Y 1500 1270
Z 250 75

Note : Ce modèle nécessite de raccorder 2 V-Slot 20x80 bout à bout (1500mm + 750mm)

Modèle L

Dimensions de la machine
(mm)
Espace de travail
(mm)
X 1500 1320
Y 1000 770
Z 230 75

Exemple de modèles de deux tailles différentes

OX CNC Machine

Liste des composants

Elément Quantité Description Source Commentaires Prix unitaire Coût total
Nema 17 1 Nema 17 Stepper Motor http://openbuildspartstore.com/nema-17-stepper-motor/
http://reprap.me/hardware/nema17.html
http://www.omc-stepperonline.com/3d-printer-nema-17-stepper-motor-59ncm84ozin-2a-17hs192004s-p-18.html
Moteur pas-à-pas pour l'axe Z 15.40€ 15.40€
Nema_23 3 Nema 23 Stepper Motors http://openbuildspartstore.com/nema-23-stepper-motor/
http://www.omc-stepperonline.com/nema-23-cnc-stepper-motor-28a-126nm1785ozin-23hs222804s-p-108.html
Moteurs pas-à-pas pour les axes X et Y 21.56€ 64.68€
V-Slot_20x40 1 V-Slot 20x40mm (1500) http://openbuildspartstore.com/v-slot-linear-rail/ Support central de la table (710mm) Back Brace (500) Z axis (180) 17.16€ 17.16€
V-Slot_20x60 1 V-Slot 20x60mm (1000) http://openbuildspartstore.com/v-slot-linear-rail/ Couper en 2 parties de 500mm pour l'axe X (collées l'une à l'autre) 13.64€ 13.64€
V-Slot_20x80 1 V-Slot 20x80mm (1500) http://openbuildspartstore.com/v-slot-linear-rail/ Couper en 2 parties de 750mmm 26.40€ 26.40€
Xtreme_Solid_V_Wheel 28 Xtreme Solid V Wheel Kits http://openbuildspartstore.com/openbuilds-xtreme-solid-v-wheel-kit/ 5.24€ 146.72€
Eccentric_Spacers 13 Eccentric Spacers http://openbuildspartstore.com/eccentric-spacers/ 1.76€ 22.88€
90_Degree_Corner_Bracket 8 Cast - 90 Degree Corner Bracket http://openbuildspartstore.com/cast-90-degree-corner-bracket/ Utilisés pour fixer les 2 V-Slot (20x60) de l'axe X sur les plaques OX servant elles-mêmes à fixer l'ensemble sur les axes Y 1.32€ 10.56€
5_Hole_90_Degree_Joining_Plate 4 5 Hole 90 Degree Joining Plate http://openbuildspartstore.com/5-hole-90-degree-joining-plate/ Assemblage des 4 coins de la machine 4.22€ 16.88€
Universal_L_Brackets_Double 4 Universal L Brackets (Double) http://openbuildspartstore.com/universal-l-brackets/ Utilisés pour la fixation des supports de table (V-Slot 20x40) 1.10€ 4.40€
Aluminium_Spacers_1-1_2inch 3 Aluminum Spacers (1-1/2 inch) http://openbuildspartstore.com/aluminum-spacers/ Entretoises dédiées au moteur Nema 17 de l'axe Z 0.66€ 1.98€
5mm_washer_shim 40 Precision Shim - 10x5x1mm http://openbuildspartstore.com/precision-shim-10x5x1mm/ Pour toutes les roues, ainsi que pour l'axe X 0.22€ 8.80€
Threaded_Rod_Plate 2 Threaded Rod Plate http://openbuildspartstore.com/threaded-rod-plate/ Plaque de fixation du moteur de l'axe Z 7.00€ 14.00€
Coupling_Flex_5mm_x_8mm 1 5mm x 8mm Flexible Coupling http://openbuildspartstore.com/5mm-8mm-flexible-coupling/ Coupleur pour le moteur et la tige filetée de l'axe Z
8mm_Metric_Lead_Screw 1 8mm Threaded Rod http://openbuildspartstore.com/8mm-metric-lead-screw/ Tige filetée de l'axe Z
Lock_Collar 2 Lock Collar (8mm) http://openbuildspartstore.com/lock-collar/
688Z_Ball_Bearing_8x16x5 2 Bearing ID 8mm http://openbuildspartstore.com/688z-ball-bearing-8x16x5/ Roulements à billes pour l'axe Z
GT3_Timing_Belt 7 GT3 Timing Belt - a.k.a. GT2 (3mm) http://openbuildspartstore.com/gt2-3mm-timing-belt-by-the-foot/ Courroie dentée pour les axes X et Y
Attention à bien estimer la longueur (prévoir une marge)
Socket_Head_Cap_Screw_M5 4 Socket Head Cap Screw M5 - 65mm http://www.mcmaster.com/#91290a270/=qdro90 Fixation des roues du chariot de l'axe X
Acme_Nut_Block_8mm 1 Acme Nut Block 8mm http://openbuildspartstore.com/8mm-acme-nut-block/ Pour l'axe Z
GT3_Aluminum_Timing_Pulley_20 3 GT3 Timing Pulley - 20 tooth - 1/4 Inch Bore http://openbuildspartstore.com/gt3-aluminum-timing-pulley-20/ Poulies à dents pour les moteurs Nema 23 des axes X et Y
CNC_xPro_Controller_Stepper_Driver 1 3 Axis Driver Board http://openbuildspartstore.com/cnc-xpro-controller-stepper-driver/ Vérifier le fil de discussion pour lister les matériels compatibles.
5mm_x_8mm_low_profile_screw 2 Low Profile Screws - M5x8mm / 25 Pcs http://openbuildspartstore.com/low-profile-screws-m5/
5mm_x_8mm_low_profile_screw 2 Low Profile Screws - M5x15mm / 25 Pcs http://openbuildspartstore.com/low-profile-screws-m5/
5mm_x_8mm_low_profile_screw 1 Low Profile Screws - M5x20mm / 25 Pcs http://openbuildspartstore.com/low-profile-screws-m5/
5mm_x_8mm_low_profile_screw 2 Low Profile Screws - M5x30mm / 10 Pcs http://openbuildspartstore.com/low-profile-screws-m5/ En remplacement des boulons fournis avec le kit de roues
5mm_x_8mm_low_profile_screw 1 Low Profile Screws - M5x45mm / 10 Pcs http://openbuildspartstore.com/low-profile-screws-m5/
M3_Cap_Head_Screws 4 M3 Cap Head Screws - M3x45mm http://openbuildspartstore.com/m3-cap-head-screws/ Ecrous de fixation du moteur de l'axe Z
5mm_locknut 12 Nylon Insert Hex Locknut 5mm http://openbuildspartstore.com/nylon-insert-hex-locknut-5mm/
Tee_Nuts 2 Tee Nuts - 25 Pcs http://openbuildspartstore.com/tee-nuts-25-pack/
Aluminum_Spacers 12 Aluminum Spacers - 1/8th inch http://openbuildspartstore.com/aluminum-spacers/ Entretoises pour espacer les moteurs des plaques de fixation
Power_supply_12V_30A 1 12V/30A Power Supply http://openbuildspartstore.com/12v-30a-power-supply/ Vérifier le type d'alimentation supportée par la carte de pilotage (12/24V)
terminal_block 1 Wire Block http://www.mcmaster.com/#7618k613/=qdrzki Pour paralléliser le traitement des 2 moteurs de l'axe Y
Fan_40x40mm 1 40x40mm x 10 12v Cooling fan http://amzn.com/B000LB0M8S Ventilateur de refroidissement de la carte de pilotage
AC_Power_Cable_with_Bare_End 1 AC Power Cable with Bare End http://openbuildspartstore.com/ac-power-cable-with-bare-end/
Power_Cable 5 Power cable http://openbuildspartstore.com/16-2-project-wire/ Cable possédant au moins 2 fils conducteurs supportant du 16A.
Attention à bien évaluer la longueur nécessaire.
Spacer_Block 2 Spacer Block (V-Slot) http://openbuildspartstore.com/spacer-block-v-slot/ Utilisé pour espacer les roues de l'axe Z
4 OX Plates http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/#openbuilds_files Vérifier l'onglet 'Fichiers' pour les fichiers DXF des éléments à découper

:: IPTV Simple Client ::

Cet addon XBMC permet de récupérer de nombreuses chaînes TV françaises directement accessibles via le menu Direct TV.

Compilation sur Raspberry Pi

Note : La distribution utilisée est la dernière Raspbmc disponible à ce jour. Cette dernière contient XBMC en version Gotham 13.2-beta1.

Installation des pré-requis

$ sudo apt-get update 
$ sudo apt-get install git build-essential libtool automake ca-certificates zip unzip

Compilation à partir des sources

$ cd ~
$ git clone https://github.com/afedchin/xbmc-addon-iptvsimple.git
$ cd xbmc-addon-iptvsimple
$ sh autogen.sh
$ ./configure
$ make dist-zip

Pour ma part, j'ai compilé la version 1.9.3, disponible ici

Installation et configuration de l'addon dans XBMC

Installation de l'addon

Aller dans le menu Système > Extensions > Installer depuis un fichier zip et naviguer jusqu'à l'emplacement du fichier pvr.iptvsimple.1.x.x.zip précédemment compilé.

Note : si vous avez exécuté les commandes tel qu'indiqué ci-dessus, le chemin de l'addon est /home/pi/xbmc-addon-iptvsimple/pvr.iptvsimple.1.x.x.zip, où 1.x.x correspond à la version compilée.

Configuration de l'addon

Aller dans Extensions activées > Client enregistreur vidéo > PVR IPTV Simple Client.

Note : l'extension peut être dans Extensions désactivées.

Cliquer sur Configurer :

  • Dans l'onglet Général, au niveau du champ intitulé URL de la playlist M3U, renseigner l'URL suivante : http://tv-fr.lescigales.org/Liste%20TV%20Fr.xml
  • Dans l'onglet Paramètres EPG, au niveau du champ intitulé URL du fichier XMLTV, renseigner l'URL suivante : http://tv-fr.lescigales.org/tvguide.xml
  • Dans l'onglet Logos des chaînes, au niveau du champ intitulé Channels Logos Base URL, renseigner l'URL suivante : http://tv-fr.meximas.com/Logos/

Activer le menu Direct TV dans XBMC

Si le menu Direct TV n'apparaît pas sur la page d'accueil de XBMC, il faut l'activer.
Pour cela, naviguer dans le menu Système > TV Direct et cocher la case Activé.
Si tout se passe bien des notifications de mises à jour s'affichent dans XBMC (liste des chaînes, guide TV, etc.).

Une fois ces mises à jour terminées, vous devriez trouver votre bonheur : environ 200 chaînes francophones dont certaines disponibles en HD ! :-)


:: Simple application avec Dancer2 ::

Présentation

Dans cet exemple, on va créer une simple application web avec Dancer2.

Pour le déploiement, on se basera sur starman pour la gestion de l'application avec Nginx en frontal.

Installation de Dancer2

Préparation de l'environnement

Afin de sécuriser l'application, on fait tourner Starman (notre serveur d'application) sous une identité propre que nous appelerons starman. La seule manière d'y accéder sera via l'utilisateur root.

# adduser --gecos "" --disabled-password starman

Brewing Perl

Afin de séparer la distribution Perl installée sur le système (system perl) de celle que l'on souhaite utiliser pour lancer notre application, nous utiliserons PerlBrew, un outil de gestion des versions de Perl.

Pour installer PerlBrew, cf.Gestion des versions de Perl avec Perlbrew

  • Liste des versions Perl disponibles à l'installation :

    # su - starman
    $ perlbrew available
      perl-5.23.3
      perl-5.22.0
      perl-5.20.3
      perl-5.18.4
      perl-5.16.3
      perl-5.14.4
      perl-5.12.5
      perl-5.10.1
      perl-5.8.9
      perl-5.6.2
      perl5.005_04
      perl5.004_05
      perl5.003_07
  • Installation de la dernière version stable (nombre pair) :

    $ perlbrew install perl-5.22.0
  • Vérification de la version installée (deux méthodes) :

    1. Lister les versions installées :

      $ perlbrew list
        perl-5.22.0
    2. Lister les versions disponibles (remarquez le "i" devant la version installée) :

      $ perlbrew available
        perl-5.23.3
      i perl-5.22.0
        perl-5.20.3
        perl-5.18.4
        perl-5.16.3
        perl-5.14.4
        perl-5.12.5
        perl-5.10.1
        perl-5.8.9
        perl-5.6.2
        perl5.005_04
        perl5.004_05
        perl5.003_07

Installation des modules CPAN

Avant tout, on installe un client cpan. Pour cela, on utilise la commande PerlBrew permettant d'installer cpanminus.

$ perlbrew install-cpanm

Puis on installe les modules :

$ cpanm Dancer2 Starman Daemon::Control

Création de l'application

La méthode la plus rapide pour créer son application est d'utiliser la commande dancer2 qui met en place l'arborescence des répertoires et fichiers à partir d'un squelette standard :

$ dancer2 -a Xzz::Blog

Cette commande crée le répertoire Xzz-Blog ainsi qu'un ensemble de sous-répertoires et fichiers.

Notez le double : dans le nom qui demande à dancer2 de créer le module "Blog" dans la sous-arborescence "Xzz", ce qui permet de cloisonner différentes parties de l'application en ajoutant simplement d'autres modules (ex: Xzz::Admin, Xzz::Galerie, etc.)

Pour lancer l'application, exécuter la commande suivante :

$ plackup -R lib bin/app.psgi 
Watching lib bin/lib bin/app.psgi for file updates.
HTTP::Server::PSGI: Accepting connections at http://0:5000/

L'application (vide) est dorénavant disponible à l'adresse http://AdresseServeur:5000. (Ctrl+C pour stopper)

Mise en place du service systemd Starman

Pour lancer automatiquement notre application, on crée le fichier /etc/systemd/system/starman.service avec le contenu ci-dessous :

$ sudo vi /etc/systemd/system/starman.service

[Unit]
Description=Starman
After=syslog.target

[Service]
Type=forking
ExecStart=/home/starman/perl5/perlbrew/perls/perl-5.18.4/bin/starman --listen 127.0.0.1:5001 --env development --daemonize /home/starman/apps/Xzz-Blog/bin/app.psgi
Restart=always

[Install]
WantedBy=multi-user.target

Lancement et activation du service au démarrage :

$ sudo systemctl start starman.service
$ sudo systemctl enable starman.service

Installation et configuration de Nginx

$ sudo aptitude install nginx

--- A SUIVRE ---


:: Prusa i3xl - Notes techniques ::

Alimentation

Besoins estimés

  • 12V @ 5A pour les 5 moteurs
  • 12V @ 2A pour la buse chauffante de l'extrudeur (+20W)
  • 12V @ 12A pour un lit chauffant 140W (300x200)
  • 5V @ 2A pour l'électronique embarquée (Arduino, RAMPS, Raspberry Pi)
  • 5V @ 1-2A pour le "base load" de l'alimentation

Cela donne un total d'environ 20A en 12V (240W) et 5A en 5v (25W). Sachant qu'une alimentation ne fournit au mieux que 80% de sa puissance max indiquée et qu'il est préférable de l'utiliser à 50-60% de sa puissance max, on cible une alimentation de 500-600W et de préférence certifiée 80+.

Préparation de l'alimentation

Le modèle est une alimentation Antec Neo ECO 520C 80PLUS. La puissance fournie en sortie sur les différentes tensions est résumée ci-dessous :

+5V +3.3V +12V -12V +5VSB
Intensité max 24A 24A 40A 0.8A 2.5A

Caractéristiques

  • Certification 80+ Bronze
  • ATX 2.3

Connecteurs

  • 1 x +12V (Alimentation P8 - Scindable en 2 x P4)
  • 6 x Alimentation Serial ATA
  • 1 x ATX 20 + 4 Broches
  • 1 x Disquette (Molex 4 Broches Femelle)
  • 6 x Molex (4 broches) Femelle
  • 1 x PCI Express 6 + 2 Broches
  • 1 x PCI Express 6 broches

Diagramme des connecteurs

Diagramme des connecteurs

Câbles

20AWG gaine PVC semi-rigide (RS)

  • 331862 Fil câblage équip. UL1007 noir, 20 AWG
  • 331878 Fil câblage équip. UL1007 rouge, 20 AWG

22AWG / 0,35 mm2 gaine PVC semi-rigide (RS)

  • 1680786 FIL DE CABLAGE UL1061
  • 1680821 FIL DE CABLAGE UL1061
  • 1680764 FIL DE CABLAGE UL1061
  • 1680809 FIL DE CABLAGE UL1061
  • 1680758 FIL DE CABLAGE UL1061

Fils trés souples gaine silicone (Intermodel)

  • fs20awgr fil silicone 20 awg / 0.5mm² pour les courants faibles
  • fs16awgr fil silicone 16 awg / 1.32mm² pour le lit 140W

Moteurs NEMA17

Extrudeur

1 moteur pas à pas Casun 42SHD0404-22 :

  • Angle du pas : 1.8° (200 pas / tour)
  • Couple : 520 mN.m
  • Tension : 3.4 V
  • Intensité : 1.7 A

Axes X, Y et Z

4 moteurs pas à pas Casun 42SHD001-24 :

  • Angle du pas : 1.8° (200 pas / tour)
  • Couple : 260 mN.m
  • Tension : 12 V
  • Intensité : 0.4 A

Stepper drivers (x4)

Le réglage du courant fourni au moteur se fait à l'aide du petit potentiomètre présent sur le stick. Commencer au plus bas (tourner dans sens horaire inverse) et augmenter doucement (par 1/8ème de tour) la tension de référence jusqu'à obtenir le résultat désiré.

Note : la mesure de la tension qui nous sert de référence se fait entre la terre et le potentiomètre lui-même.

La puissance demandée aux moteurs variant en fonction des vitesses maximales paramétrées, j'ai arbitrairement choisi les vitesses maximales suivantes :

  • Axes X et Y : 7500 mm/min <=> 125 mm/s
  • Axe Z : 300 mm/min <=> 5 mm/s

Dans mon cas, après suppression/diminution des bruits et autres vibrations, j'arrive aux réglages suivants :

  • Axe X : 0.419 V
  • Axe Y : 0.573 V
  • Axe Z : 0.669 V
  • Extrudeur : 0.435 V

Schéma de cablage

Schéma de câblage

Parties mécaniques

  • Poulies GT2-20
    • Nombre de dents : 20
    • Longueur de pas : 2 mm
  • Courroies GT2
    • Longueur de pas : 2 mm

lundi 04 juin 2018

:: Shell - Trucs et astuces ::

Lister des fichiers et répertoires - ls

Lister avec chemin complet

  • Pour les répertoires

    $ ls -d -1 $PWD/**
  • Pour les fichiers

    $ ls -d -1 $PWD/*.*
  • Pour tous

    $ ls -d -1 $PWD/**/*

mardi 08 mai 2018

:: Procédure de mise à jour Debian ::

Debian 7 Wheezy vers Debian 8 Jessie

Mise à jour du système en dernière version mineure.

$ sudo apt-get update && sudo apt-get upgrade -y

Vérification de l'état des paquets

  • Liste des paquets "Half-installed" ou "Failed-Config"

    $ sudo dpkg --audit
  • Liste des paquets bloqués ("On hold")

    $ sudo dpkg --get-selections | grep 'hold$'

Note : Il est préférable de résoudre les problèmes avec ces paquets avant de procéder à la mise à niveau du système, sous peine de risquer quelques surprises.

Modification des sources de paquets

  • Modifier le fichier /etc/apt/sources.list

    $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
    $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list
  • Et pour chaques fichiers présents dans /etc/apt/sources.list.d/ :

    $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list.d/<fichier>

Mise à niveau du système

  • Facultatif : vérification de l'espace disque avant d'effectuer la mise à niveau

    $ sudo apt-get update && sudo apt-get -o APT::Get::Trivial-Only=true dist-upgrade
    [...]
    543 mis à jour, 305 nouvellement installés, 10 à enlever et 0 non mis à jour.
    Il est nécessaire de prendre 382 Mo dans les archives.
    Après cette opération, 503 Mo d'espace disque supplémentaires seront utilisés.

    Si il y a un problème d'espace disque, la commande retourne un avertissement :

    E: Vous n'avez pas assez d'espace disponible dans /var/cache/apt/archives/.
  • Mise à niveau

    $ sudo apt-get update && sudo apt-get dist-upgrade
    $ sudo apt-get upgrade
    $ sudo shutdown -r now

Debian 8 Jessie vers Debian 9 Stretch

Préparation

Mise à jour du système en dernière version mineure.

$ sudo apt-get update && sudo apt-get upgrade -y

Suppression des paquets installés automatiquement et qui ne sont plus nécessaires

$ sudo apt-get autoremove

Suppression des fichiers de configuration obsolètes

$ sudo rm -f /etc/*.dpkg-{new,old} 

Vérification de l'état des paquets

  • Liste des paquets "Half-installed" ou "Failed-Config"

    $ sudo dpkg --audit
  • Liste des paquets bloqués par apt-get

    $ sudo dpkg --get-selections | grep 'hold$'
  • Liste des paquets bloqués par aptitude

    $ aptitude search "~ahold"

Modification des sources de paquets

  • Modifier le fichier /etc/apt/sources.list

    $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
    $ sudo sed -i 's/jessie/stretch/' /etc/apt/sources.list
  • Et pour chaques fichiers présents dans /etc/apt/sources.list.d/ :

    $ sudo sed -i 's/jessie/stretch/' /etc/apt/sources.list.d/<fichier>

Références


dimanche 06 mai 2018

:: Git ::

Introduction

Fichiers de configuration

Git utilise une série de fichiers de configuration pour déterminer son comportement. Les emplacements sont lus dans un ordre précis et les valeurs lues en dernier écrasent les précédentes ("C'est le dernier qui parle qui a raison"). Vous pouvez positionner ces valeurs manuellement en éditant ces fichiers, mais je vous recommande d'utiliser la commande git config, ne serait-ce que pour éviter des erreurs de syntaxe.

/etc/gitconfig

Contient des valeurs pour tous les utilisateurs du système et tous leurs dépôts. Pour lire et modifier ce fichier, utiliser l'option --system avec git config.

$ git config --system [...]

~/.gitconfig

Spécifique à chaque utilisateur. Pour lire et modifier ce fichier, utiliser l'option --global.

$ git config --global [...]

.git/config

Le dernier emplacement lu par git est le fichier de configuration du dépôt en cours d'utilisation. Ces valeurs sont spécifiques à un unique dépôt. Pour lire et modifier ce fichier, utiliser l'option --local.

$ git config --local [...]

git-config

Pour modifier le comportement de git, il est nécessaire de spécifier certains paramètres de configuration à l'aide de la commande git-config.

Synopsis

$ git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]
$ git config [<file-option>] [type] --add name value
$ git config [<file-option>] [type] --replace-all name value [value_regex]
$ git config [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex]
$ git config [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex]
$ git config [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
$ git config [<file-option>] [type] [-z|--null] --get-urlmatch name URL
$ git config [<file-option>] --unset name [value_regex]
$ git config [<file-option>] --unset-all name [value_regex]
$ git config [<file-option>] --rename-section old_name new_name
$ git config [<file-option>] --remove-section name
$ git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
$ git config [<file-option>] --get-color name [default]
$ git config [<file-option>] --get-colorbool name [stdout-is-tty]
$ git config [<file-option>] -e | --edit

Paramètres de configuration

Identité

Note importante : ces informations sont utilisées par Git de manière indélébile (on ne peut changer l'auteur d'un commit après-coup, ni son adresse email).

$ git config --global user.name "Xzz"
$ git config --global user.email "xzz@carnetderoot.net"

Editeur de texte

A ne pas oublier, mon éditeur de texte préféré (parce que nano par défaut, hein, sérieux...) :

$ git config --global core.editor vi

Colorisation de la sortie de git

Pour faire simple on peut activer la colorisation de plusieurs paramètres en une seule commande :

$ git config --global color.ui auto

Si on préfère agir de manière spécifique, on peut modifier les paramètres un par un

$ git config --global color.branch auto
$ git config --global color.diff auto
$ git config --global color.interactive auto
$ git config --global color.status auto

Pour plus de détails sur les paramètres disponibles et leurs effets, je vous invite à consulter la documentation de référence git-config

Vérification des paramètres

$ git config --list
user.name=Xzz
user.email=xzz@carnetderoot.net
color.ui=auto
core.editor=vi

Utilisation de Git

Utilisation courante

Initialisation d'un projet

$ cd projet
$ git init
Dépôt Git vide initialisé dans /path/to/projet/.git/

Ajout des fichiers au projet

$ git add .

Supprimer des fichiers de l'index (ne plus les suivre)

$ git rm --cached fichier_a_ne_plus_suivre.pm

Attention à ne pas oublier l'option --cached ! Si vous omettez ce commutateur, la commande supprimera aussi le fichier du système de fichier :-)

Commit initial

$ git commit -m "Mon premier commit"
[master (commit racine) 6337a68] Commit initial
 89 files changed, 61074 insertions(+)
 create mode 100644 MANIFEST
 create mode 100644 MANIFEST.SKIP
 ...

Retirer des éléments de la synchronisation

Certains fichiers n'ayant pas besoin d'être synchronisés (fichiers temporaires, fichiers de swap, répertoire de sessions, etc.), on crée un fichier .gitignore contenant la liste des fichiers et répertoires à ignorer.

$ vi .gitignore

Contenu de .gitignore :

# Commentaire
# Ignorer les fichiers journaux
logs/
# Ignorer les fichiers temporaires
tmp/
# Ignorer les fichiers en cours d'edition
*.swp
...

Ajout du fichier au repository

$ git add .gitignore
$ git commit -m "Ajout du fichier .gitignore"
[master 8896d55] Ajout du fichier .gitignore
 1 file changed, 6 insertions(+)
 create mode 100644 .gitignore

Ignorer des fichiers déjà commités

Dans le cas où on ne veut plus synchroniser des fichiers déjà commités, ni avoir un retour lors d'un git status, il est préférable de réindexer l'ensemble des fichiers à synchroniser.

Pour cela, le moyen radical est de supprimer l'index existant, rajouter les fichiers puis faire un commit.

Attention : penser à commiter les dernieres modifications de code avant de lancer les commandes ci-dessous

$ git rm -r --cached
$ git add .
$ git commit -m "Suppression de tous les fichiers de l'index puis re-ajout pour bonne prise en compte du fichier .gitignore"

Vérification

$ git status
Sur la branche master
rien à valider, la copie de travail est propre

Historique des commits

$ git log

Création d'un dépôt distant

Sur le serveur distant

$ cd /opt/git
$ mkdir projet.git
$ cd projet.git/
$ git --bare init
Dépôt Git vide initialisé dans /opt/git/projet.git/

Sur le poste hébergeant le dépôt local

$ cd projet
$ git init
$ git add .
$ git commit -m "Mon premier commit"
$ git remote add nom_depot user@serveur:/opt/git/projet.git
$ git push nom_depot master

Clonage du dépôt sur un autre poste

$ git clone user@serveur:/opt/git/projet.git

Pousser ses modifications

$ git push nom_depot master

Gestion des dépôts

Afficher les dépôts enregistrés

$ git remote
$ git remote -v

Ajouter un dépôt

$ git remote add nom_depot url

Modifier un dépôt

$ git remote set-url nom_depot url

Supprimer un dépôt

$ git remote rm nom_depot

Références