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

时间:2014-01-20 09:45:12

标签: windows cygwin diskspace

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

Cygwin在2012〜2013年期间是否进行了大规模的清理工作,或者我在安装中做错了什么?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

我想加入这个帖子。这种方法为您提供了更精简,更精简,最简单的Cygwin安装,只需要您需要的工具/项目。没有依赖性膨胀,没有不需要的包,文件等。

我一直在试验Cygwin尝试获得最简单的安装。我发现像grep,gawk,sed和类似工具这样的安装实用程序依赖于cygwin,base-Cygwin以及有时不需要的工具,如bash,coreutils等。

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

这就是我完成它的方式:

  1. 仅从Cygwin镜像中下载所需的软件包 使用ftp或http的网站。或者,您可以使用setup.exe 由Cygwin提供下载所有软件包 - 仅下载和 没有安装。
  2. 下载成功完成后,个人 像zlib,gawk,grep,libiconv这样的软件包可以在 x86 / release或x86_64 / release目录每个包都是' tar' red和 使用工具压缩' xz'或者bzip并存储在各自的 目录。
  3. 安装像sed或gawk这样的特定工具 需要做的,就是提取工具可执行文件及其 依赖项(.dll)
  4. 在尝试以下操作之前,请确保您拥有7z.exe,xz.exe,bzip2或其他能够解压缩.xz或bzip存档的工具

    在下面安装gawk示例:

    1. 使用命令7z.exe e -so gawk-4.1.3-1.tar.xz | tar xvf -
    2. 从gawk-4.1.3-1.tar.xz存档中提取gawk.exe
    3. 一旦完成,你应该在子文件夹中找到gawk.exe,通常在release / gawk文件夹下找到usr / bin
    4. 找到gawk的依赖关系,你可以通过几种方式实现这一点。
    5. 检查x86或x86_64文件夹中的Cygwin setup.ini文件。 寻找字符串' @ gawk'在这一行之后的行中你应该找到一个"要求:"列出依赖项的行。 我读的是这样的 - "要求:bash cygwin libgmp10 libintl8 libmpfr4 libreadline7"

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

      使用7z或xz等工具将上述每个软件包解压缩到单个文件中。

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

      现在,您应该可以使用简单的cygwin安装中所需的最小.dll来运行您的工具。

        

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

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

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

      我还通过运行工具并通过从所需的软件包中提取逐个安装缺少的dll来强制执行此dll信息。

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

      最终,我最终只使用了我需要的工具和dll进行了简单的cygwin安装。

      示例: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和dll - cygwin1.dll,cygintl-8.dll

      希望这有用。 Cywin安装程序也会进行dll重新编译,我不会冒险进入这里。

答案 2 :(得分:1)

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

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

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

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

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