Quelle est la taille actuelle de Cygwin?

chaque source que j'ai trouvé en ligne dit une installation complète de Cygwin prend plus de 1 Go, mais la mienne est seulement 100 Mo. J'étais assez sûr que j'ai tout téléchargé depuis les serveurs miroirs, mais l'installation a pris moins de 5 minutes à compléter au lieu des heures, comme je m'y attendais si elle installait des gigaoctets de logiciel.

est-ce que Cygwin a fait un gros nettoyage entre 2012 et 2013,ou est-ce que j'ai fait quelque chose de mal dans l'installation?

32
demandé sur einpoklum 2014-01-20 13:45:12

5 réponses

une installation Cygwin complète peut varier de 23 à 112 GiB, en fonction de la définition de "full"."

votre nombre de 100 Mo me dit que vous venez de cliquer à travers les valeurs par défaut présentées par le programme setup-*.exe de Cygwin, en sélectionnant aucun paquet optionnel, parce que cela installe seulement le paquet de Base, qui s'élève actuellement à 0,1 GiB. Cygwin suit le modèle moderne de distribution de logiciels connectés au réseau: il suppose que vous pouvez lancer setup-*.exe à nouveau et sélectionner nouveaux paquets selon vos besoins.

les mainteneurs Cygwin essayent de garder le paquet de la catégorie de Base aussi petit que possible.1 une installation de base Cygwin vous donne quelque chose comme une installation Unix de style ancien, couvrant un peu plus que ce que POSIX spécifie .

alors comment Do vous obtenez une Installation complète?

L'installateur Cygwin n'a pas de façon évidente d'obtenir un installation" complète", volontairement, parce que personne n'a besoin littéralement de chaque paquet dans le dépôt Cygwin.2

il y a, cependant, une façon sournoise de tout installer. À l'Sélectionner les Paquets écran...

Screenshot showing the install-everything trick

...passez à la vue de catégorie, puis cliquez sur le texte " par défaut "à la droite de l'en-tête de groupe" tous". Il va changer de "Install", comme le texte correspondant dans tous les groupes dessous il. Cela marque tout pour l'installation.

j'inclus ce conseil pour être complet seulement. Vous faites pas voulez le faire! Il installera des gigs et des gigs de trucs que vous n'utiliserez jamais. Actuellement,il y a 11242 paquets dans Cygwin, 3 et l'installation de chacun d'eux a pris 93 GiB d'espace disque pour l'arbre d'installation plus 19 GiB pour le tree download la dernière fois que je l'ai essayé. Cela donne la limite supérieure de 112 GiB ci-dessus.

Tout ce logiciel inutilisé entraîne plusieurs coûts. Même si l'espace disque, le temps de téléchargement, le temps d'installation, le temps de rebasage , et l'utilisation de la bande passante locale sont sans conséquence pour vous, considérez le généreux miroir libre bande passante gaspillée.

j'ai fait l'expérience, donc maintenant vous n'avez pas à le faire.

Une Installation Intelligente " Complète

