Table of Contents

Cygwin

Avoir un vrai environnement de travail sous windows.

Cygwin agît comme un gestionnaire de paquet grâce à son programme d'installation. De nombreux logiciels sont disponibles sous formes exécutables tels que bash, ls, etc.

Good To Know

Permissions des répertoires

Cygwin tente d'implémenter un système POSIX sur la stack Windows. Cela mène sous Vista à la création des répertoires avec des ACE (Access Control Entries, cf. NTFS) spéciales autorisées. Vista a un comportement particulier vis-à-vis de ces répertoires, notamment lors de leur manipulation via l'Explorer qui entame au moindre déplacement un traitement de plusieurs minutes.

Pour empêcher ce “bug”, il faut ajouter l'option “noacl” sur la partition concernée dans la fstab de Cygwin (cf. Réponse de la Cygwin project co-leader sur la ml).

Exemple de fstab:

# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table
 
# This is default anyway:
none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

Utiliser CPAN

L'utilitaire cpan permet de télécharger et d'installer les modules Perl depuis les dépôts CPAN. Lors de la première utilisation, l'utilitaire cherche à s'autoconfigurer en téléchargeant un fichier depuis les dépôts. Derrière un proxy, il n'y parviens pas… or pour lui indiquer d'utiliser un proxy, il faut le spécifier via le fichier de config… FAIL.

Solution : déposer le fichier de config suivant à l'endroit indiqué par l'utilitaire :

$CPAN::Config = {
  'applypatch' => q[],
  'auto_commit' => q[0],
  'build_cache' => q[10],
  'build_dir' => q[/var/spool/cpan/build],
  'build_dir_reuse' => q[0],
  'build_requires_install_policy' => q[yes],
  'bzip2' => q[/usr/bin/bzip2],
  'cache_metadata' => q[1],
  'check_sigs' => q[0],
  'colorize_output' => q[0],
  'commandnumber_in_prompt' => q[1],
  'connect_to_internet_ok' => q[1],
  'cpan_home' => q[/var/spool/cpan],
  'ftp' => q[ ],
  'ftp_passive' => q[1],
  'ftp_proxy' => q[ ],
  'getcwd' => q[cwd],
  'gpg' => q[],
  'gzip' => q[/bin/gzip],
  'halt_on_failure' => q[0],
  'histfile' => q[/var/spool/cpan/histfile],
  'histsize' => q[100],
  'http_proxy' => q[adresse_proxy:port], ### <== HERE ###
  'inactivity_timeout' => q[0],
  'index_expire' => q[1],
  'inhibit_startup_message' => q[0],
  'keep_source_where' => q[/var/spool/cpan/sources],
  'load_module_verbosity' => q[none],
  'lynx' => q[/usr/bin/lynx],
  'make' => q[/usr/bin/make],
  'make_arg' => q[],
  'make_install_arg' => q[UNINST=1],
  'make_install_make_command' => q[/usr/bin/make],
  'makepl_arg' => q[],
  'mbuild_arg' => q[],
  'mbuild_install_arg' => q[],
  'mbuild_install_build_command' => q[./Build],
  'mbuildpl_arg' => q[],
  'ncftp' => q[ ],
  'ncftpget' => q[ ],
  'no_proxy' => q[],
  'pager' => q[/usr/bin/less],
  'patch' => q[/usr/bin/patch],
  'perl5lib_verbosity' => q[none],
  'prefer_external_tar' => q[1],
  'prefer_installer' => q[MB],
  'prefs_dir' => q[/var/spool/cpan/prefs],
  'prerequisites_policy' => q[follow],
  'proxy_pass' => undef,
  'proxy_user' => q[proxy_user], ### <== and HERE ###
  'scan_cache' => q[atstart],
  'shell' => q[/bin/bash],
  'show_unparsable_versions' => q[0],
  'show_upload_date' => q[0],
  'show_zero_versions' => q[0],
  'tar' => q[/bin/tar],
  'tar_verbosity' => q[none],
  'term_is_latin' => q[1],
  'term_ornaments' => q[1],
  'test_report' => q[0],
  'trust_test_report_history' => q[0],
  'unzip' => q[/usr/bin/unzip],
  'urllist' => [q[http://www.perl.com/CPAN/], q[http://cpan.belfry.net/], q[http://www.binarycode.org/cpan]],
  'use_sqlite' => q[0],
  'version_timeout' => q[15],
  'wget' => q[/usr/bin/wget],
  'yaml_load_code' => q[0],
  'yaml_module' => q[YAML],
};
1;
__END__

PS : le setup.exe de Cygwin (le bouzin qui installe les paquets cygwin) nécessite les droits d'admin. Les fichiers que cpan va chercher à modifier appartiennent à l'admin. Il est donc pratique d'exécuter cpan avec un user admin.

Cygwin MotD

      ____________________,             ______________________________________
   .QQQQQQQQQQQQQQQQQQQQQQQQL_         |                                      |
 .gQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ__   |                                      |
 gQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ==   |                    _.---.)           |
 QQQQQQQQQQQQQQQQQQQQQQQQQQQF=         |          (^--^)_.-"      `;          |
 QQQQQQQQQ================!            |          ) ee (           |          |
 QQQQQQQQ                              |         (_.__._)         /           |
 QQQQQQQQ                              |           `--',        ,'            |
 QQQQQQQQ     ~"jjj__,                 |            jgs )_|--')_|             |
 QQQQQQQQ       "jjjjjjjjjj___         |                ""'   ""'             |
 QQQQQQQQ        ~jjjjjjjjjjjjjjjjj__  |                                      |
 QQQQQQQQ        _jjjjjjjjjjjjjj/~~~~  |      The Hippo says: Welcome to      |
 QQQQQQQQ      .{jjjjjjj/~~~~~         |                             _        |
 QQQQQQQQ     .{/~~~~`                 |  ____  _   _   ____  _ _ _ (_) ____  |
 QQQQQQQQ                              | / ___)| | | | / _  || | | || ||  _ \ |
 QQQQQQQQ                              |( (___ | |_| |( (_| || | | || || | | ||
 QQQQQQQQQL_______________,            | \____) \__  | \___ | \___/ |_||_| |_||
 QQQQQQQQQQQQQQQQQQQQQQQQQQQL___       |        (___/  (____|                 |
 4QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ___  |                                      |
 (=QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ====   |       -.-. -.-- --. .-- .. -.        |
   (QQQQQQQQQQQQQQQQQQQQQQQQF=         |______________________________________|

Source: http://patphobos.eklablog.com/motd-cygwin-a2586505

Utils

Pour bénéficier de quelques utilitaires bien utils, installer le paquet cygutils (contient notamment getclip et putclip ; cependant, ces utilitaires ne sont pas nécessaire car cygwin expose maintenant le pseudo-fichier /dev/clipboard !).