OVH Cloud OVH Cloud

Gentoo et warning

51 réponses
Avatar
Jerome Lambert
(C'est limite débats, mais je préfère d'abord une réponse *technique*)

Bonsoir,

Coutumier des distributions binaires, je me suis attelé ce week-end à
l'installation d'une Gentoo 2004.3.

Avec le manuel, tout s'est bien passé (pas loin de 50h de compilation
sur un P-3 450), mais j'ai été stupéfait par ... le nombre de warning
lors de la compilation.

Est-ce normal, et ont-ils une incidence sur le bon fonctionnement des
programmes? Je pense notamment aux avertissements concernant une
comparaison entre pointeur et entier sans cast de celui-ci, ce qui, si
mes souvenirs sont bons, n'est pas une manière "propre" de travailler,
ou encore aux messages avertissant de l'utilisation de variable non
initialisées.

J'ai un peu d'expérience en programmation, et je me souviens que c'était
le genre de messages qui faisait sauter mon prof au plafond, d'où mon
inquiétude.

Merci de vos éclaircissements,

Jérôme.

10 réponses

2 3 4 5 6
Avatar
TiChou
Dans le message <news:41a4c989$0$9062$,
*billiob* tapota sur f.c.o.l.configuration :

Mon pc permet de partager la connexion ADSL (par ethernet) avec un windows
98 SE.
Avec la mandrake j'ai utilisé drakconf qui m'a fournit une solution
efficcace mais lourde : shorewall+squid


Beurk. :-P

Sous la gentoo, je souhaite directement utiliser iptables pour faire ceci.


Bien. ;-)

Quelqu'un aurait-il un script qui gère cela ?


Gentoo, comme sur d'autres distributions, dispose d'un script
d'initialisation des règles iptables, /etc/init.d/iptables.
Il suffit dans un premier temps de créer vos règles iptables, de sauvegarder
vos règles avec la commande '/etc/init.d/iptables save' et d'ajouter le
script d'initialisation de iptables au démarrage avec la commande 'rc-update
add iptables default'.
Pour plus de précisions, je vous invite à lire le guide du routeur pour
Gentoo : http://www.gentoo.org/doc/fr/home-router-howto.xml

Je ferai quand-même une copie de /etc !


Hmmm je ne comprends pas trop cette remarque. Pouvez-vous préciser ce que
vous comptez copier ?

En prévision j'avais écrit, en recopiant un exemple trouvé ici(me
semble-t-il) se petit script :

#!/bin/sh

# REMISE a ZERO des regles de filtrage
iptables -F
iptables -t nat -F

# DEBUT des regles de FIREWALLING

# DEBUT des politiques par defaut

# Je veux que les connexions entrantes soient bloquees par defaut
iptables -P INPUT DROP


Ok.

# Je veux que les connexions destinees a etre forwardees
# soient acceptees par defaut
iptables -P FORWARD ACCEPT


C'est, à mon avis, une mauvaise chose de tout accepter dans la chaîne
FORWARD. Il serait nettement préférable de filtrer ce qui doit être forwardé
ou non. Je vous recommande donc les règles suivantes qui autorisent de
forwarder tout le trafic venant de vos machines locales vers Internet et qui
autorisent uniquement de forwarder le trafic venant d'Internet vers vos
machines locales pour les connexions en cours ou pour les nouvelles
connexions en rapport avec des connexions en cours et suivies.

iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o ppp0 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -d 192.168.0.0/24
-m state --state ESTABLISHED,RELATED -j ACCEPT

# Je veux que les connexions sortantes soient acceptees par defaut
iptables -P OUTPUT ACCEPT


Ok.

# FIN des politiques par defaut

# J'accepte les packets entrants relatifs a des connexions deja etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


Ok.

# J'autorise les connexions TCP entrantes sur le port 80
# (pour que mon serveur HTTP soit joignable de l'exterieur)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT


Ici il suffit juste d'autoriser les paquets qui seraient à l'état NEW
(nouvelles connexions) puisque la précédente règle autorise déjà le trafic
une fois la connexion établie.

iptables -A INPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT

# J'accepte les "pings"
iptables -A INPUT -p icmp -j ACCEPT