je suis venu avec un ensemble simple de règles d'exclusion de paquet qui résulte en une installation beaucoup plus petite:

  1. sautez tous les paquets -debuginfo . Peu de gens en ont besoin, et ils prennent un lot de l'espace. économies: environ 53 GiB dans l'arbre d'installation Seul; plus dans l'arbre de téléchargement.

    il est facile d'appliquer cette règle. Après avoir sélectionné Tous les paquets à installer avec le avant de passer à l'écran suivant, cliquez sur le texte "Install" à côté de l'en-tête de la catégorie "Debug" jusqu'à ce qu'il revienne à "Default"."

    si vous avez déjà installé les paquets de débogage, cliquez sur ce texte jusqu'à ce qu'il dise" désinstaller " à la place.

  2. N'installent pas explicitement les paquets lib* . Que Cygwin's setup-*.exe installe automatiquement les bibliothèques pour satisfaire les dépendances des paquets. épargne: environ 5 GiB "

    pour appliquer cette règle, changez la catégorie" Libs "en" Default "ou" Uninstall "comme vous l'avez fait avec la catégorie" Debug". L'installateur trouvera les bibliothèques dont vous avez réellement besoin dans une étape ultérieure.

  3. sauter les cross-compilateurs et les paquets associés. Encore une fois, peu de gens ont besoin de ces.Épargne: environ 4 GiB

    il existe deux grands ensembles d'outils de développement croisés à Cygwin: l'ensemble pour créer des exécutables Cygwin de l'autre word size (c'est-à-dire des outils 64 bits et des bibliothèques pour Cygwin 32 bits, ou vice versa) et l'ensemble pour construire MinGW exécutables de la même taille de mot que votre installation Cygwin.

    pour appliquer cette règle pour une installation Cygwin 64 bits, tout en restant sur l'écran "Select Packages" , tapez cygwin32- dans la zone de recherche du nom du paquet en haut de cet écran, puis cliquez sur le texte Default à côté de chaque catégorie de premier niveau jusqu'à ce qu'il tourne vers Default ou Uninstall , comme ci-dessus.

    répétez pour mingw64- .

    L'idée est la même pour Cygwin 32 bits, sauf que vous recherchez et excluez les paquets avec cygwin64- et mingw32- dans leurs noms à la place.

en suivant ce jeu de règles, j'ai pu installer presque tout, ne prenant que 23 GiB.

Éplucher Que Vers Le Bas

nous pouvons obtenir l'installation d'être encore plus petit en excluant plusieurs autres porcs de disque notoires:

  • X11 , les environnements de bureau, et les applications GUI ensemble exigent environ 11 GiB.⁷

  • une installation Cygwin Base + Devel atteint environ 10 GiB.

  • une installation de la catégorie Cygwin Base + TeX prend environ 5 GiB. Si vous n'installez que le paquet de support de votre langue maternelle, il s'élève à environ 3.7 GiB à la place.

  • L'ensemble des paquets -doc combinaient environ 5 GiB d'espace disque.

Quelqu'un qui n'est pas un le développeur de logiciels, qui n'utilise pas Cygwin pour les trucs GUI, qui utilise le Web pour les docs, et qui n'utilise pas TeX pour la création de documents pourrait donc avoir une installation Cygwin "complète" en seulement environ 1 GiB.⁸

si vous utilisez Cygwin comme il est prévu, en installant la base et seulement les paquets supplémentaires dont vous avez besoin pour le moment, vous n'obtiendrez probablement même pas votre taille d'installation à ces niveaux. J'utilise Cygwin de cette façon, et mes installations sont généralement bien sous 1 GiB, pourtant ils sont "complets" par mes lumières, puisqu'ils répondent à mes besoins actuels.

Pour Plus De Plaisir À Remplir Le Disque...

tous ces tests ont été effectués avec la version 64 bits de Cygwin. Vous pouvez à peu près doubler les besoins d'espace ci-dessus en installant une installation Cygwin parallèle 32 bits.⁹

cela n'est pas inutile. C'est une alternative viable à l'utilisation de compilateurs croisés, pour une chose. Pour un autre, le incompatibilité fondamentale des deux Cygwins signifie que vous pouvez avoir besoin des deux.


