windows Cygwin 的当前完整安装大小是多少?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/21230657/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 11:17:27  来源:igfitidea点击:

What is the current full install size of Cygwin?

windowscygwindiskspace

提问by TopTierTracker

Every source I found online says a full installation of Cygwin takes over 1 GB, but mine is only 100 MB. I was pretty sure I downloaded everything from the mirror servers, but the install took less than 5 minutes to complete instead of hours, as I'd expect if it were installing gigabytes of software.

我在网上找到的每个消息来源都说完整安装 Cygwin 需要 1 GB 以上,但我的只有 100 MB。我很确定我从镜像服务器下载了所有东西,但是安装只用了不到 5 分钟就完成了,而不是几个小时,正如我所期望的那样,如果它安装了千兆字节的软件。

Did Cygwin get a huge clean-up during 2012~2013, or did I do something wrong in the installation?

Cygwin 是否在 2012~2013 年期间进行了大量清理,或者我在安装中做错了什么?

回答by Warren Young

A full Cygwin installation can range from 23 to 112 GiB, depending on how you define "full."

完整的 Cygwin 安装范围可以从 23 到 112 GiB,具体取决于您如何定义“完整”。

Your 100 MB number tells me that you just clicked through the defaults presented by Cygwin's setup-*.exeprogram, selecting no optional packages, because that installs only the Base package set, which currently amounts to 0.1 GiB. Cygwin follows the modern net-connected software distribution model: it assumes you can just run setup-*.exeagain and select new packages as you need them.

您的 100 MB 数字告诉我,您只是点击了 Cygwinsetup-*.exe程序提供的默认设置,没有选择任何可选包,因为这仅安装了 Base 包集,目前总计 0.1 GiB。Cygwin 遵循现代网络连接软件分发模型:它假设您可以setup-*.exe再次运行并根据需要选择新软件包。

The Cygwin maintainers try to keep the Base category's package set as small as practical.1 A Cygwin Base install gives you something much like an old-style Unix installation, covering little more than what POSIX specifies.

Cygwin 维护者试图将 Base 类别的包集设置得尽可能小。1 Cygwin Base 安装为您提供与旧式 Unix 安装非常相似的东西,仅涵盖POSIX 指定的内容

So How DoYou Get a Full Installation?

因此,如何待办事项你得到一个完整安装?

The Cygwin installer does not have an obvious way to get a "full" installation, on purpose, because no one needs literally every package in the Cygwin repository.2

Cygwin 安装程序没有明显的方法来获得“完整”安装,因为没有人需要 Cygwin 存储库中的每个包。 2

There is, however, a sneaky way to install everything. At the Select Packages screen...

然而,有一种偷偷摸摸的方式来安装所有东西。在选择包屏幕...

Screenshot showing the install-everything trick

显示安装一切技巧的屏幕截图

...switch to Category view, then click the "Default" text to the right of the "All" group header. It will change to "Install," as will the corresponding text in all of the groups underneath it. This marks everything for installation.

...切换到类别视图,然后单击“全部”组标题右侧的“默认”文本。它将更改为“安装”,其下所有组中的相应文本也将更改。这标志着安装的一切。

I include this tip for completeness only. You do notwant to do this! It will install gigs and gigs of stuff you will never use. Currently, there are 11242 packagesin Cygwin,3 and installing every last one of them took 93 GiB of disk space for the installation tree plus 19 GiB for the download tree? the last time I tried it. That gives the 112 GiB upper limit above.

我包含此提示只是为了完整性。你希望这样做!它将安装您永远不会使用的演出和演出。目前,Cygwin 中有 11242 个软件包,3 安装它们中的每一个都需要 93 GiB 的安装树磁盘空间加上 19 GiB 的下载树?我最后一次尝试。这给出了上面的 112 GiB 上限。

All that unused software carries several costs. Even if disk space, download time, installation time, rebasing time, and local bandwidth use are of no consequence to you, consider the generous free mirror'swasted bandwidth.