Les « pings » sont un des messages du protocole icmp ! Il ne faut pas tout
englober.

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

ou si on veut éviter les dénis de service du type icmp flood :

iptables -A INPUT -p icmp --icmp-type echo-request
-m length --length 0:92
-m limit --limit 60/minute -j ACCEPT

Et je vous conseillerai aussi d'ajouter la règle suivante pour autoriser les
traceroutes qui sont toujours utiles pour les administrateurs qui souhaitent
diagnostiquer certains problèmes réseaux.

iptables -A INPUT -i ppp0 -p icmp --icmp-type destination-unreachable
-m limit --limit 5/minute -j ACCEPT

# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT


Ok.

# La regle par defaut pour la chaine INPUT devient "REJECT"
# (il n'est pas possible de mettre REJECT comme politique par defaut)
iptables -A INPUT -j REJECT


Ok.

# FIN des regles de FIREWALLING

# DEBUT des regles pour le PARTAGE DE CONNEXION

# Je veux que mon systeme fasse office de "serveur NAT"
# (Remplassez "eth0" par votre interface connectee a Internet)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE


Il y a redondance dans ces deux règles. Seule la dernière devrait être
conservée.

# FIN des regles pour le PARTAGE DE CONNEXION

Faut-il rajouter quelquechose ?


Il y a toujours des règles que l'on peut rajouter ou affiner, tout dépend de
la politique de sécurité que vous souhaitez mettre en place. Ici, vous êtes
à mon avis suffisamment protégé pour un réseau personnel.
Il faudrait peut être rajouter le chargement du module ip_conntrack_ftp et
ip_nat_ftp afin de « nater » correctement les connexions FTP en mode actif.
Il faut penser aussi à activer la fonction de routeur en renseignant avec la
valeur 1 l'entrée /proc/net/ipv4/ip_forward. Cela peut se faire
automatiquement au démarrage du Linux en mettant la ligne
'net.ipv4.ip_forward = 1' dans le fichier /etc/sysctl.conf.

Comment configurer mon Win 98 (il marche en ce moment sans aucune
configuration : détecter automatiquement les paramètres de IE ?


En le configurant avec une adresse IP fixe appartenant au bloc que vous avez
choisi (192.168.0.0/24), avec comme passerelle l'adresse IP de votre routeur
Linux et avec les adresses des serveurs DNS de votre FAI ou l'adresse de
votre propre serveur DNS si vous en avec installez un sur votre serveur
Linux.
Ou bien, en le configurant en mode DHCP mais à condition d'installer et de
configurer un serveur DHCP sur votre routeur Linux.

--
TiChou

Avatar
TiChou
Dans le message <news:,
*Sebastien Kirche* tapota sur f.c.o.l.configuration :

no spam a formulé :
Bah non, une cross Gentoo serait très pratique !
J'aimerai bien cross compiler pour un 68040 sur mon Athlon 64 ;-)



Qu'est ce qui t'en empêche ?

Si je suis (du verbe suivre) bien, L'intérêt principal de Gentoo et de
faire du sur-mesure en compilant sur le lieu d'exécution.


Non, ça n'est pas l'intérêt principal contrairement à ce qui est dit
généralement par ceux qui méconnaissent la Gentoo ou par les détracteurs qui
par définition sont de mauvaise foi. :)

Si on cross-compile, ça revient à utiliser des paquets pré-compilés, et
dans ce cas quel intérêt pour Gentoo ?


http://groups.google.fr/groups?selm=

--
TiChou


Avatar
Ronald
Le Wed, 24 Nov 2004 20:24:47 +0100, TiChou a écrit :

Dans le message <news:, *Sebastien Kirche* tapota
sur f.c.o.l.configuration :

no spam a formulé :
Bah non, une cross Gentoo serait très pratique ! J'aimerai bien cross
compiler pour un 68040 sur mon Athlon 64 ;-)



Qu'est ce qui t'en empêche ?



Ouais, c'est vrai ça. Si la cross compilation n'est pas prévue, elle ne
doit pas être si bien que ça comme distribution. D'un autre coté si
xcompiler un système était aussi simple que booter sur cd et remplir un
fichier de conf, ce serait inintéressant, enfin je trouve.
Moi je dis mandrake rulez, au moins avec elle on est à l'abris de se
genre de considérations.

