82 votes

Comment mettre à jour Cygwin depuis la ligne de commande de Cygwin?

Pour rechercher et télécharger un package manqué dans Cygwin, je dois exécuter setup.exe GUI à chaque fois, cliquer plusieurs fois et faire d'autres choses ennuyeuses.

Y a-t-il un moyen de faire la même chose directement depuis la ligne de commande de Cygwin? Comme le font les outils apt-get.

42voto

Metaxal Points 353

Regardez ici:

Outre les autres choses, cela donne la liste des options suivantes pour setup.exe:

Options de la ligne de commande :
 -A --disable-buggy-antivirus           Désactive les packages de logiciels antivirus suspects ou connus pendant l'exécution.
 -C --categories                        Spécifie les catégories entières à installer
 -D --download                          Télécharge depuis internet
 -d --no-desktop                        Désactive la création d'un raccourci sur le bureau
 -h --help                              affiche de l'aide
 -K --pubkey                            Chemin vers un fichier de clé publique supplémentaire (format gpg)
 -L --local-install                     Installer depuis un répertoire local
 -l --local-package-dir                 Répertoire de packages locaux
 -n --no-shortcuts                      Désactive la création de raccourcis sur le bureau et dans le menu Démarrer
 -N --no-startmenu                      Désactive la création d'un raccourci dans le menu Démarrer
 -O --only-site                         Ignore tous les sites sauf -s
 -P --packages                          Spécifie les packages à installer
 -p --proxy                             Proxy HTTP/FTP (hôte:port)
 -q --quiet-mode                        Mode d'installation silencieux
 -r --no-replaceonreboot                Désactive le remplacement des fichiers en cours d'utilisation au prochain redémarrage.
 -R --root                              Répertoire d'installation de base
 -S --sexpr-pubkey                      Clé publique supplémentaire au format s-expr
 -s --site                              Site de téléchargement
 -U --keep-untrusted-keys               Utiliser des clés non fiables et les conserver toutes
 -u --untrusted-keys                    Utiliser des clés non fiables du dernier extrakeys
 -X --no-verify                         Ne pas vérifier les signatures setup.ini

Ainsi, setup.exe -P devrait faire le travail. Je n'ai pas cygwin ici, alors testez-le pour confirmez qu'il fonctionne comme prévu.

Pour rechercher un package, comme indiqué ici:

vous pouvez utiliser cygcheck -p:

  cygcheck -p REGEXP
  ...
  -p, --package-query  recherche REGEXP dans l'ensemble du référentiel de packages cygwin.com (nécessite une connectivité internet)

ce qui produit une sortie comme (exemple du site ci-dessus):

$ cygcheck -p 'libexpat.*\.a'
Trouvé 2 correspondances pour 'libexpat.*\.a'.

expat-1.95.7-1            Bibliothèque d'analyseur XML écrite en C
expat-1.95.8-1            Bibliothèque d'analyseur XML écrite en C

26voto

Gigorga Points 11

Ceci effectue une mise à niveau non assistée de tous les composants Cygwin pour 64 bits :

cd C:\cygwin
wget -N https://cygwin.com/setup-x86_64.exe
setup-x86_64.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode

Ceci effectue une mise à niveau non assistée de tous les composants Cygwin pour 32 bits :

cd C:\cygwin
wget -N https://cygwin.com/setup-x86.exe
setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode

Vous devriez redémarrer après la mise à niveau pour éviter que les applications Cygwin ne se comportent mal en raison de cygwin1.dll mis à jour.

  • --no-desktop Désactive la création du raccourci sur le bureau
  • --no-shortcuts Désactive la création des raccourcis sur le bureau et dans le menu Démarrer
  • --no-startmenu Désactive la création du raccourci dans le menu Démarrer
  • --quiet-mode Mode d'installation non assistée

10voto

Chris Charabaruk Points 384

Une solution alternative serait d'utiliser le apt-cyg script disponible sur GitHub.

7voto

user1100006 Points 11

L'emplacement de l'installation de Cygwin semble avoir changé et divisé. Maintenant, vous avez besoin soit de

wget http://cygwin.com/setup-x86.exe

ou

wget http://cygwin.com/setup-x86_64.exe

