私がオンラインで見つけたすべての情報源は、Cygwinのフルインストールには1GBを超えると言っていますが、私の場合は100MBしかありません。ミラーサーバーからすべてをダウンロードしたことは間違いありませんでしたが、ギガバイトのソフトウェアをインストールしていると予想されるように、インストールは数時間ではなく5分未満で完了しました。
Cygwinは2012年から2013年に大規模なクリーンアップを行いましたか、それともインストールで何か間違ったことをしましたか?
パッケージを初めてインストールするとき、setup * .exeはすべてのパッケージをインストールするわけではありません。デフォルトでは、Cygwinディストリビューションの最小限の基本パッケージのみがインストールされます。 setup * .exeパッケージのインストール画面でカテゴリとパッケージをクリックすると、インストールまたは更新される内容を制御できます。 「すべて」カテゴリの横にある「デフォルト」フィールドをクリックすると、すべてのCygwinパッケージをインストールする機会が提供されます。 Cygwinパッケージのインストールと更新
このスレッドに追加したいと思います。このアプローチにより、必要なツール/アイテムだけで、無駄のない、無駄のない、最低限のCygwinインストールが実現します。依存関係の肥大化、不要なパッケージ、ファイルなどはありません。
私は、Cygwinが「ベアボーン」の最小インストールを取得しようと試みています。 grep、gawk、sedなどのツールのようなユーティリティをインストールすると、cygwin、base-Cygwin、およびbash、coreutilsなどの不要なツールに依存することがわかります。
ツールとその必要なdllのみをインストールし、Cygwinパッケージの調査を開始したかったのです。 Cygwinが提供するsetup.exeを使用しないことが、Cygwinの最小インストールを実現する代替方法であることを発見しました。
そして、これは私がそれを成し遂げた方法です:
以下を試みる前に、7z.exe、xz.exe、bzip2、または.xzまたはbzipアーカイブを圧縮解除できるその他のツールがあることを確認してください。
以下のgawkのインストール例:
7z.exe e -so gawk-4.1.3-1.tar.xz | tar xvf -
を使用してgawk-4.1.3-1.tar.xzアーカイブからgawk.exeを抽出します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のリベースも行いますが、ここでは詳しく説明しません。
Cygwin x64(2018-01-03)をWindows 7 SP1 x64 Ultimateに完全インストールしました:
Cygwinフォルダー(デフォルトではC:\cygwin64
)には次のプロパティがあります。
ダウンロードされたパッケージがインストールされる前に保存されるCygwin一時フォルダー(Cygwinのインストール後に削除できます):
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