notes de bas de page

  1. il y a des fils occasionnels sur la liste de diffusion Cygwin où quelqu'un fait valoir qu'un paquet très commun devrait être inclus dans la catégorie de Base, comme Perl, et le résultat est généralement que les mainteneurs décident de ne pas l'ajouter à la Base.

    vous voyez aussi parfois le contraire: un paquet se glisse accidentellement dans la Base, généralement via une dépendance incorrecte. Peu de temps après que le problème est porté à l'attention des responsables de Cygwin, le statu quo ante est restauré. ( exemple )

  2. peut-être ai-je tort.

    Il y pourrait être un malvoyants tchèque immigré musicien qui termine du gouvernement AMÉRICAIN de développement de logiciels contrats sur le côté pendant le temps de brossage sur sa technique Hindi le vocabulaire de la traduction de génie électrique rapports dans sa adopté Mandarin .

    je veux pour le rencontrer. Il sonne comme un homme intéressant.

    de Plus, je pense que je peux l'aider avec son plan visant à créer un Tcl/Tk frontal graphique pour Orpie . Naturellement, je vais essayer de le convaincre de le porter de Ocaml à C++ / Qt .

    Je veux dire, Tcl/Tk, sérieusement? Dans 2018 ? Ne soyons pas ridicule.

  3. curl -s https://cygwin.com/packages/package_list.html | grep -c x86_64/

  4. Cygwin's setup-*.exe ne supprime pas les fichiers paquets téléchargés après leur installation. Ceci est utile sur les sites où vous avez plusieurs installations Cygwin, puisque vous pouvez mettre le répertoire de téléchargement sur un lecteur réseau partagé. Chaque paquet ne doit ensuite être téléchargé qu'une seule fois sur ce site.

    ma limite supérieure de 105 GiB suppose que vous allez télécharger et installez-vous sur le même disque, et que vous garderez l'arbre de téléchargement au cas où vous auriez besoin de le réinstaller plus tard.

    non seulement setup-*.exe ne supprime pas les fichiers package téléchargés après leur installation, il ne auto-purge pas les anciennes versions, de sorte que votre arbre de téléchargement se développe et se développe au cours des années que vous utilisez Cygwin. (Il y a des scripts flottant autour du net pour résoudre ce problème, comme celui-ci .)

    toutes les valeurs de stockage de données dans cette réponse sont des nombres d'utilisation de disque apparents - du -bhs - plutôt que réel les numéros d'utilisation de disque, qui expliquerait le système de fichiers de tête , puisque cela varie entre les systèmes. Cela affecte l'arborescence d'installation à un degré beaucoup plus grand que l'arborescence de téléchargement car la proportion de petits fichiers est beaucoup plus grande dans l'arborescence d'installation. Attendez quelque chose comme +1% dans l'arbre de téléchargement et +5% dans l'arborescence de l'installation.

  5. vous pouvez vous demander pourquoi il y a des bibliothèques dans le dépôt de paquets Cygwin dont vous n'avez pas besoin même si vous avez installé "tous" les paquets. Il y a plusieurs raisons:

    • certaines bibliothèques sont obsolètes, mais sont toujours présentes sur les miroirs

    • certaines bibliothèques viennent sous plusieurs formes alternatives, de sorte que les gens qui savent qu'ils ont besoin de quelque chose d'autre que la valeur par défaut peuvent choisir

    • certaines bibliothèques ne sont là que pour les personnes qui écrivent leurs propres programmes, pas pour supporter un paquet existant de Cygwin

  6. à peu près les seules personnes qui ont besoin des compilateurs croisés Cygwin sont les personnes qui maintiennent les paquets Cygwin, puisque les mainteneurs sont censés construire à la fois pour 32 bits et 64-bit Cygwin à moins qu'il n'y ait une bonne raison de ne pas le faire.

    il y a probablement plus de gens avec une bonne justification pour MinGW cross-development tools, mais il y a aussi la possibilité D'utiliser MinGW et MSYS à la place de Cygwin. Aussi, je devine que le nombre de personnes qui ne dual-stack Cygwin + MinGW développement est plus petit que l'ensemble des personnes qui utilisent l'un ou l'autre exclusivement, ou presque.

  7. Il n'est pas facile à faire cette exclusion, parce que les paquets GUI sont dispersés dans le système D'emballage Cygwin, et leur catégorie supérieure contient souvent des logiciels non GUI, donc vous ne pouvez pas simplement exclure toute la catégorie. (par exemple les Mathématiques.)

    la première passe est d'exclure les catégories X11, GNOME, KDE, LXDE, MATE, Xfce, et jeux en utilisant la même technique de visionnement des catégories que ci-dessus.

    ensuite, en utilisant la boîte de recherche comme nous l'avons fait pour l'exclusion du compilateur croisé ci-dessus, supprimer mise en correspondance des paquets gtk , gnome , qt , et kde , en excluant éventuellement ceux des paquets Devel, Debug ou Libs, si vous en avez besoin.

    enfin, vous devrez passer à la vue en attente et exclure manuellement un tas de paquets qui n'ont pas été pris par l'une de ces deux exclusions larges: Abiword , Calligra , Celestia , Dia , Evince , Geany , gEdit , Geomview , Gimp , gLabels , GnuCash , Gnumeric , Kalzium , KMyMoney , Kolourpaint , Konqueror , Krita , KStars , LyX , Marble , Pidgin , QupZilla , Scribus , "Skrooge , spectacle , Stellarium , Tellico , et Vinagre . Si vous n'excluez pas ceux-ci, ils traîneront en arrière dans la plupart de ce que vous excluez ci-dessus comme dépendances!

  8. vous pouvez noter que la taille de tous les ensembles de paquets exclus s'élève à plus de 23 GiB de l'installation "intelligente complète". Cela est dû à des dépendances partagées. C'est-à-dire, ces dimensions se chevauchent dans une certaine mesure.

  9. si vous mettez les deux programmes setup-*.exe dans le même répertoire, ils partageront l'arbre de téléchargement afin que tous les Les paquets noarch ne sont téléchargés qu'une seule fois pour les deux Cygwins. Entre cela et le fait que les compilateurs Intel 32-bit et 64-bit génèrent du code qui diffère en taille, l'installation des deux Cygwins ne tout à fait double l'exigence d'espace disque.

