samedi 15 décembre 2007

Diffuser une application sous Linux

En raison de la prolifération des distributions des systèmes Unix (et Linux) la diffusion d'une application, que l'on a programmé, pose de réels problèmes, bien plus que sous Windows. Vous trouverez sur Internet de nombreux articles intéressant traitant du sujet comme : Deploying an Application on Qt/X11.

La solution que je propose ici n'est pas très élégante, mais elle possède l'avantage d'être simple et fonctionnelle. Cette solution consiste à utiliser la commande ldd pour connaître toutes les dépendances de l'application et à diffuser l'application accompagnée de toutes ses dépendances.

Voici un petit script qui réalise tout cela automatiquement.

Il fonctionne de la manière suivante :
./gen_package.sh \ou\est\le\program \ou\generer\le\package
Dans le répertoire \ou\generer\le\package vous trouverez :
  • un répertoire contenant toutes les librairies dont dépend l'application ;
  • l'application en question désignée par \ou\est\le\program au script ;
  • un script portant le même nom que l'application, permettant de lancer l'application et rendant accessible le répertoire où se trouvent les librairies dont dépend l'application. C'est donc ce script qu'il faut appeler pour lancer l'application. Le répertoire ainsi créé peut êtrer diffusé sans problème.

Connaitre la liste des dépendances d'un exécutable : commande ldd

Pour connaître la liste des dépendances d'un exécutable, il suffit de taper :
ldd

Créer un compte root sous Ubuntu

Pour créer un compte root sous Ubuntu il suffit de taper :
sudo passwd root