Si je suis (du verbe suivre) bien, L'intérêt principal de Gentoo et de
faire du sur-mesure en compilant sur le lieu d'exécution.


Non, ça n'est pas l'intérêt principal contrairement à ce qui est dit
généralement par ceux qui méconnaissent la Gentoo ou par les
détracteurs qui par définition sont de mauvaise foi. :)

Si on cross-compile, ça revient à utiliser des paquets pré-compilés,
et dans ce cas quel intérêt pour Gentoo ?


http://groups.google.fr/groups?selm=




Avatar
no_spam
On Wed, 24 Nov 2004 22:56:47 +0100, Ronald wrote:

Le Wed, 24 Nov 2004 20:24:47 +0100, TiChou a écrit :

Dans le message <news:, *Sebastien Kirche* tapota
sur f.c.o.l.configuration :

no spam a formulé :
Bah non, une cross Gentoo serait très pratique ! J'aimerai bien cross
compiler pour un 68040 sur mon Athlon 64 ;-)



Qu'est ce qui t'en empêche ?

[...]


Moi je dis mandrake rulez, au moins avec elle on est à l'abris de se
genre de considérations.


T'as le lien de la Mandrake 68k, pour faire une comparaison ?




Avatar
no_spam
On Wed, 24 Nov 2004 20:24:47 +0100, TiChou wrote:

Dans le message <news:,
*Sebastien Kirche* tapota sur f.c.o.l.configuration :

no spam a formulé :
Bah non, une cross Gentoo serait très pratique !
J'aimerai bien cross compiler pour un 68040 sur mon Athlon 64 ;-)



Qu'est ce qui t'en empêche ?


Le moins que l'on puisse dire, c'est que la cross-compilation de la
Gentoo, ce n'est pas au point.
Et de façon générale, la cross-compilation pour 68k n'est pas géniale.
Mais même en cross compilant de x86 vers ppc, dans un cas de cross
compilation bien connu et maintenu, donc, je ne suis pas arrivé à faire
un stage complet pour avoir un bootstrap "tout beau tout neuf".
Dans le cas du 68k, c'est encore pire: le cross compilateur marche mal,
les packages en version 68k ne sont pas maintenus et débuggés
correctement (gcc et les binutils, notement !) et en plus, vu qu'il n'y a
pas de Gentoo 68k, il faut partir de zéro et tout construire... C'est
loin d'être gagné.


Si je suis (du verbe suivre) bien, L'intérêt principal de Gentoo et de
faire du sur-mesure en compilant sur le lieu d'exécution.


Non, ça n'est pas l'intérêt principal contrairement à ce qui est dit
généralement par ceux qui méconnaissent la Gentoo ou par les détracteurs qui
par définition sont de mauvaise foi. :)

Si on cross-compile, ça revient à utiliser des paquets pré-compilés, et
dans ce cas quel intérêt pour Gentoo ?


http://groups.google.fr/groups?selm=


Tou à fait d'accord !



Avatar
Jerome Lambert
(...)
Si on cross-compile, ça revient à utiliser des paquets pré-compilés, et
dans ce cas quel intérêt pour Gentoo ?



http://groups.google.fr/groups?selm=



Après une semaine,

Plus:
- personnalisation exceptionnelle
- gestion intelligente des paquets
- stabilité
- qualité de la documentation

Moins:
- parfois un peu ardue

A la fois plus et moins:
après 5 ans de distributions binaires à utiliser les drak* ou
system-config*, on se rend compte que, tous comptes faits, on ne connait
pas autant Linux qu'on le croyait...

Perso j'adore (j'adore découvrir de nouvelles choses), mais ça peut
dérouter au début...

Ca va finir en Troll, cette discussion... ;-)


Avatar
Ronald
Le Thu, 25 Nov 2004 00:05:32 +0100, no_spam a écrit :

On Wed, 24 Nov 2004 22:56:47 +0100, Ronald wrote:

Le Wed, 24 Nov 2004 20:24:47 +0100, TiChou a écrit :

Dans le message <news:, *Sebastien Kirche*
tapota sur f.c.o.l.configuration :