所有未使用的软件都会带来一些成本。即使磁盘空间、下载时间、安装时间、rebase 时间和本地带宽使用对您没有影响,也要考虑慷慨的免费镜像浪费的带宽。

I've done the experiment, so now you don't have to.

我已经完成了实验,所以现在您不必这样做了。

An Intelligent "Complete" Installation

智能“完整”安装

I've come up with a simple set of package exclusion rules that results in a much smaller installation:

我提出了一组简单的包排除规则,可以使安装更小:

  1. Skip all of the -debuginfopackages. Few people need these, and they take up a lotof space. Savings: about 53 GiBin the installation tree alone; more in the download tree.

    It's easy to apply this rule. After selecting all packages for installation with the sneaky trick above but before you move on to the next screen, click the "Install" text next to the "Debug" category header until it switches back to "Default."

    If you've already installed the debug packages, click that text until it says "Uninstall" instead.

  2. Do not explicitly install any of the lib*packages. Let Cygwin's setup-*.exeautomatically install libraries to satisfy package dependencies. Savings: about 5 GiB ?

    To apply this rule, switch the "Libs" category to "Default" or "Uninstall" as you did with the "Debug" category. The installer will figure out which libraries you actually need in a later step.

  3. Skip the cross-compilersand associated packages. Again, few people need these.? Savings: About 4 GiB

    There are two major sets of cross-development tools in Cygwin: the set for creating Cygwin executables of the other word size(i.e. 64-bit tools and libraries for 32-bit Cygwin, or vice versa) and the set for building MinGWexecutables of the same word size as your Cygwin installation.

    To apply this rule for a 64-bit Cygwin installation, while still on the "Select Packages" screen, type cygwin32-in the package name search box at the top of that screen, then click the Defaulttext next to each top-level category until it cycles to Defaultor Uninstall, as above.

    Repeat that for mingw64-.

    The idea is the same for 32-bit Cygwin, except that you search for and exclude packages with cygwin64-and mingw32-in their names instead.

  1. 跳过所有的-debuginfo包。很少有人需要这些,而且它们占用了很多空间。节省:仅在安装树中就节省了约 53 GiB;更多在下载树中。

    应用这条规则很容易。在使用上述偷偷摸摸的技巧选择所有要安装的软件包后,在进入下一个屏幕之前,单击“调试”类别标题旁边的“安装”文本,直到它切换回“默认”。

    如果您已经安装了调试包,请单击该文本,直到显示“卸载”为止。

  2. 不要显式安装任何lib*软件包。让 Cygwinsetup-*.exe自动安装库以满足包依赖。节省:大约 5 GiB ?

    要应用此规则,请将“Libs”类别切换为“默认”或“卸载”,就像在“调试”类别中所做的那样。安装程序将在后面的步骤中确定您实际需要哪些库。

  3. 跳过交叉编译器和相关的包。同样,很少有人需要这些。?节省:大约 4 GiB

    Cygwin 中有两组主要的交叉开发工具:一组用于创建其他字大小的Cygwin 可执行文件(即 64 位工具和库,用于 32 位 Cygwin,反之亦然)和用于构建MinGW可执行文件的组与您的 Cygwin 安装相同的字大小。

    要将此规则应用于 64 位 Cygwin 安装,在“选择包”屏幕上时,cygwin32-在该屏幕顶部输入包名称搜索框,然后单击Default每个顶级类别旁边的文本,直到它循环到DefaultUninstall,如上所述。

    mingw64-.

    32 位 Cygwin 的想法是相同的,除了您搜索和排除名称中包含cygwin64-和 的包之外mingw32-

By following this rule set, I was able to install nearly everything, taking only about 23 GiB.

通过遵循这个规则集,我能够安装几乎所有东西,只占用大约 23 GiB。

Paring That Down

削减那个

We can get the installation to be even smaller by excluding several other notorious disk hogs:

