Main menu:

Site search

Categories

septembre 2025
L M M J V S D
1234567
891011121314
15161718192021
22232425262728
2930  

Archive

Installation minimale d’Ubuntu

Si, parce que vous voulez installer un serveur ou que vous trouvez qu’il y a trop de paquets installés par défaut dans Ubuntu, vous voulez quelque chose de plus léger, voici comment procéder:

Commencez par télécharger sur le site d’Ubuntu l’image iso de l’Alternate CD. Cette version ne contient pas la partie Live CD et possède certaines options pour une installation OEM. Gravez l’image sur un CD et redémarrez votre PC avec ce CD.

Lorsque l’interface Ubuntu apparaît, sélectionnez à l’aide des touches de fonctions, votre langue, votre clavier et le type Command line install. Ensuite, lancez l’installation proprement dite et répondez aux différentes questions qui vous seront posées.

A la fin de l’installation, vous avez un système Ubuntu complet mais uniquement en mode console. Pas d’environnement graphique. Un système de base qui pèse tout de même un peu moins de 500 Mb. C’est l’idéal pour créer un serveur LAMP (Linux Apache Mysql Php) par exemple. Ou bien, vous pouvez installer à la main les paquets nécessaire pour avoir un environnement Gnome de base.

Dans le cas où vous désirez un serveur LAMP, vous devrez installer les paquets suivants:

$ sudo aptitude install apache2 php5 libapache2-mod-php5 mysql-server php5-mysql phpmyadmin

La taille prise sur le disque par votre serveur monte à 720 Mb. Ce n’est pas négligeable.

Si par contre vous voulez installer Gnome, il vous faudra installer les paquets suivants.

$ sudo aptitude install gnome-core gdm xserver-xorg language-support-fr language-pack-gnome-fr language-pack-fr

La place prise sur le disque dur s’élève à 1.3 Gb! C’est plus que Windows XP! Bon OK, même dans une version de base de Gnome, il y a plus d’applications que dans Windows XP mais tout de même…
Si vous voulez un serveur avec l’environnement graphique, là, il vous faudra au moins 1.6 Gb de libre sur votre disque dur.

N’oubliez pas que avec cette installation, vous n’avez pas les paquets nécessaires pour le son, la gestion des imprimantes, les outils système… Vous devrez encore les installer à la main. Si, en plus, vous installez Firefox, Open Office et tous les autres logiciels présents par défaut dans une installation d’Ubuntu, on arrive facilement à plus de 2.5 Gb! Ce n’est pas léger mais, vu la taille des disques durs actuels, ce n’est pas excessif.

Avoir plusieurs adresses réseau

Dans mon travail de tous les jours, je dois souvent changer d’adresse IP. Vous pouvez le faire assez facilement à l’aide du Network Manager. Il permet, en effet, d’avoir plusieurs configurations réseau et de les sauvegarder. Mais sur les machines qui n’ont pas d’environnement graphique, comme les versions Ubuntu server, comment réaliser facilement la même chose?
Vous savez que l’adresse IP, le masque de sous-réseau et le gateway sont sauvegardés dans le fichier /etc/network/interfaces. Le mien contient ceci pour l’interface eth0:

auto eth0
iface eth0 inet static
address 192.168.8.3
netmask 255.255.255.0
gateway 192.168.8.1

Je vous ai déjà expliqué dans l’article Configuration Réseau comment changer et configurer votre réseau. Mais savez-vous que dans le fichier /etc/network/interfaces peuvent être sauvegardées plusieurs configurations réseau? Il suffit en fait de leur donner un nom différent. Par exemple:

iface reseau1 inet static
address 192.168.8.3
netmask 255.255.255.0
gateway 192.168.8.1

iface reseau2 inet static
address 192.168.28.10
netmask 255.255.255.0
gateway 192.168.28.1

Et ainsi de suite. Vous pouvez déclarer autant de réseaux que vous voulez.
Pour passer d’une configuration réseau à l’autre, c’est très simple, il suffit d’entrer ceci dans un terminal:

$ sudo ifdown eth0
$ sudo ifup eth0=reseau2

Si vous voulez un autre réseau, remplacez eth0=reseau2 par eth0=reseau1 ou ce que vous aurez choisi comme nom de réseau.

C++ – Conversions de type (casting)

Contrairement au C, C++ propose 4 types de conversions (casts) spécialisés. Mais en quoi est-ce mieux d’utiliser les casts spécialisés par rapport au cast du C?

En C, on place entre parenthèses le type vers lequel la conversion doit se faire. Par exemple pour convertir un Objet en int, on écrit:

int i;
i = (int)Objet;

Ce type de cast permet tout à la fois de convertir un type dans un autre, convertir un pointeur d’une classe dérivée en un pointeur vers sa classe de base, convertir un pointeur de la classe de base vers un pointeur d’une classe dérivée (downcasting et upcasting)…
En fait il permet de convertir n’importe quoi en n’importe quoi et donc en quelque sorte de mentir au compilateur. C’est pourquoi, c’est plus que déconseillé en C++.

En C++, même si ce type de cast existe toujours, il existe 4 types de casts différents et chacun utilisable dans un domaine de conversion bien défini. L’avantage c’est que s’ils sont utilisés à mauvais escient, ils renvoient une erreur ou ne compilent pas. Ils sont plus clairs et plus concis et utilisent une syntaxe proche des templates. Il n’y a en principe pas d’ambiguité entre les différents types de cast. Le cast effectué au moment du runtime (quand le programme tourne) permet au programmeur de tester le résultat de la conversion.