no spam a formulé :
Bah non, une cross Gentoo serait très pratique ! J'aimerai bien
cross compiler pour un 68040 sur mon Athlon 64 ;-)



Qu'est ce qui t'en empêche ?

[...]


Moi je dis mandrake rulez, au moins avec elle on est à l'abris de se
genre de considérations.


T'as le lien de la Mandrake 68k, pour faire une comparaison ?


Ben non, à ma connaissance, ça n'existe pas justement, il n'y a guère
que debian qui ai des packages, mais ça doit commencer à dater.

Tu dois connaître mais on sait jamais http://www.mac.linux-m68k.org/





Avatar
Jerome Lambert


Dans le message <news:, *Sebastien Kirche* tapota
sur f.c.o.l.configuration :


no spam a formulé :

Bah non, une cross Gentoo serait très pratique ! J'aimerai bien cross
compiler pour un 68040 sur mon Athlon 64 ;-)



Qu'est ce qui t'en empêche ?




Ouais, c'est vrai ça. Si la cross compilation n'est pas prévue, elle ne
doit pas être si bien que ça comme distribution. D'un autre coté si
xcompiler un système était aussi simple que booter sur cd et remplir un
fichier de conf, ce serait inintéressant, enfin je trouve.
Moi je dis mandrake rulez, au moins avec elle on est à l'abris de se
genre de considérations.


Pour mon P-3 450/128Mo, c'est quelle version de la Mandrake? Parce que
soit on met la dernière, et ça rame comme c'est pas permis, soit on met
une ancienne, et bonjour les versions des programmes (sans compter les
bugs non corrigés et les trous de sécurité)...

Ensuite, c'est la Mandrake 10 Amd64 qui m'a définitivement dégouté de
Mandrake: instable, gourmande, et payante mais sans support!!!

(...)




Avatar
TiChou
Dans le message <news:41a49615$0$32301$,
*Web Dreamer* tapota sur f.c.o.l.configuration :

Perso si j'avais mon entreprise avec des postes sous Gentoo (genre chaque
employé a un portable donc devant pouvoir être autonome), je prendrais N
machines identiques, et ferait les compiles et M.A.J. sur une seule
désignée pour celà, si la M.A.J. marche, hop un dd des partitions (sauf
/home) et le voilà le système est à jour sur toutes les machines sans
avoir eu besoin de les monopoliser pour une compile chacune pendant
plusieurs jours.


La Gentoo a prévu de nombreuses possibilités pour réduire les temps de
compilation et pour éviter de recompiler des paquets identiques sur chacune
des machines d'un parc de Gentoo. Comme d'habitude, plusieurs de ces
possibilités se définissent grâce à la variable FEATURES du fichier
/etc/make.conf qui constitue, rappelons-le, le c½ur central de la
configuration de la Gentoo.

Premièrement, on peut installer sur une machine un paquet Gentoo à partir
des sources tout en déportant la compilation sur une ou plusieurs machines
présentes sur le réseau local grâce à distcc. Ça permet d'une part de
répartir la charge sur plusieurs machines tout en utilisant seulement leurs
ressources disponibles c'est-à-dire sans « étouffer » les services important
qui tournent dessus. Et d'autre part ça permet d'accélérer grandement les
temps de compilation.
De plus il n'y a même pas besoin que les machines sur lesquelles se fait la
compilation, soient des Gentoo ou qu'elles soient de la même architecture
(sous certaines conditions). Il suffit juste que le majeur et le mineur de
la version de gcc installée sur les machines soient les mêmes.

Deuxièmement, l'utilisation de ccache s'avère très utile car il permet
d'éviter de recompiler des parties de codes qui auraient été déjà compilées
et qui seraient présentes dans son cache. Là aussi ça permet d'accélérer
grandement les temps de compilation, surtout lors des mises à jour ou des
recompilations des paquets puisque seules les nouvelles parties de codes
seront alors compilées, si bien sûr le cache est suffisamment grand.