84
répondu Warren Young 2018-05-28 19:59:28

lors de l'installation de paquets pour la première fois, setup*.exe n'installe pas tous les paquets. Seuls les paquets de base minimaux de la distribution Cygwin sont installés par défaut. Cliquer sur catégories et paquets dans la configuration*.l'écran d'installation du paquet exe vous donnera la possibilité de contrôler ce qui est installé ou mis à jour. En cliquant sur le champ" Default "à côté de la catégorie" All", vous aurez la possibilité d'installer tous les paquets Cygwin. installation et mise à jour des paquets Cygwin

3
répondu Georgio 2014-01-20 12:21:17

j'aimerais ajouter à ce fil. Cette approche vous donne un leaner, meaner, bare-bones, minimum Cygwin install, avec juste les outils/éléments dont vous avez besoin. Pas de bloat de dépendance, pas de paquets indésirables, fichiers, etc.

J'ai essayé avec Cygwin d'obtenir un" bare-bones", installation minimale. Je ne trouve que l'installation des utilités comme grep, gawk, sed et outils similaires a des dépendances sur cygwin, base-Cygwin et parfois des outils indésirables comme bash, coreutils etc.

je voulais seulement installer les outils et leurs dlls nécessaires et j'ai commencé à examiner le paquet Cygwin. J'ai découvert que je n'utilisais pas la configuration.exe fourni par Cygwin est une alternative pour accomplir des installations minimales de Cygwin.

et voilà comment je l'ai fait:

  1. ne téléchargez que les paquets que vous voulez à partir de L'un des miroirs Cygwin sites utilisant ftp ou http. Alternativement, vous pouvez utiliser le configuration.EXE fourni par Cygwin pour télécharger tous les paquets - télécharger uniquement et aucune installation.
  2. une fois le téléchargement terminé avec succès, les paquets comme zlib, gawk, grep, libiconv se trouvent sous x86/release ou x86_64 / release répertoire Chaque paquet est ' tar'Red et comprimé à l'aide de l'outil "xz" ou bzip et stocké dans annuaire.
  3. pour installer un outil spécifique comme sed ou gawk, tout cela doit être fait, c'est d'extraire le l'outil exécutable et son dépendance.( dll)

avant de tenter ce qui suit, s'il vous plaît assurez-vous d'avoir un outil comme 7z.exe, xz.exe, bzip2 ou autre qui est capable de décompresser an .xz ou bzip archive

installer gawk exemple ci-dessous:

  1. Extrait de gawk.exe de gawk-4.1.3-1.tar.XZ archive utilisant la commande 7z.exe e -so gawk-4.1.3-1.tar.xz | tar xvf -
  2. une fois que c'est fait, vous devriez trouver gawk.EXE dans un sous-dossier habituellement, usr / bin sous le dossier release /gawk
  3. Trouvez les dépendances pour gawk, vous pouvez le faire de plusieurs façons.