通过排除其他几个臭名昭著的磁盘猪,我们可以使安装更小:

  • X11, the desktop environments, and the GUI apps together require about 11 GiB.?

  • A Cygwin Base + Devel installation comes to about 10 GiB.

  • A Cygwin Base + TeX category installation takes about 5 GiB. If you install only your native language's support package, it comes to about 3.7 GiB instead.

  • All of the -docpackages combined chew up about 5 GiB of disk space.

  • X11、桌面环境和 GUI 应用程序一起需要大约 11 GiB。?

  • Cygwin Base + Devel 安装大约为 10 GiB。

  • Cygwin Base + TeX 类别安装大约需要 5 GiB。如果您只安装您的母语支持包,则大约需要 3.7 GiB。

  • 所有的-doc软件包加起来会占用大约 5 GiB 的磁盘空间。

Someone who isn't a software developer, who doesn't use Cygwin for GUI stuff, who uses the Web for docs, and who doesn't use TeX for document creation could thus have a "full" Cygwin installation in only about 1 GiB.?

不是软件开发人员、不使用 Cygwin 来处理 GUI 内容、使用 Web 来处理文档以及不使用 TeX 来创建文档的人,因此可以仅使用大约 1 GiB 的“完整”Cygwin 安装.?

If you use Cygwin the way it is intended to be used, installing the base and only the extra packages you need at the moment, you probably won't even get your installation size to even those levels. I use Cygwin this way, and my installations are typically well under 1 GiB, yet they are "complete" by my lights, since they meet my current needs.

如果您按照预期使用 Cygwin 的方式使用 Cygwin,安装基础并且仅安装您目前需要的额外软件包,您甚至可能不会将安装大小达到这些级别。我以这种方式使用 Cygwin,我的安装通常远低于 1 GiB,但它们在我的灯光下是“完整的”,因为它们满足我当前的需求。

For Extra Disk-Filling Fun...

对于额外的磁盘填充乐趣...

All of this testing was done with the 64-bit version of Cygwin. You can roughly double the above space requirements by installing a parallel 32-bit Cygwin installation.?

所有这些测试都是在 64 位版本的 Cygwin 上完成的。通过安装并行的 32 位 Cygwin 安装,您可以大致将上述空间需求增加一倍。

Doing so is not pointless. It is a viable alternative to using cross-compilers, for one thing. For another, the fundamental incompatibilityof the two Cygwins means you may have need of both.

这样做并非毫无意义。一方面,它是使用交叉编译器的可行替代方案。另一方面,两个 Cygwin的根本不兼容意味着您可能需要两者。



Footnotes