Troisièmement, quand on a plusieurs machines tournant sous Gentoo avec des
options communes, on a alors tout intérêt à utiliser des paquets binaires.
Et sous Gentoo rien de plus simple pour construire un paquet binaire ou pour
installer un paquet binaire provenant de l'extérieur.
Pour installer et construire un paquet binaire à partir des sources, on
utilisera l'option --buildpkg de emerge. Le paquet binaire sera alors placé
par défaut dans la hiérarchie du répertoire /usr/portage/packages (variable
PKGDIR). On peut alors très bien envisager exporter ce répertoire en NFS sur
les autres machines qui pourront donc installer les paquets binaires
présents dans ce répertoire avec l'option --usepkg de emerge.
Si on veut créer un paquet binaire à partir des binaires déjà compilés et
installés sur la machine, on utilisera alors simplement la commande quickpkg
qui elle aussi placera par défaut le paquet dans /usr/portage/packages.
On peut aussi créer ses propres dépositaires de paquets binaires en les
plaçant sur des serveurs http, ftp ou rsync et pour installer ces paquets à
partir de ces serveur on définira la liste des serveurs dans la variable
PORTAGE_BINHOST et on utilisera l'option --getbinpkg de emerge.

En résumé, on pourra ajouté dans la variable FEATURES les arguments distcc,
ccache et/ou buildpkg.
Je recommande aussi vivement de mettre buildsyspkg dans la variable
FEATURES. Ça permet de conserver sous forme de paquets binaires tous les
paquets systèmes de la Gentoo et cela peut alors s'avérer très utile pour la
restauration d'une Gentoo corrompue.

J'en profite pour rappeler quelques liens et documentations très utiles :

man make.conf

man emerge

http://www.gentoo.org/doc/fr/distcc.xml

http://www.gentoofr.org/commentaire.php?id_lien&mod=1&id3

http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?part=2&chap=3

http://forums.gentoo.org/viewtopic.php?t3161


Ah, un dernière remarque. Il faut arrêter de penser que les temps de
compilation sont si long que ça ! C'est d'autant plus vrai avec des machines
récentes (> 1GHz).

--
TiChou

Avatar
Ronald
Le Thu, 25 Nov 2004 00:47:56 +0100, Jerome Lambert a écrit :



Dans le message <news:, *Sebastien Kirche* tapota
sur f.c.o.l.configuration :


no spam a formulé :

Bah non, une cross Gentoo serait très pratique ! J'aimerai bien cross
compiler pour un 68040 sur mon Athlon 64 ;-)



Qu'est ce qui t'en empêche ?




Ouais, c'est vrai ça. Si la cross compilation n'est pas prévue, elle
ne doit pas être si bien que ça comme distribution. D'un autre coté
si xcompiler un système était aussi simple que booter sur cd et
remplir un fichier de conf, ce serait inintéressant, enfin je trouve.
Moi je dis mandrake rulez, au moins avec elle on est à l'abris de se
genre de considérations.


Pour mon P-3 450/128Mo, c'est quelle version de la Mandrake? Parce que
soit on met la dernière, et ça rame comme c'est pas permis, soit on met
une ancienne, et bonjour les versions des programmes (sans compter les
bugs non corrigés et les trous de sécurité)...

Ensuite, c'est la Mandrake 10 Amd64 qui m'a définitivement dégouté de
Mandrake: instable, gourmande, et payante mais sans support!!!

(...)


Ah mais c'est tout récent alors, la 10 n'est pas très ancienne il me
semble, ce que je reprocherais plutôt à mandrake c'est son côté
fermé: tu veux quelque chose de non prévu en package, tu risques de
galérer, une autre version que celle proposé en package pareil, tu veux
alléger un peu l'installation tu ne peux pas grand chose, tu veux
installer un noyau depuis les sources tu te retrouves avec un système non
fonctionnel ou à moitié¹, enfin d'après les souvenir que j'en ai c'est
à dire la 7.1 c'était comme ça.
Quand je dis mandrake rulez [...], c'est plutôt pour souligner qu'avec
elle tu n'as pas à te poser de questions², rpmdrake s'occupe de tout .

¹ en fait le système est pleinement fonctionnel, mais pas à la façon
mandrake avec tout ce qu'ils ajoutent (ex supermount).
² genre je mets quoi dans CFLAGS, c'est --host ou c'est --build ...





2 3 4 5 6