web-dev-qa-db-ja.com

Cygwinの現在のフルインストールサイズは?

私がオンラインで見つけたすべての情報源は、Cygwinのフルインストールには1GBを超えると言っていますが、私の場合は100MBしかありません。ミラーサーバーからすべてをダウンロードしたことは間違いありませんでしたが、ギガバイトのソフトウェアをインストールしていると予想されるように、インストールは数時間ではなく5分未満で完了しました。

Cygwinは2012年から2013年に大規模なクリーンアップを行いましたか、それともインストールで何か間違ったことをしましたか?

33
TopTierTracker

パッケージを初めてインストールするとき、setup * .exeはすべてのパッケージをインストールするわけではありません。デフォルトでは、Cygwinディストリビューションの最小限の基本パッケージのみがインストールされます。 setup * .exeパッケージのインストール画面でカテゴリとパッケージをクリックすると、インストールまたは更新される内容を制御できます。 「すべて」カテゴリの横にある「デフォルト」フィールドをクリックすると、すべてのCygwinパッケージをインストールする機会が提供されます。 Cygwinパッケージのインストールと更新

3
Georgio

このスレッドに追加したいと思います。このアプローチにより、必要なツール/アイテムだけで、無駄のない、無駄のない、最低限のCygwinインストールが実現します。依存関係の肥大化、不要なパッケージ、ファイルなどはありません。

私は、Cygwinが「ベアボーン」の最小インストールを取得しようと試みています。 grep、gawk、sedなどのツールのようなユーティリティをインストールすると、cygwin、base-Cygwin、およびbash、coreutilsなどの不要なツールに依存することがわかります。

ツールとその必要なdllのみをインストールし、Cygwinパッケージの調査を開始したかったのです。 Cygwinが提供するsetup.exeを使用しないことが、Cygwinの最小インストールを実現する代替方法であることを発見しました。

そして、これは私がそれを成し遂げた方法です:

  1. Ftpまたはhttpを使用して、Cygwinミラーサイトのいずれかから必要なパッケージのみをダウンロードします。または、Cygwinが提供するsetup.exeを使用して、すべてのパッケージをダウンロードできます-ダウンロードのみで、インストールはできません。
  2. ダウンロードが正常に完了すると、zlib、gawk、grep、libiconvなどの個々のパッケージがx86/releaseまたはx86_64/releaseディレクトリにあります。各パッケージは 'tar'で圧縮され、ツール 'xz'またはbzipを使用して圧縮され、それぞれのディレクトリに保存されます。
  3. Sedやgawkなどの特定のツールをインストールするには、実行する必要があるのは、ツールの実行可能ファイルとその依存関係(.dll)を抽出することだけです

以下を試みる前に、7z.exe、xz.exe、bzip2、または.xzまたはbzipアーカイブを圧縮解除できるその他のツールがあることを確認してください。

以下のgawkのインストール例:

  1. コマンド7z.exe e -so gawk-4.1.3-1.tar.xz | tar xvf -を使用してgawk-4.1.3-1.tar.xzアーカイブからgawk.exeを抽出します
  2. これが完了すると、通常はサブフォルダー、release/gawkフォルダーの下のusr/binにgawk.exeが見つかるはずです。
  3. Gawkの依存関係を見つけるには、いくつかの方法でこれを行うことができます。

X86またはx86_64フォルダーにあるCygwin setup.iniファイルを調べます。文字列「@ gawk」を探し、この行の後の行で、依存関係をリストする「requires:」行を見つける必要があります。私はこのように読みます-「必要:bash cygwin libgmp10 libintl8 libmpfr4 libreadline7」

Gawkを実行するには、WindowsコマンドShellがあるため、bashは必須ではありません。 (bashはgawkに必要な他のいくつかのdllを取得するために含まれています。ただし、それにより多くの不必要なファイルがインストールされます。)他の依存関係にはgawkの実行に必要なファイルが含まれます。

7zやxzなどのツールを使用して上記の各パッケージを個々のファイルに抽出します。

すべての依存関係が抽出されたら、必要なツール(grep/sed/gawk)をフォルダーとすべての依存.dllにコピーします

これで、最低限のcygwinインストールに必要な最小限の.dllセットでツールを実行できるようになります。

注意:各ツールのsetup.iniにリストされている依存関係を抽出するだけでは不十分な場合があります。場合によっては、ツールを実行/実行して、必要なdllがさらにあることを発見する必要があります。

.exeに必要なdllを見つける方法は他にもあります。MSまたは依存関係ウォーカー、ndependsまたは同様のツールからdumpbinを使用して、依存するdllのリストを見つけることができます。

相談- アプリケーションに必要なDLLを検出するにはどうすればよいですか?実行可能ファイルがロードするDLLを見つけるにはどうすればよいですか?

また、ツールを実行し、必要なパッケージから抽出して不足しているDLLを1つずつインストールすることで、この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のリベースも行いますが、ここでは詳しく説明しません。

1
Agnatha

Cygwin x64(2018-01-03)をWindows 7 SP1 x64 Ultimateに完全インストールしました:

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フォルダー
1

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

写真

0
TiyebM