examinez la configuration de Cygwin.fichier ini trouvé dans le dossier x86 ou x86_64. Recherchez la chaîne "@ gawk' et dans les lignes après cette ligne, vous devriez trouver une ":" la ligne qui répertorie les dépendances. Le mien se lit comme ceci - "exige: bash cygwin libgmp10 libintl8 libmpfr4 libreadline7 "

pour que gawk s'exécute, bash n'est pas un must puisque nous avons l'interpréteur de commandes windows. (bash est inclus pour obtenir quelques autres dlls requis par gawk. Cependant, cela provoque beaucoup plus de fichiers inutiles à installer. Les autres dépendances contiennent des fichiers que gawk doit exécuter.

extraire chacun des paquets ci-dessus en utilisant des outils comme 7z ou xz dans des fichiers individuels.

après avoir extrait toutes les dépendances, copiez vos outils nécessaires (grep/sed / gawk) dans un dossier et tous les dépendants .dlls

Vous devriez maintenant être en mesure d'exécuter votre outil avec le minimum de .dlls requis dans une installation cygwin bare-bones.

attention : il n'est peut-être pas suffisant d'extraire les dépendances listées dans setup.ini pour chaque outil. Parfois, vous pouvez avoir besoin d'Exécuter/Exécuter l'outil pour découvrir qu'il y a plus de dlls requis.

Il existe d'autres moyens de trouver les fichiers dll requis par un .exe-vous pouvez utiliser dumpbin à partir de MS ou de dépendances walker, ndepends ou des outils similaires pour trouver la liste des dlls dépendants

Consult - Comment puis-je détecter les LLD requises par une demande? Comment puis-je savoir quels dlls un exécutable chargera?

j'ai aussi forcé cette dll info en exécutant l'outil et en installant les dlls manquants listé un par un en extrayant des paquets requis.

quand vous exécutez un outil et qu'il se trompe avec un manquant .dll message, recherchez le paquet qui contient la dll ici - https://cygwin.com/cgi-bin2/package-grep.cgi . Entrez le plein/partiel nom de la dll manquante pour trouver le nom du paquet contenant les dll.

finalement, j'ai fini avec une installation de cygwin bare-bones avec seulement les outils et dlls que j'ai besoin.

exemple: gawk-gawk.exe et les dll suivantes - cygwin1.dll, cyggmp-10.dll, cygiconv-2.dll, cygintl-8.dll, cygmpfr-4.dll, cyggcc_s-seh-1.dll, cygncursesw-10.dll, cygreadline7.DLL sed-sed.exe et dlls-cygwin1.dll, cygintl-8.dll

j'Espère que cela est jugé utile. L'installateur Cywin fait aussi dll re-basing, que je ne m'aventurerai pas ici.

1
répondu Agnatha 2017-05-23 12:25:54

je viens de faire une installation complète de Cygwin x64 (2018-01-03) sur Windows 7 SP1 x64 Ultimate:

dossier Cygwin (qui par défaut est C:\cygwin64 ) a les propriétés suivantes:

  • Taille: 89.1 GiB (95,671,245,179 octets)
  • Taille sur le disque: 92.3 GO (99,148,398,592 octets)
  • Contient: 1.433.494 Fichiers, 94.363 Dossiers

dossier temporaire Cygwin où les paquets téléchargés sont stockés avant d'être installés (peuvent être supprimés après L'installation de Cygwin):

  • taille: 18.0 GiB (19.363.639.932 octets)
  • Taille sur le disque: 18.0 GiB (19,383,767,040 octets)
  • Contient: 9,711 Fichiers, 10,354 Dossiers
1
répondu Franck Dernoncourt 2018-01-04 01:25:00

sous le devel vous pouvez avoir seulement besoin de ce qui suit:

gcc-core:GNU Compiler collection(C Open MP)
gcc-fortran:GNU Compiler collection(Fortran)
gcc-g++:GNU Compiler collection(C++)
gcc-objc:GNU Compiler collection(Objective-C)

gdb: The GNU Debugger 

make: The GNU version of the "make" utility

Photo

0
répondu TiMr 2017-11-29 17:41:37