Edite ton fichier /etc/network/interfaces. Si tu veux le faire avec un outil graphique utilise kate, kedit, gedit ou mousepad par exemple. Si tu maitrise un editeur non graphique comme mcedit, nano, vi ou emacs utilise plutot ces derniers.
$ sudo kate /etc/network/interfaces
Modifie la section de eth0 de façon à ce qu'elle contienne :
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
Enregistre le fichier et lance les commandes :
$ sudo /etc/init.d/networking restart
$ sudo iptables -t nat -F
$ sudo iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ifconfig devrait te dire que ton eth0 a bien l'IP 192.168.0.1.
Sur ton PC Windows va dans les propriétés TCP/IP de ta carte réseau et utilise ces paramètres :
IP : 192.168.0.2
Masque : 255.255.255.0
Passerelle : 192.168.0.1
DNS : ceux du fichier /etc/resolv.conf du PC Ubuntu
Voilà avec tout cela ça devrait fonctionner pour partager ta connexion.
Avant de lancer Iptables et avant d'activer le forward IPv4 vérifie la connectivité entre tes deux PC. Toujours avec mon exemple d'adresses IP : 192.168.0.1 pour le Ubuntu et 192.168.0.2 pour le Windows.
Depuis le PC Ubuntu :
$ ping 192.168.0.2
Depuis le PC Windows
> ping 192.168.0.1
Si les deux ping ne passent pas, alors pas la peine de continuer... Il faudra d'abord régler le problème de configuration IP/réseau entre les PC.
PC Ubuntu :
Interface réseau eth0 : IP extérieur Free
Interface réseau eth1 : IP LAN (disons 192.168.0.1/255.255.255.0)
PC Windows :
Interface réseau : IP LAN (disons 192.168.0.2/255.255.255.0)
DNS : mettre ceux du fichier /etc/resolv.conf du PC Ubuntu (ceux de Free quoi)
Passerelle/Gateway : IP du PC Ubuntu (192.168.0.1)
Sur le PC Ubuntu, lancer une console et taper :
$ sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Et voila tu as un partage de connexion... mais pas de firewall, grrr :)
Peut-être "(ip.addr==x.x.x.x) and (tcp.port == https)" ?
En tout cas pour ton premier exemple, au premier abord je me demandais si l'algo qui analyse le filtre entré aimait bien le "&&" car dans les exemple de ma distrib' des "and" sont utilisés...
Ce que j'apprécie avec la Freebox c'est qu'on est pas obligé de se servir des fonctions routeur qui proposent entre autre de natter un réseau local et fournir un service dhcp. Cela me permet de me faire ma propre box sur un vieux PC avec GNU/Linux ou *BSD. Pourquoi ? D'abord parce que ca m'amuse, et puis parce que comme ça je peux configurer aux petits oignons les services que je souhaite offrir à mon Lan (redirections de ports et firewall avec IPTables, dhcp, dns, serveur ssh, dyndns, etc.).
Ectuellement je suis chez Wanadoo (enfin Orange), pas le choix... Au début (l'année dernière) ils m'avaient refillé une de leur Livebox... Impossible de s'en servir comme un simple modem ou comme une Freebox, c'est à dire sans les fonctions de routage vers un Lan. Je me suis empressé de la ramenner (chouette 3 euros en moins par mois) et d'acheter un modem adsl classique que j'ai paramétré en PPPOE sur ma box FreeBSD. Je trouve qu'on a beaucoup plus la main sur notre petit réseau personnel.
Peut-être que certain connaissent d'autres FAI, qui comme Free, proposent des box sans être obligé de se servir des fonctions routeur ? Ça m'interesse en particulier puisque je sais que Cegetel et Neuf ont récement dégroupé ma zone (pas Free, snif). Alors je souhaiterai dire bye à Orange, mais seulement si leur box peuvent fonctionner comme une Freebox. Sinon est-ce possible de se servir de son modem adsl classique chez ces deux FAI ou faut-il obligatoirement passer par leurs box pour profiter d'un bon débit ?
Si tu te trouve dans une tty (pas une pts sous X) tu peux utiliser la commande setleds +num.
Si tu te trouve sous X, installe numlockx et lance le au début de ta session X. Par exemple (je prend mon cas ou je lance startx pour démarrer X), il suffit d'ajouter une ligne contenant numlockx au fichier .xsession ou .xinitrc de ton $HOME. Si tu passe pas un gestionnaire de session (gdm, kdm, etc.) je ne sais pas !
Donc tu peux essayer d'ajouter :
- soit OnResume 99 /etc/init.d/alsa-utils restart
- soit RestartServices alsa-utils
A peu près certain que ça marchera si tu utilise suspend2. Mais je ne connais pas Ubuntu. Sur ma Debian, j'ai le patch suspend2 dans le noyau et le script hibernate pour gérer l'endormissement de mon portable.
je veux juste quelques precisions ou puis je installer ce mot de
passe je n en utilise pas sur win?
Sur le poste Windows :
-> panneau de configuration
-> comptes d'utilisateurs
-> créer un nouveau compte
Il faut alors mettre comme nom d'utilisateur celui utilisé sur Ubuntu et même mot de passe.
quand vous dites nom de la machine c est bien le nom de l ordi et pas le nom de l utilisateur ?
Oui le nom de la machine Windows ou son adresse IP (je préfère surtout avec le protocole SMB).
comment puis avoir acces a smb.conf?
Il est là (enfin sur Debian en tout cas) :
/etc/samba/smb.conf
Il faudra peut être aller jetter un oeuil dans les permissions des répertoires Windows partagés si tu veux que ton utilisateur Ubuntu puisse écrire dans ces dossiers (seulement si le nom d'utilisateur Ubuntu n'est pas le même que celui utilisé sous Windows - mais dans ce cas ce n'était pas la peine de créer un nouvel utilisateur Windows).
Je suppose que ton wm/dm respecte les spécification de freedesktop.org. Les paramétrages se situent dans le dossier $HOME/.config/autostart/. Je ne sais pas si le simple fait de créer un lien symbolique vers un exécutable dans ce dossier fonctionne ; mais c'est le cas avec des fichiers .desktop.
Exemple, je veux lancer automatiquement x-terminal-emulator au démarrage du wm/dm. Il faut alors créer le fichier $HOME/.config/autostart/xterm.destop dont le contenu est le suivant :
Par contre je ne sais pas trop ce que je ferai... entre compiler une version officielle -- http://curl.haxx.se -- dans /opt ou /usr/local ou installer ce paquet.
Je pense que j'essairai d'abord par les sources mais si tu veux utiliser le paquet, tu peux tenter :
- apt-get remove --purge libcurl3 ;
- garder sous la main l'éventuelle liste de paquets dépendants qu'apt va virer ;
- dpkg -i libcurl3-dev_7.15.4-1ubuntu2_all.deb (la paquet de edgy) ;
- apt-get install <la liste gardée sous la main>.
Par contre si apt veux me virer des gros paquets bourrins qui risque de faire qu'une fois désinstallés je ne puisse plus rien faire... bah je pense que je passerai par les sources ! Ou alors rajouter une ligne pour les sources d'edgy dans /etc/apt/sources.list puis jouer un peu d'apt tunning et voir si ça serai pas mieux.
Tu as rebooté ??? A priori, tu devrait avoir le choix au démarrage, que ce soit avec Grub ou avec Lilo... Si ça boote et que tout va bien, alors apt-get remove --purge kernel-image-2.4.* et le tour est joué.
PS : pour avoir le nom exacte du paquet correspondant au noyau 2.4 à supprimer utilise dpkg -l |grep "kernel-image" (ou grep "linux-image", je ne sais plus si les noms ont changés sur Sarge).
Si tu n'a pas le nouveau noyau dans le menu de ton boot loader, alors il va falloir l'ajouter à la main en éditant :
- soit /boot/grub/menu.lst pour Grub
- soit /etc/lilo.conf pour Lilo
Si tu doit le faire à la main, prend exemple sur les lignes décrivant le noyau 2.4 et adapte les à ton nouveau noyau. Une fois que tout est bon tu peux supprimer ton ancien paquet du 2.4.
Si je me logue en console sur un des tty et que je lance la commande suivante :
export |grep -i term
... j'obtient le contenu de la variable d'environnement $TERM. Chez moi il s'agit de "linux" sur une debian et de "dtterm" sur un Solaris. Bref essaie de faire par exemple un export TERM="linux" avant de lancer ton interface dialog, peut-être que l'affichage sera meilleur.
Ici[1], il est dit que la valeur "linux" est désormais standard et que les applications curses devraient apprécier. Sinon, il y aurait aussi "console", "con80x25" ou "linux-80x25" à tester.
Tu peux aussi essayer de jouer avec la commande setterm qui semble permettre la modification de certaines options du terminal.
Pour info, Mplayer sait ré-indéxer les vidéo à problème avec le switch "-idx". Je suppose que tu pourrais donc refaire ta vidéo avec Mencoder de la façon suivante :
Salut, bon ça n'a rien à voir avec ton problème mais je te conseil d'essayer beep-media-player qui est très très très plus beau car en GTK2. C'est un clone de xmms, les skin sont compatible (Winamp 2.x aussi)... Essaie, on ne sait jamais, il se pourrait que ça marche et que ce soit plus sympa pour les yeux !
Le second est destiné à remplacer le premier et intègre une librairie de médias mais je préfère BMP qui incarne la règle des 3 "s" : simple, sobre et serein.
C'est vrai que pour quelqu'un qui ne veut pas perdre de temps à apprendre par exemple Perl, PHP peut très bien servir à faire des scripts d'administration système.
Sur le principe ça semble bon... par contre en ce qui concerne l'écriture du nouveau fichier... Si tu as des caractères non alpha (apostrophe, quote, etc) je te conseille d'utiliser les mécanismes perl pour écrire la ligne (open, close, etc).
Je n'ai aucune idée quand à la réussite de ce que je vais te dire mais voici ce que j'essaierai de faire en premier.
1) Tu crés un dossier et tu lui fait deux enfants :p, disons "binary", "binary/lib" et "binary/bin".
2) Tu lances la commande "ldd /chemin/vers/kwebdesktop".
3) Tu copies toutes les librairies listées avec les bon noms. Par exemple si tu vois /usr/lib/libpng12.so.0, il ne faut pas se contenter de copier /usr/lib/libpng12.so car l'exécutable cherchera /usr/lib/libpng12.so.0. En clair soit tu renomme le .so, soit tu fait un lien symbolique comme c'est le cas dans les distributions.
4) Tu copies ton exécutable kwebdesktop dans "binary/bin".
[^] # Re: Croisont les doigts
Posté par omnikron . En réponse au message Connecter deux ordinateurs. Évalué à 2.
Edite ton fichier /etc/network/interfaces. Si tu veux le faire avec un outil graphique utilise kate, kedit, gedit ou mousepad par exemple. Si tu maitrise un editeur non graphique comme mcedit, nano, vi ou emacs utilise plutot ces derniers.
$ sudo kate /etc/network/interfaces
Modifie la section de eth0 de façon à ce qu'elle contienne :
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
Enregistre le fichier et lance les commandes :
$ sudo /etc/init.d/networking restart
$ sudo iptables -t nat -F
$ sudo iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ifconfig devrait te dire que ton eth0 a bien l'IP 192.168.0.1.
Sur ton PC Windows va dans les propriétés TCP/IP de ta carte réseau et utilise ces paramètres :
IP : 192.168.0.2
Masque : 255.255.255.0
Passerelle : 192.168.0.1
DNS : ceux du fichier /etc/resolv.conf du PC Ubuntu
Voilà avec tout cela ça devrait fonctionner pour partager ta connexion.
[^] # Re: Croisont les doigts
Posté par omnikron . En réponse au message Connecter deux ordinateurs. Évalué à 1.
[^] # Re: bridge
Posté par omnikron . En réponse au message Connecter deux ordinateurs. Évalué à 1.
Attention, de base, la Freebox n'est pas un routeur.
[^] # Re: Iptables
Posté par omnikron . En réponse au message Connecter deux ordinateurs. Évalué à 1.
Depuis le PC Ubuntu :
$ ping 192.168.0.2
Depuis le PC Windows
> ping 192.168.0.1
Si les deux ping ne passent pas, alors pas la peine de continuer... Il faudra d'abord régler le problème de configuration IP/réseau entre les PC.
[^] # Re: Sudo...
Posté par omnikron . En réponse au message Droits sur Kubuntu. Évalué à 1.
Fait :
# chmod +x GoogleEarthLinux.bin
Et ré-essaie :
# ./GoogleEarthLinux.bin
Si ça foire encore essaie :
# sh GoogleEarthLinux.bin
Si ça foire toujours, colle nous le résulat des deux commandes suivantes :
# ls -all GoogleEarthLinux.bin
# id
# Iptables
Posté par omnikron . En réponse au message Connecter deux ordinateurs. Évalué à 2.
Interface réseau eth0 : IP extérieur Free
Interface réseau eth1 : IP LAN (disons 192.168.0.1/255.255.255.0)
PC Windows :
Interface réseau : IP LAN (disons 192.168.0.2/255.255.255.0)
DNS : mettre ceux du fichier /etc/resolv.conf du PC Ubuntu (ceux de Free quoi)
Passerelle/Gateway : IP du PC Ubuntu (192.168.0.1)
Sur le PC Ubuntu, lancer une console et taper :
$ sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Et voila tu as un partage de connexion... mais pas de firewall, grrr :)
# Sudo...
Posté par omnikron . En réponse au message Droits sur Kubuntu. Évalué à 2.
On te demande un mot de passe et tu entre celui du compte principal (créé à l'install de la machine). Ca marche comme ça sur toutes les ubuntu.
Rien ne t'interdit de faire :
$ sudo passwd
Ce qui te permet d'affecter un mot de passe à root et de faire tes su comme d'habitude.
[^] # Re: Filtre
Posté par omnikron . En réponse au message ethereal - capture de paquet SSL. Évalué à 1.
En tout cas pour ton premier exemple, au premier abord je me demandais si l'algo qui analyse le filtre entré aimait bien le "&&" car dans les exemple de ma distrib' des "and" sont utilisés...
# Filtre
Posté par omnikron . En réponse au message ethereal - capture de paquet SSL. Évalué à 1.
host x.x.x.x and tcp port 443
Ou cela si tu utilise un filtre d'affichage :
(ip.addr==x.x.x.x) and (tcp.port == 443)
Enfin je sais pas mais essaie les deux, un par un, etc. pour moi c'est ces formats là si on parle de ethereal (ou plutôt wireshark maintenant).
# A propos des box...
Posté par omnikron . En réponse au message Quel Box choisir pour une bonne compatibilité Linux?. Évalué à 2.
Ectuellement je suis chez Wanadoo (enfin Orange), pas le choix... Au début (l'année dernière) ils m'avaient refillé une de leur Livebox... Impossible de s'en servir comme un simple modem ou comme une Freebox, c'est à dire sans les fonctions de routage vers un Lan. Je me suis empressé de la ramenner (chouette 3 euros en moins par mois) et d'acheter un modem adsl classique que j'ai paramétré en PPPOE sur ma box FreeBSD. Je trouve qu'on a beaucoup plus la main sur notre petit réseau personnel.
Peut-être que certain connaissent d'autres FAI, qui comme Free, proposent des box sans être obligé de se servir des fonctions routeur ? Ça m'interesse en particulier puisque je sais que Cegetel et Neuf ont récement dégroupé ma zone (pas Free, snif). Alors je souhaiterai dire bye à Orange, mais seulement si leur box peuvent fonctionner comme une Freebox. Sinon est-ce possible de se servir de son modem adsl classique chez ces deux FAI ou faut-il obligatoirement passer par leurs box pour profiter d'un bon débit ?
# Console ou X
Posté par omnikron . En réponse au message Touche "Verr Num" désactivée au démarrage. Évalué à 2.
Si tu te trouve sous X, installe numlockx et lance le au début de ta session X. Par exemple (je prend mon cas ou je lance startx pour démarrer X), il suffit d'ajouter une ligne contenant numlockx au fichier .xsession ou .xinitrc de ton $HOME. Si tu passe pas un gestionnaire de session (gdm, kdm, etc.) je ne sais pas !
[^] # Re: qques points à eclaircir...
Posté par omnikron . En réponse au message sarge: configurer le reseau en mode console. Évalué à 1.
auto eth0
iface eth0 inet static
address 212.xxx.xxx.xxx
netmask 255.255.255.0
...
Sinon comme ça, pas de firewall activé ? Que donne iptable -L ?
[^] # Re: zut
Posté par omnikron . En réponse au message hibernation sous Ubuntu. Évalué à 1.
Je ne sais pas comment marche l'hibernation sous ubuntu mais chez moi, dans mon /etc/hibernate/hibernate.conf, je vois :
### services
# RestartServices postfix
# StopServices alsasound
# StartServices aumix
ou encore :
### misclaunch
# OnSuspend 20 echo "Good night!"
# OnResume 20 echo "Good morning!"
Donc tu peux essayer d'ajouter :
- soit OnResume 99 /etc/init.d/alsa-utils restart
- soit RestartServices alsa-utils
A peu près certain que ça marchera si tu utilise suspend2. Mais je ne connais pas Ubuntu. Sur ma Debian, j'ai le patch suspend2 dans le noyau et le script hibernate pour gérer l'endormissement de mon portable.
[^] # Re: samba et windows
Posté par omnikron . En réponse au message partage fichiers ubuntu windows. Évalué à 1.
passe je n en utilise pas sur win?
Sur le poste Windows :
-> panneau de configuration
-> comptes d'utilisateurs
-> créer un nouveau compte
Il faut alors mettre comme nom d'utilisateur celui utilisé sur Ubuntu et même mot de passe.
quand vous dites nom de la machine c est bien le nom de l ordi et pas le nom de l utilisateur ?
Oui le nom de la machine Windows ou son adresse IP (je préfère surtout avec le protocole SMB).
comment puis avoir acces a smb.conf?
Il est là (enfin sur Debian en tout cas) :
/etc/samba/smb.conf
Il faudra peut être aller jetter un oeuil dans les permissions des répertoires Windows partagés si tu veux que ton utilisateur Ubuntu puisse écrire dans ces dossiers (seulement si le nom d'utilisateur Ubuntu n'est pas le même que celui utilisé sous Windows - mais dans ce cas ce n'était pas la peine de créer un nouvel utilisateur Windows).
John Doe complera si j'ai oublié quelquechose.
[^] # Re: A mon tour
Posté par omnikron . En réponse au journal L'été est manchot, extrême manchot !. Évalué à 1.
# Freedesktop & autostart
Posté par omnikron . En réponse au message execution de script. Évalué à 1.
Je suppose que ton wm/dm respecte les spécification de freedesktop.org. Les paramétrages se situent dans le dossier $HOME/.config/autostart/. Je ne sais pas si le simple fait de créer un lien symbolique vers un exécutable dans ce dossier fonctionne ; mais c'est le cas avec des fichiers .desktop.
Exemple, je veux lancer automatiquement x-terminal-emulator au démarrage du wm/dm. Il faut alors créer le fichier $HOME/.config/autostart/xterm.destop dont le contenu est le suivant :
[Desktop Entry]
Type=Application
Exec=/usr/bin/x-terminal-emulator
Hidden=False
Terminal=False
Pour lecture :
http://standards.freedesktop.org/autostart-spec/autostart-sp(...)
[^] # Re: Edgy ??
Posté par omnikron . En réponse au message [Ubuntu] CurlFtpFs. Évalué à 1.
http://mir1.ovh.net/ubuntu/ubuntu/pool/main/c/curl/libcurl3_(...)
http://mir1.ovh.net/ubuntu/ubuntu/pool/main/c/curl/libcurl3-(...)
puis :
dpkg -i libcurl3_7.15.4-1ubuntu2_i386.deb libcurl3-dev_7.15.4-1ubuntu2_all.deb
ou en deux fois... au choix.... :o)
# Edgy ??
Posté par omnikron . En réponse au message [Ubuntu] CurlFtpFs. Évalué à 1.
http://packages.ubuntu.com/edgy/libdevel/libcurl3-dev
Par contre je ne sais pas trop ce que je ferai... entre compiler une version officielle -- http://curl.haxx.se -- dans /opt ou /usr/local ou installer ce paquet.
Je pense que j'essairai d'abord par les sources mais si tu veux utiliser le paquet, tu peux tenter :
- apt-get remove --purge libcurl3 ;
- garder sous la main l'éventuelle liste de paquets dépendants qu'apt va virer ;
- dpkg -i libcurl3-dev_7.15.4-1ubuntu2_all.deb (la paquet de edgy) ;
- apt-get install <la liste gardée sous la main>.
Par contre si apt veux me virer des gros paquets bourrins qui risque de faire qu'une fois désinstallés je ne puisse plus rien faire... bah je pense que je passerai par les sources ! Ou alors rajouter une ligne pour les sources d'edgy dans /etc/apt/sources.list puis jouer un peu d'apt tunning et voir si ça serai pas mieux.
[^] # Re: ben comme toutes mises à jours non ?
Posté par omnikron . En réponse au message Changement de noyau pour Debian Sarge. Évalué à 1.
PS : pour avoir le nom exacte du paquet correspondant au noyau 2.4 à supprimer utilise dpkg -l |grep "kernel-image" (ou grep "linux-image", je ne sais plus si les noms ont changés sur Sarge).
Si tu n'a pas le nouveau noyau dans le menu de ton boot loader, alors il va falloir l'ajouter à la main en éditant :
- soit /boot/grub/menu.lst pour Grub
- soit /etc/lilo.conf pour Lilo
Si tu doit le faire à la main, prend exemple sur les lignes décrivant le noyau 2.4 et adapte les à ton nouveau noyau. Une fois que tout est bon tu peux supprimer ton ancien paquet du 2.4.
# $TERM
Posté par omnikron . En réponse au message inittab et dialog. Évalué à 2.
export |grep -i term
... j'obtient le contenu de la variable d'environnement $TERM. Chez moi il s'agit de "linux" sur une debian et de "dtterm" sur un Solaris. Bref essaie de faire par exemple un export TERM="linux" avant de lancer ton interface dialog, peut-être que l'affichage sera meilleur.
Ici[1], il est dit que la valeur "linux" est désormais standard et que les applications curses devraient apprécier. Sinon, il y aurait aussi "console", "con80x25" ou "linux-80x25" à tester.
Tu peux aussi essayer de jouer avec la commande setterm qui semble permettre la modification de certaines options du terminal.
[1] http://www.unixtech.be/docs/howtos/Keyboard-HOWTO-11.html
# Mplayer...
Posté par omnikron . En réponse au message supprimer une frame d'un fichier avi. Évalué à 1.
Pour info, Mplayer sait ré-indéxer les vidéo à problème avec le switch "-idx". Je suppose que tu pourrais donc refaire ta vidéo avec Mencoder de la façon suivante :
$ mencoder -idx origine.avi -oac copy -ovc copy -o destination.avi
Tiens nous au courant, j'ai essayé vite fait sur un bout de fichier AVI et ça semble fonctionner.
# BMP
Posté par omnikron . En réponse au message xmms menu clic-droit vide. Évalué à 1.
http://bmp.beep-media-player.org/index.php/BMP_Homepage
http://bmpx.beep-media-player.org/site/BMPx_Homepage
Le second est destiné à remplacer le premier et intègre une librairie de médias mais je préfère BMP qui incarne la règle des 3 "s" : simple, sobre et serein.
# Bien sûr...
Posté par omnikron . En réponse au message Script pour automatisation. Évalué à 1.
#!/usr/bin/php4-cgi -q
<?php
$i = 3;
$chaine = "hello world!\n";
if($i > 0) {
echo $chaine."\n";
} else {
echo "coucou\n";
}
?>
C'est vrai que pour quelqu'un qui ne veut pas perdre de temps à apprendre par exemple Perl, PHP peut très bien servir à faire des scripts d'administration système.
# Ca doit être bon
Posté par omnikron . En réponse au message Éliminer des lignes dans un fichier à ski.... Évalué à 3.
#!/usr/bin/perl
my $orig_file = "mon_fichier";
my $new_file = "mon_nouveau_fichier";
my @all_lines = `cat $orig_file`;
my $first_skip = 57;
my $n_skip = 3;
my $i = 1;
chomp(@all_lines);
for(my $j=0; $j<scalar(@all_lines); $j++) {
if($i == $first_skip) {
$i = 1;
$j += $n_skip-1;
next;
}
`echo $all_lines[$j] >> $new_file`;
$i++;
}
Sur le principe ça semble bon... par contre en ce qui concerne l'écriture du nouveau fichier... Si tu as des caractères non alpha (apostrophe, quote, etc) je te conseille d'utiliser les mécanismes perl pour écrire la ligne (open, close, etc).
# Une idée...
Posté par omnikron . En réponse au message Obtenir un binaire statique à partir d'un binaire lié dynamiquement. Évalué à 3.
1) Tu crés un dossier et tu lui fait deux enfants :p, disons "binary", "binary/lib" et "binary/bin".
2) Tu lances la commande "ldd /chemin/vers/kwebdesktop".
3) Tu copies toutes les librairies listées avec les bon noms. Par exemple si tu vois /usr/lib/libpng12.so.0, il ne faut pas se contenter de copier /usr/lib/libpng12.so car l'exécutable cherchera /usr/lib/libpng12.so.0. En clair soit tu renomme le .so, soit tu fait un lien symbolique comme c'est le cas dans les distributions.
4) Tu copies ton exécutable kwebdesktop dans "binary/bin".
5) Tu créé le lanceur suivant...
#!/bin/bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/chemin/vers/binary/lib
exec /chemin/vers/binary/bin/kwebdesktop
... que tu chmod afin de le rendre exécutable. Voila, ton programme se lance grace au lanceur... Je pense que ca devrait marcher.
Si tu as beaucoup trop de librairies à copier (command ldd sur l'exécutable), utilise ça :
cp `ldd /usr/bin/kalarm |cut -d " " -f 3 |tr '\n' ' '` /chemin/vers/binary/lib
(attention aux quotes, guillemets, espaces, ...)