Static cast

static_cast <Type>(t) est utilisé dans des situation où on doit caster un pointeur vers une classe de base en un pointeur vers une classe dérivée (downcast). Il n’y a pas de restriction concernant le caractère polymorphique de la classe.  Il sert aussi à convertir un int en un enum, à convertir une référence d’un type vers une référence d’un autre type et en règle générale, un objet d’un type vers un objet d’un autre type (par exemple un int vers un double).

Dynamic cast

dynamic_cast<Type>(t) ne peut être utilisé que pour un pointeur ou une référence. Deux conditions sont nécessaires pour pouvoir utiliser dynamic_cast:

  • dynamic_cast n’est utilisable qu’avec des classes polymorphiques, c’est à dire qui contiennent au moins une fonction virtuelle.
  • il faut que t soit réellement du type Type ou qu’il soit d’un type dérivé de Type. Si ce n’est pas le cas, dynamic_cast renvoie 0 dans le cas d’un pointeur et lève une exception de type bad_cast s’il s’agit d’une référence.

Note: convertir un pointeur d’un type dérivé vers un type de base est implicite en C++. Il n’est pas nécessaire d’utiliser dynamic_cast ou static_cast.

Reinterpret cast

reinterpret_cast<Type>(t) permet de convertir n’importe quel pointeur ou type intégral en un autre type. Ce type de cast est pratiquement aussi peu sûr que le cast en C et ses domaines d’application sont plutôt restreints. Il ne peut pratiquement que servir à convertir d’un type vers un autre puis à revenir dans le type original par un nouveau cast. Sa seule différence avec le cast C est que reinterpret_cast ne permet pas de retirer le caractère constant d’un objet contrairement au cast C.

Const cast

Les trois types de casts précédents ne permettent pas de retirer le caractère constant d’un objet. Pour retirer l’attribut constant d’un objet vous utiliserez const_cast<Type>(t). Le type de retour est identique au type qui est casté. Autrement dit:

class B {};
class D : public B {};

int main()
{
  const B* cb = new B;
  const D* cd = new D;

  B* b = const_cast<B*>(b);       // Ok
  D* d = const_cast<D*>(d);       // Ok 
  B* bb = const_cast<B*>(d);      // Erreur  
  D* dd = const_cast<B*>(b);      // Erreur  

  return 0;
}

Connaître la version de Linux

Il existe une petite commande bien pratique pour connaître la version de Linux sous laquelle vous vous trouvez:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 8.04
Release:	8.04
Codename:	hardy

Comment installer une fonte de caractères

Avec Ubuntu Feisty ou Gutsy, pour installer une fonte de caractères, il suffisait d’ouvrir Nautilus et de taper dans la zone de texte Emplacement fonts:/// et Nautilus affichait toutes les fontes présentes. Vous faisiez un drag and drop de la fonte à installer dans la fenêtre de Nautilus et, voilà, c’était fait. Avec Ubuntu 8.04 Hardy Heron, cela ne marche plus. Il paraît que c’est dû au fait que gvfs remplace Gnome-vfs dans Nautilus. On avait sans doute une façon trop simple d’installer des fontes sans doute. Alors comment faire maintenant?

Prenons le cas de la fonte de caractères libre Liberation-fonts de RedHat. Vous pouvez la télécharger sur le site de RedHat:

$ wget https://www.redhat.com/f/fonts/liberation-fonts.tar.gz

Maintenant, il y a deux possibilités. Soit vous ne voulez installer la police de caractère que pour vous-même soit vous voulez que tous les utilisateurs de votre système en profitent.

Dans le premier cas, il faut installer la fonte dans un répertoire .fonts dans votre répertoire personnel. Notez le point devant le nom du répertoire, c’est un dossier caché. Décompressez le fichier dans ce répertoire:

$ mkdir ~/.fonts
$ tar -C ~/.fonts -zxvf liberation-fonts-ttf.tar.gz

Si vous voulez que tout le monde puisse utiliser cette nouvelle fonte de caractère, vous devrez installer la fonte dans /usr/share/fonts/truetype en procédant comme ceci:

$ sudo mkdir /usr/share/fonts/truetype/Liberation/
$ sudo tar -C /usr/share/fonts/truetype/Liberation/ -zxvf liberation-fonts-ttf.tar.gz

Voilà, dès ce moment, votre nouvelle police de caractères est disponible pour vos applications.

Changer le hostname de votre PC

Pour changer le nom d’hôte (hostname en anglais) de votre PC, il suffit de modifier le fichier /etc/hostname pour y mettre le nouveau nom à la place de l’ancien et de rebooter. Mais si pour une raison ou une autre, vous ne désirez pas rebooter, vous pouvez procéder comme ceci:

Mettre dans /etc/hostname le nouveau nom du PC. Ceci doit se faire en root:

$ echo Nouveau_Nom | sudo tee /etc/hostname

Lancer le script suivant toujours sous root:

$ sudo /etc/init.d/hostname.sh

Pour vérifier que le nouveau nom a bien été pris en compte, tapez:

$ hostname

Vous pouvez aussi éventuellement modifier le fichier /etc/hosts pour qu’il reflète les changements que vous avez faits.

Si vous êtes sous X (Gnome, KDE,…) vous devrez aussi relancer le serveur X en tapant au clavier CTRL+ALT+Backspace ou bien vous déconnecter et vous reconnecter.