脚注

  1. There are occasional threads on the Cygwin mailing list where someone argues that some very common package should be included in the Base category, such as Perl, and the result is usually that the maintainers decide not to add it to Base.

    You also occasionally see the opposite: some package accidentally slips into Base, usually via an incorrect dependency. Shortly after the problem is brought to the attention of the Cygwin maintainers, the status quo anteis restored. (example)

  2. Perhaps I am wrong.

    There couldbe a vision-impairedCzechimmigrant musicianwho completes US government software development contractson the side while not busy brushing up on his technical Hindivocabulary by translating electrical engineeringreportsinto his adopted Mandarin.

    I want to meet him. He sounds like an interesting guy.

    Plus, I think I can help him with his plan to create a Tcl/TkGUI front end for Orpie. Naturally, I will try to talk him into porting it from Ocamlto C++/Qt.

    I mean, Tcl/Tk, seriously? In 2018? Let's not be ridiculous.

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

  4. Cygwin's setup-*.exedoesn't delete the downloaded package files after installing them. This is useful at sites where you have multiple Cygwin installations, since you can put the download directory on a shared network drive. Each package then only has to be downloaded once at that site.

    My 105 GiB upper limit assumes you will download and install to the same drive, and that you will keep the download tree in case you need to reinstall it later.

    Not only does setup-*.exenot delete downloaded package files after installing them, it doesn't auto-purge old versions, so your download tree grows and grows over the years you use Cygwin. (There are scripts floating about the net to solve this problem, such as this one.)

    All data storage values given in this answer are apparent disk usage numbers — du -bhs— rather than actualdisk usage numbers, which would account for the file system overhead, since that varies between systems. This affects the installation tree to a much greater degree than it does the download tree since the proportion of small files is much greater in the installation tree. Expect something like +1% in the download tree and +5% in the installation tree.

  5. You may wonder why there are libraries in the Cygwin package repository that you don't need even though you've installed "all" packages. There are several reasons:

    • some libraries are obsolete, but are still present on the mirrors

    • some libraries come in multiple alternative forms, so that people who know they need something other than the default can choose it

    • some libraries are there only for people writing their own programs, not to support any existing Cygwin package

  6. Pretty much the only people who need the Cygwin cross-compilers are the people maintaining Cygwin packages, since maintainers are expected to build for both 32-bit and 64-bit Cygwin unless there is a good reason not to.

    There are probably more people with a good justification for MinGW cross-development tools, but there's also the option of using MinGW and MSYS instead of Cygwin. Also, I am guessing that the number of people who do dual-stack Cygwin + MinGW development is smaller than the set of people who use one or the other exclusively, or nearly so.

  7. It is not easy to do this exclusion, because GUI packages are scattered throughout the Cygwin packaging system, and their top-level category often contains non-GUI software, so you can't simply exclude the whole category. (e.g. Math.)

    The first pass is to exclude the X11, GNOME, KDE, LXDE, MATE, Xfce, and Games categories using the same Categories view technique as above.

    Then, using the search box as we did for the cross-compiler exclusion above, remove packages matching gtk, gnome, qt, and kde, optionally excluding those in the Devel, Debug or Libs packages, if you need those.

    Finally, you'll have to switch to the Pending view and manually exclude a bunch of packages that weren't caught by either of those two broad exclusions: 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, and Vinagre. If you don't exclude these, they'll drag back in much of what you excluded above as dependencies!

  8. You may notice that the size of all the excluded package sets adds up to more than the 23 GiB of the "intelligent complete" installation. This is because of shared dependencies. That is to say, these sizes overlap to some extent.

  9. If you put both setup-*.exeprograms in the same directory, they will share the download tree so that all of the noarchpackages are downloaded only once for both Cygwins. Between that and the fact that 32-bit and 64-bit Intel compilers generate code that differs in size, installing both Cygwins doesn't quitedouble the disk space requirement.

  1. Cygwin 邮件列表上偶尔有一些线程,有人认为一些非常常见的包应该包含在 Base 类别中,例如 Perl,结果通常是维护人员决定不将它添加到 Base。

    您也偶尔会看到相反的情况:一些包意外地滑入 Base,通常是通过不正确的依赖项。在问题引起 Cygwin 维护者的注意后不久,原状就恢复了。(示例

  2. 也许我错了。

    可能视力受损的捷克移民音乐家谁完成了美国政府的软件开发合同在一边不忙刷牙在他的技术印地文词汇通过翻译电气工程报告,到他通过

    我想见他。他听起来是个有趣的人。

    另外,我想我可以帮助他完成为Orpie创建Tcl/TkGUI 前端的计划。当然,我会尝试说服他将它从Ocaml移植到C++/ Qt

    我的意思是,Tcl/Tk,认真的?在2018?让我们不要荒谬。

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

  4. Cygwinsetup-*.exe不会在安装后删除下载的包文件。这在您有多个 Cygwin 安装的站点中很有用,因为您可以将下载目录放在共享网络驱动器上。然后每个包只需在该站点下载一次。

    我的 105 GiB 上限假设您将下载并安装到同一个驱动器,并且您将保留下载树以备以后需要重新安装。

    setup-*.exe安装后不仅不会删除下载的包文件,而且不会自动清除旧版本,因此您的下载树会随着您使用 Cygwin 的年数而增长。(网上有解决这个问题的脚本,比如这个。)

    此答案中给出的所有数据存储值都是明显的磁盘使用量——du -bhs而不是实际的磁盘使用量,这将说明文件系统开销,因为这在系统之间有所不同。这对安装树的影响比对下载树的影响要大得多,因为小文件在安装树中的比例要大得多。预计下载树中有 +1% 之类的东西,安装树中有 +5% 之类的东西。

  5. 您可能想知道为什么 Cygwin 软件包存储库中有您不需要的库,即使您已经安装了“所有”软件包。有几个原因:

    • 一些图书馆已经过时,但仍然存在于镜子上

    • 一些库有多种替代形式,因此知道他们需要除默认值之外的东西的人可以选择它

    • 有些库只供人们编写自己的程序,不支持任何现有的 Cygwin 包

  6. 几乎唯一需要 Cygwin 交叉编译器的人是维护 Cygwin 包的人,因为维护者应该为 32 位和 64 位 Cygwin 构建,除非有充分的理由不这样做。

    可能有更多人对 MinGW 交叉开发工具有很好的理由,但也可以选择使用 MinGW 和 MSYS 而不是 Cygwin。此外,我猜测进行双栈 Cygwin + MinGW 开发的人数少于只使用其中一个或几乎相同的人数。

  7. 做这个排除并不容易,因为 GUI 包分散在整个 Cygwin 打包系统中,而且它们的顶级类别往往包含非 GUI 软件,所以你不能简单地排除整个类别。(例如数学。)

    第一遍是使用与上述相同的类别视图技术排除 X11、GNOME、KDE、LXDE、MATE、Xfce 和游戏类别。

    然后,使用搜索框,因为我们没有为交叉编译器排除以上,删除包匹配gtkgnomeqt,和kde,任选地排除那些在杰韦利,调试和libs包,如果你需要的人。

    最后,您必须切换到 Pending 视图并手动排除一堆未被这两个广泛排除项中的任何一个捕获的包:AbiwordCalligraCelestiaDiaEvinceGeanygEditGeomviewGimpgLabelsGnuCashGnumericKalziumKMyMoneyKolourPaintKonquerorKritaKStarsLyXMarblePidginQupZillaScribusSkroogeSpectacleStellariumTellicoVinagre。如果您不排除这些,它们会拖回您在上面作为依赖项排除的大部分内容!

  8. 您可能会注意到,所有排除的软件包集的大小加起来超过了“智能完整”安装的 23 GiB。这是因为共享依赖关系。也就是说,这些大小在某种程度上是重叠的。

  9. 如果您将两个setup-*.exe程序放在同一目录中,它们将共享下载树,以便noarch为两个 Cygwin 只下载一次所有包。之间的以及32位和64位的英特尔编译生成的代码不同的尺寸,同时安装Cygwins不事实相当加倍磁盘空间需求。

回答by Georgio

When installing packages for the first time, setup*.exe does not install every package. Only the minimal base packages from the Cygwin distribution are installed by default. Clicking on categories and packages in the setup*.exe package installation screen will provide you with the ability to control what is installed or updated. Clicking on the "Default" field next to the "All" category will provide you with the opportunity to install every Cygwin package. Installing and Updating Cygwin Packages

首次安装软件包时,setup*.exe 不会安装每个软件包。默认情况下,仅安装来自 Cygwin 发行版的最小基础包。单击 setup*.exe 包安装屏幕中的类别和包将使您能够控制安装或更新的内容。单击“全部”类别旁边的“默认”字段将为您提供安装每个 Cygwin 包的机会。 安装和更新 Cygwin 软件包

回答by Agnatha

I would like to add to this thread. This approach gives you a leaner, meaner, bare-bones, minimal Cygwin install, with just the tools/items you need. No dependency bloat, no unwanted packages, files etc.

我想添加到这个线程。这种方法为您提供了一个更精简、更简单、简单、最少的 Cygwin 安装,只需要您需要的工具/项目。没有依赖膨胀,没有不需要的包、文件等。

I have been experimenting with Cygwin attempting to get a "bare-bones", minimal install. I do find that installing utilities like grep, gawk, sed and similar tools has dependencies on cygwin, base-Cygwin and sometimes unwanted tools like bash, coreutils etc.

我一直在尝试使用 Cygwin 尝试获得“基本”的最小安装。我确实发现安装 grep、gawk、sed 和类似工具等实用程序依赖于 cygwin、base-Cygwin,有时还依赖于不需要的工具,如 bash、coreutils 等。

I wanted to get only the tools and their required dlls installed and started examining the Cygwin package. I discovered that not using the setup.exe supplied by Cygwin is an alternative way to accomplish minimal Cygwin installs.

我只想安装工具及其所需的 dll 并开始检查 Cygwin 包。我发现不使用 Cygwin 提供的 setup.exe 是完成最少 Cygwin 安装的另一种方法。

And this is how I got it done:

这就是我完成它的方式:

  1. Download only the packages you want from any of the Cygwin mirror sites using ftp or http. Alternatively you can use the setup.exe supplied by Cygwin to download all the packages - download only and no install.
  2. Once the download is successfully completed, individual packages like zlib, gawk, grep, libiconv are found under the x86/release or x86_64/release directory Each package is 'tar'red and compressed using tool 'xz' or bzip and stored in respective directories.
  3. To install a specific tool like sed or gawk, all that needs to be done, is to extract the tool executable and its dependencies (.dll)
  1. 使用 ftp 或 http 从任何 Cygwin 镜像站点仅下载您想要的包。或者,您可以使用 Cygwin 提供的 setup.exe 下载所有软件包 - 仅下载而不安装。
  2. 下载成功完成后,会在 x86/release 或 x86_64/release 目录下找到 zlib、gawk、grep、libiconv 等单独的包 每个包都是 'tar'red 并使用工具 'xz' 或 bzip 压缩并存储在各自的目录中.
  3. 要安装像 sed 或 gawk 这样的特定工具,需要做的就是提取工具可执行文件及其依赖项 (.dll)

Before you attempt the following, please ensure you have a tool like 7z.exe, xz.exe, bzip2 or other that is capable of uncompressing an .xz or bzip archive

在您尝试以下操作之前,请确保您拥有 7z.exe、xz.exe、bzip2 或其他能够解压缩 .xz 或 bzip 存档的工具

Installing gawk example below :

下面安装 gawk 示例:

  1. Extract gawk.exe from gawk-4.1.3-1.tar.xz archive using the command 7z.exe e -so gawk-4.1.3-1.tar.xz | tar xvf -
  2. Once that is done, you should find gawk.exe in a subfolder usually, usr/bin under the release/gawk folder
  3. Find the dependencies for gawk, you can do this in a couple of ways.
  1. 使用命令从 gawk-4.1.3-1.tar.xz 存档中提取 gawk.exe 7z.exe e -so gawk-4.1.3-1.tar.xz | tar xvf -
  2. 完成后,您通常应该在子文件夹中找到 gawk.exe,在 release/gawk 文件夹下的 usr/bin
  3. 找到 gawk 的依赖项,您可以通过多种方式完成此操作。

Examine the Cygwin setup.ini file found in x86 or x86_64 folder. Look for the string '@ gawk' and in the lines after this line you should find a "requires:" line that lists the dependencies. Mine reads like this - "requires: bash cygwin libgmp10 libintl8 libmpfr4 libreadline7"

检查在 x86 或 x86_64 文件夹中找到的 Cygwin setup.ini 文件。查找字符串 '@gawk',在该行之后的行中,您应该找到一个“requires:”行,其中列出了依赖项。我的读起来像这样 - “需要:bash cygwin libgmp10 libintl8 libmpfr4 libreadline7”

For gawk to run, bash is not a must since we have the windows command shell. (bash is included to get a few other dlls required by gawk. However, that causes a lot more unecessary files to be installed.) The other dependencies contain files that gawk needs to run.

为了让 gawk 运行,bash 不是必须的,因为我们有 windows 命令外壳。(包含 bash 以获取 gawk 所需的一些其他 dll。但是,这会导致安装更多不必要的文件。)其他依赖项包含 gawk 需要运行的文件。

Extract each of the above packages using tools like 7z or xz into individual files.

使用 7z 或 xz 等工具将上述每个包提取到单独的文件中。

After all the dependencies are extracted, copy your needed tool(s) (grep/sed/gawk) to a folder and all the dependent .dlls

提取所有依赖项后,将您需要的工具(grep/sed/gawk)复制到一个文件夹和所有依赖的 .dll

You should now be able to run your tool with the minimum set of .dlls required in a bare-bones cygwin installation.

您现在应该能够使用基本 cygwin 安装所需的最少 .dll 集来运行您的工具。

Caution : It may not be sufficient to just extract the dependencies listed in setup.ini for each tool. Sometimes, you may need to execute/run the tool to discover that there are more dlls required.

注意:仅提取 setup.ini 中列出的每个工具的依赖项可能是不够的。有时,您可能需要执行/运行该工具才能发现需要更多的 dll。

There are other means of finding out the dlls required by an .exe - you can use dumpbin from MS or dependency walker, ndepends or similar tools to find the list of dependent dlls

还有其他方法可以找出 .exe 所需的 dll - 您可以使用 MS 的 dumpbin 或 Dependency walker、ndepends 或类似工具来查找依赖 dll 的列表

Consult - How do I detect the DLLs required by an application?How do I find out which dlls an executable will load?

请教 -如何检测应用程序所需的 DLL?如何找出可执行文件将加载哪些 dll?

I also brute forced this dll info by just running the tool and installing the missing dlls listed one by one by extracting from the required packages.

我还通过运行该工具并通过从所需的包中提取来安装一一列出的丢失的 dll 来强制使用此 dll 信息。

When you run a tool and it errors out with a missing .dll message, search for the package that contains the dll here - https://cygwin.com/cgi-bin2/package-grep.cgi. Enter the full/partial name of the missing dll to find the name of the package containing the dll.

当您运行某个工具并出现缺少 .dll 消息的错误时,请在此处搜索包含 dll 的包 - https://cygwin.com/cgi-bin2/package-grep.cgi。输入丢失的 dll 的完整/部分名称以查找包含 dll 的包的名称。

Eventually, I have ended up with a bare-bones cygwin install with only the tools and dlls that I need.

最终,我得到了一个简单的 cygwin 安装,只有我需要的工具和 dll。

Example : gawk - gawk.exe and the following dlls - 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 and dlls - cygwin1.dll, cygintl-8.dll

示例:gawk - gawk.exe 和以下 dll - 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 和 dlls - cygwin1.dll、cygintl-8.dll

Hope this is found useful. The Cywin installer also does dll re-basing, which I will not venture into here.

希望这有用。Cywin 安装程序也会重新构建 dll,我不会在这里冒险。

回答by Franck Dernoncourt

I just did a full installation of Cygwin x64 (2018-01-03) on Windows 7 SP1 x64 Ultimate:

我刚刚在 Windows 7 SP1 x64 Ultimate 上完全安装了 Cygwin x64 (2018-01-03):

Cygwin folder (which by default is C:\cygwin64) has the following properties:

Cygwin 文件夹(默认为C:\cygwin64)具有以下属性:

  • Size: 89.1 GiB (95,671,245,179 bytes)
  • Size on disk: 92.3 GB (99,148,398,592 bytes)
  • Contains: 1,433,494 Files, 94,363 Folders
  • 大小:89.1 GiB(95,671,245,179 字节)
  • 磁盘大小:92.3 GB(99,148,398,592 字节)
  • 包含:1,433,494 个文件,94,363 个文件夹

Cygwin temporary folder where downloaded packages are stored prior to being installed (can be removed after Cygwin is installed):

Cygwin 临时文件夹在安装之前存储下载的软件包(可以在安装 Cygwin 后删除):

  • Size: 18.0 GiB (19,363,639,932 bytes)
  • Size on disk: 18.0 GiB (19,383,767,040 bytes)
  • Contains: 9,711 Files, 10,354 Folders
  • 大小:18.0 GiB(19,363,639,932 字节)
  • 磁盘大小:18.0 GiB(19,383,767,040 字节)
  • 包含:9,711 个文件,10,354 个文件夹

回答by TiyebM

Under the develyou may need only the following:

在 下,devel您可能只需要以下内容:

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

照片