web-dev-qa-db-ja.com

MinGW-w64オフラインインストーラー

mingw-w64をオフラインでインストールする方法はありますか?私は多くの公式ソースを試しましたが、それらはすべて何らかのインターネットアクセスを必要とするようです。 x32システムとx64システムの両方で機能するものを探しています。 公式リポジトリ を見てみましたが、このタスクに必要なファイルがわかりません。

前もって感謝します !

11
Costi Ivan

以下はまだ完全にはテストされていませんが、オフラインインストーラーは不要なようです。バグレポートのスクリーンショットに基づいて、オンラインインストーラーは次の質問をします...

Version .......... seems to be the GNU GCC version number
Architecture ..... i686 / x86_64
Threads .......... posix / win32
Exception ........ dwarf / sjlj / seh
Build Revision ... 0 / 1 / 2 / ...

Install folder ... e.g. c:\mingw

Create desktop shortcuts?

最初の5つのオプションは、単一のダウンロードパッケージを選択するために使用されます。私はあなたについては知りませんが、スレッドと例外のために何を選ぶべきか分かりません。純粋にダウンロード統計に基づいているため、posixスレッドはwin32の2倍以上使用されます。sehは64ビットで非常に人気があり、dwarfは32ビットで、sjljはあまり愛されていません。 posixとdwarfを使用した32ビットがデフォルトです。

選択内容を識別するために、 this folder のファイルrepository.txtを使用します。これは、パイプで区切られたテキストファイルです。5つのメインオプション用の5つのフィールドと、ダウンロードするパッケージのURL用の1つのフィールドです。

ちなみに、インストーラーのソースコードの場所を知っている人がいれば、コメントをいただければ幸いです。高いところと低いところを探しました。バグレポートが、インストーラーのソースが見つかりません。ただし、mingw-64バイナリパッケージのソースは簡単に見つけることができます。

バイナリパッケージ自体は、 this folder(Win32) および this folder(Win64) のサブフォルダーにあります。

インストーラーが作成するショートカットの用途がわからない-これはMSYSまたはMSYS2ではなくMinGW-w64なので、ショートカットを提供するbashベースのシェルはありません。おそらく、それらはパスが設定されたWindowsコマンドプロンプトショートカットにすぎません。

そのショートカットの問題以外は、パッケージを適切なフォルダーに解凍し、mingw32\binまたはmingw64\binフォルダーがパス上にあることを確認するだけです。 32ビットgcc-5.4.0パッケージの1つでこれをテスト済みです。g++は問題なくhello-worldをコンパイルしました。

サブフォルダーには、さらに一歩先のサブフォルダーに代替のサードパーティビルドがあります ここ(32ビット) および64ビットおよびその他のビルドの*フォルダーをターゲットとするさまざまなツールチェーンの同様のサブフォルダーray_linnには、Ada(およびObjective C/C++?)サポートを含むさまざまなビルドがあります。 rubenvbには、いくつかの古いGCCおよびClangバージョンがあります。 dongsheng-dailyは、実験的なGCC 7を含め、毎日のビルドのように見えます。

MSYSも必要な場合は、コメントでお知らせください。オフラインで(MinGW32と一緒に)しばらくインストールしているので、インストールするパッケージのリストがあります。かなりの数のパッケージが必要です。SourceForgeからパッケージを入手するのは苦痛ですが、一度パッケージを手に入れると、ほとんどの場合、再び解凍するだけです。いくつかのマイナーな「ポストインストール」があります-作成するファイル、主にMinGWの場所、さらにシェルへのショートカットの作成。私はそれを行うAutoItスクリプトを持っています-少し混乱し、不適切なメソッドを使用しました。それらは当時AutoItで知っていたものでしたが、正常に動作します。

MSYS2がありますが、一見するとpacmanパッケージマネージャーを使用したオンラインインストールが想定されるもう1つの問題です。おそらく非常に便利ですが、使用できない少数派にとってはそうではありません。

14
Steve314

はい。最初にインターネットに接続されたマシンでMSYS2のpacmanを使用してからmingw-w64をオフラインでインストールしてから、pacmanでダウンロードしたファイルをオフラインマシンに転送できます。

あなたの質問に、pacmanの素晴らしいところは、すべての依存関係の適切なバージョンを取得することです。

インターネットに接続されたマシンで:

  1. http://www.msys2.org/ からMSYS2インストーラーを使用します
  2. MSYS2を実行し、pacman -Syuでパッケージデータベースを更新します
  3. MSYS2ターミナルで、目的のパッケージを含むフォルダーを作成します(例:mingw-w64)

    mkdir ~/offline_packages
    cd ~/offline_packages
    pacman -Syw base base-devel mingw-w64-x86_64-toolchain --cachedir .
    
  4. Pacmanのrepo-addスクリプトを使用して、すべてをデータベースにバンドルします。

    repo-add ./offline.db.tar.gz ./*
    
  5. MSYS2インストーラーと~/offline_packagesを外部フラッシュドライブにコピーします。

オフラインマシンで:

  1. MSYS2をインストールします。
  2. offline_packagesフォルダーをフラッシュドライブからMSYS2がアクセスできるパスにコピーします(例:C:/msys64/home/user/offline_packages
  3. 編集C:/msys64/etc/pacman.conf

    1. [mingw32], [mingw64], [msys]リポジトリをコメント化します。
    2. 新しいリポジトリを追加します。この例では、上記の任意のパスを使用しています。 offline_packagesフォルダーをコピーした場所を指すように変更します。

      [offline]
      SigLevel = Optional
      Server = file:///home/user/offline_packages
      
  4. MSYS2ターミナルで、pacmanデータベースを新しいリポジトリと同期します

    pacman -Syu
    
  5. Mingw-w64などをインストールします。

    pacman -S --needed base base-devel mingw-w64-x86_64-toolchain
    
  6. できた!

参照: https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installation_and_recovery

9
AaronDanielson