5voto

L'installeur permet cela en ligne de commande (shell élevé, s'il vous plaît) :

setup-x86.exe --root c:\cygwin -q --upgrade-also

pour la version 64 bits :

setup-x86_64.exe --root c:\cygwin -q --upgrade-also

Détails :

  • Remplacez c:\cygwin par le répertoire d'installation racine de votre CygWin.
  • Il est suggéré de fermer toute fenêtre CygWin ou tout programme (par exemple : net stop sshd si vous avez installé OpenSSH).
  • Le paramètre -q n'est pas obligatoire.

Fonctionne via une GUI (shell DOS) ou même sur une console distante (SSH ou telnet). Non testé sur PowerShell (quelqu'un l'a fait ?).

Exemple de sortie de mise à jour correcte :

G:\Instalac\CygWin\v2.852>Démarrage de l'installation de cygwin, version 2.852
L'utilisateur a des droits de sauvegarde/restauration
Répertoire actuel : g:\Instalac\CygWin\Packages
Impossible d'ouvrir le service McShield pour la requête, le démarrage et l'arrêt. McAfee peut ne pas être installé, ou nous n'avons pas accès.
root : c:\cygwin système
Répertoire local sélectionné : g:\Instalac\CygWin\Packages
net : Direct
Liste de miroirs mise en cache
get_url_to_membuf http://cygwin.com/mirrors.lst
getUrlToStream http://cygwin.com/mirrors.lst
site : http://ftp.hawo.stw.uni-erlangen.de/cygwin/
get_url_to_membuf http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2
getUrlToStream http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2
get_url_to_membuf http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2.sig
getUrlToStream http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2.sig
Modification du gid à l'original
Visité : 122 nœuds sur 4415 pour la création de l'ordre des dépendances.
Ordre de dépendance des packages : _autorebase base-cygwin cygwin _update-info-dir libgcc1 libiconv2 libintl8 alternatives libattr1 li
bgmp10 coreutils libstdc++6 terminfo libncursesw10 libreadline7 bash findutils sed base-files libuuid1 libblkid1 libsmartcols1 zl
ib0 util-linux bashdb zlib-devel binutils libbz2_1 bzip2 libffi6 libp11-kit0 libtasn1_6 p11-kit p11-kit-trust ca-certificates cry
pt libmpfr4 gawk editrights libpcre1 grep libsigsegv2 diffutils csih cygrunsrv popt libpopt0 cygutils cygwin-devel dash file liba
tomic1 libcloog-isl4 libgomp1 libisl10 libmpc3 libquadmath0 libssp0 w32api-headers w32api-runtime windows-default-manifest gcc-co
re libexpat1 liblzma5 libdb4.8 libgdbm4 libopenssl100 libsqlite3_0 libcharset1 libiconv libintl-devel libuuid-devel python gdb li
bargp getent groff gzip hostname info ipc-utils libncurses10 less libapr1 libiodbc2 libmysqlclient18 libcom_err2 libkrb5support0
libk5crypto3 libkrb5_3 libgssapi_krb5_2 libsasl2_3 libopenldap2_4_2 perl openssl libpq5 libaprutil1 libedit0 libproxy1 libneon27
libpipeline1 libserf1_0 login lynx make man-db mintty nano ncurses openssh procps psmisc rebase run screen subversion xz tar tzco
de vim-minimal which zsh
Modification du gid en Administrateurs
Fin d'installation de cygwin

Si, lors de la mise à jour, vous avez rencontré des problèmes comme ceux-ci :

Les DLL suivantes n'ont pas pu être repositionnées en raison d'erreurs :
  /usr/bin/cygcrypt-0.dll

ou :

Les DLL suivantes n'ont pas pu être repositionnées car elles étaient en cours d'utilisation :
  /usr/bin/cygcrypt-0.dll

ou :

ReBaseImage (/usr/bin/cygcrypt-0.dll) a échoué avec le dernier code d'erreur = 6

...alors vous devez repositionner après l'installation :

1.- Fermer toute fenêtre CygWin, les programmes et les services.
2.- Ouvrir c:\CygWin\bin\ash.exe en tant qu'administrateur (élevé).
3.- Exécuter /bin/rebaseall.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X