Installation des programmes avec la commande rpm

  • Installer un programme en utilisant rpm :
    rpm -ivh nom_complet
  • Savoir si un rpm est installé (l'omission de nom_court permet de lister les rpm installés) :
    rpm -qa nom_court
  • Désinstaller un rpm :
    rpm -e nom_court
  • Connaitre les fichiers installés :
    rpm -qlp nom_complet ou rpm -ql nom_court

Gnome

Pour désactiver le mode spatial de GNOME, ouvrir l'éditeur Gconf, dans apps/nautilus/preferences et cocher l'option always_use_browser ou saisir dans un terminal :
gconftool-2 --type boolean --set /apps/nautilus/preferences/always_use_browser true
Quand on efface un utilisateur, penser à effacer les fichiers restants qui le concernent (par exemple, les fichiers qui contiennent le nom de cet utilisateur dans /tmp, /var/tmp et /var/mail), sinon, il y aura des problèmes importants avec l'environnement gnome lorsque l'on ajoutera un nouvel utilisateur de même nom.

Si l'applet volume de votre tableau de bord a disparu, ajouter la commande gnome-volume-control-applet dans Système → Préférences → Applications au Démarrage → Ajouter.

Formatage et nom de volume

Pour formater un disque, il faut utiliser la commande mke2fs. L'option -j permet de formater en ext3 et l'option -L permet de donner un nom de volume. Par exemple, pour formater le disque se trouvant sur /dev/sda1 avec le nom de volume MON_DISQUE, on utilise la commande :
mke2fs -j -L MON_DISQUE /dev/sda1
On peut toujours donner un nom de volume ultérieurement en utilisant la commande tune2fs. Par exemple, pour changer le nom de MON_DISQUE en DISQUE, et en supposant que la partition est bien démontée et n'a pas changée d'emplacement ( /dev/sda1), on utilise la commande :
tune2fs -L DISQUE /dev/sda1
Pour un disque au format FAT, il faut utiliser la commande mlabel.

Il est important de donner un nom à chacun de ses disques amovible. En effet, merci udev, cela permet d'avoir un chemin d'accès au disque indépendant de l'ordre de branchement à chaud (du type /media/MON_DISQUE au lieu de /media/usb_disk1) !

Noyau (kernel) : version, messages et modules

  • Afficher la version du noyau :
    uname -r
  • Afficher les messages du noyau :
    dmesg
  • Afficher les messages du noyau en continu (utile pour connaître le point de montage d'un périphérique par exemple) :
    tail -f /var/log/messages
  • Lister les modules installés :
    /sbin/lsmod
  • Installer un module (une fois pour toutes) :
    /sbin/insmod module
  • Charger un module (à mettre dans /etc/rc.local pour que le module se charge à chaque démarrage ) :
    /sbin/modprobe module

Commuter entre mode graphique et mode texte sous Linux

Ctrl+Alt+F1 à F6 pour passer en mode texte. Cette combinaison permet d'accéder à six login en mode texte avant ou après s'être logué en mode graphique. Alt+F7 pour revenir au mode graphique.

Restaurer le menu de démarrage de Windows écrasé par grub

Souvent, lors de l'installation de Linux, le chargeur de démarrage grub prend la place de celui de Windows. Voilà comment le restaurer :
  1. Déplacer grub sous linux (sur la partition hd0,4 dans cet exemple) :
    > sudo grub
    grub > root (hd0,4)
    grub > setup (hd0,4)
  2. Restaurer le MRB de Windows dans une fenêtre DOS (sous Windows ou en utilisant une disquette système) :
    > fdisk /mbr
    ou
    > BOOTPART WINNT BOOT:C:
  3. Ajouter Linux au menu de démarrage de Windows (cf. Dual boot Windows NT/2k/XP et Linux) :
    > BOOTPART xx c:\bootsect.lin Linux

Dual boot Windows NT/2k/XP et Linux

L'objectif est de conserver le menu de démarrage de Windows, pour pouvoir démarrer Windows NT, 2k (2000), XP et Linux, après avoir installé Linux sur une machine qui possédait déjà Windows. Windows doit déjà être installé et vous devez télécharger l'outil BootPart.
  1. Installez Linux sur une partition libre de votre disque dur (personnellement, je fais trois partitions : 2Go de swap pour 1Go de mémoire, 256Mo pour /boot et le reste pour /). Attention, vous devez spécifier une partition Linux comme support de boot (par exemple la partition de /boot) car le Master Boot Record (MBR) de votre disque dur est déjà occupé par celui de Windows et c'est lui que nous désirons conserver (cf. Restaurer le menu de démarrage de Windows écrasé par grub si impossible de conserver le menu de démarrage de Windows).
  2. A l'aide de BootPart, exécuter la commande :
    BOOTPART xx c:\bootsect.lin Linux
    xx étant le n° d'ordre de la partition de Linux. Pour l'obtenir, il suffit d'exécuter BootPart sans aucun paramètre, et de chercher dans la liste qui s'affiche celle qui correspond à Linux.

Un disque accessible en lecture et en écriture depuis Linux et Windows

Le seul système de fichier utilisable simplement et automatiquement à la fois depuis Linux et Windows en lecture et en écriture est FAT32. En utilisant des clusters de 32Ko (ce qui est classique), on peut tout à fait formater des disques jusqu'à 2To ! Toutefois, sous Windows 9x/2000/XP, il n'est pas possible de formater des disque de plus de 32Go en FAT32. Microsoft impose volontairement cette limitation à 32Go afin de favoriser le système de fichier NTFS (réf : http://support.microsoft.com/default.aspx?scid=kb;fr;184006). Pour formater un disque de plus de 32Go en FAT32, il suffit donc de ne pas utiliser Windows. Vous pouvez, par exemple, utiliser mkdosfs sous Linux. Bien entendu, le disque ainsi formaté sera tout-à-fait utilisable sous Windows.

Remarque : des outils/drivers/modules permettent la lecture ou l'écriture sur des systèmes de fichier EXT depuis Windows et NTFS depuis Linux. Mais rien n'est encore très fiable et natif à ce niveau là.

Personnaliser page "Programmes" de Windows Mobile

Il devient très vite nécessaire de mettre de l'ordre dans sa page Programmes sous Windows Mobile. Pour pouvoir organiser ses raccourcis par répertoire, ou en créer de nouveaux, il suffit de savoir que la page Programmes correspond au répertoire \Windows\Menu Démarrer\Programmes. On peut alors y ajouter les raccourcis que l'on désire et organiser le tout en créant des sous-répertoires.

GMobileSync : Synchronisation gratuite avec Google Agenda ?

J'ai installé GMobileSync 1.2, GMobileSync 1.3, GMobileSync 1.3.5 et GMobileSync 1.3.5 (Bug Fixed Version 1). Certaines versions ne marchent pas du tout sur mon P535 les autres ne font rien. Je ne sais même pas si GMobileSync permet la synchronisation de plusieurs agendas Google. Donc, à suivre... En attendant, je continue d'utiliser la méthode ScheduleWorld + Funambol qui, bien que très lourde à configurer et utiliser, a le mérite de fonctionner.