有没有离线安装mingw-w64的方法?我尝试了很多官方来源,但似乎全部都需要某种形式的互联网连接。我正在寻找适用于x32和x64系统的解决方案。我尝试查看官方存储库,但我不确定我需要哪些文件来完成此任务。
提前感谢!
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?
为了确定这些选择是什么,它会使用来自this folder的文件repository.txt。那只是一个用管道分隔的文本文件——5个主要选项的5个字段,以及一个用于下载包的URL。
顺便说一句,如果有人知道在哪里找到安装程序的源代码,我将非常感激——我已经四处寻找,找到了错误报告等内容,但没有找到安装程序的源代码。不过,mingw-64二进制包的源代码很容易找到。
二进制软件包本身位于此文件夹(Win32)和此文件夹(Win64)的子文件夹中。有一些替代的第三方构建,位于更远的一个步骤之外的子文件夹中(32位)这里以及不同的工具链目标*文件夹下的类似子文件夹中,用于64位和其他构建。ray_linn有各种构建,包括Ada(和Objective C/C++?)支持。rubenvb有一些旧的GCC和Clang版本。dongsheng-daily看起来像是每天的构建,甚至包括实验性的GCC 7。
如果您需要MSYS,请在评论中告诉我。我已经离线安装了它(以及MinGW32)一段时间了,所以我有一个要安装的软件包列表。你需要相当多的软件包,从SourceForge获取它们很麻烦,但一旦你有了它们,就基本上只需要解压缩。还有一些小的“后安装”工作-主要是创建某些文件,指明MinGW的位置,以及创建一个快捷方式到shell。我有AutoIt脚本来完成这个工作-有点混乱,使用了不适当的方法,因为当时我在AutoIt中知道的就是这些方法,但它们可以正常工作。
有MSYS2,但乍一看这是另一个需要在线安装的问题,使用pacman包管理器 - 可能非常方便,但对于不能使用它的少数人来说不是一个好选择。
如果您在面向互联网的计算机上使用MSYS2的pacman
首先下载文件,然后将pacman下载的文件传输到离线计算机,那么您就可以离线安装mingw-w64。
关于您的问题,pacman的好处是它会获取所有依赖项的正确版本。
在您的面向互联网的计算机上:
从http://www.msys2.org/下载并安装MSYS2安装程序
运行MSYS2,并使用pacman -Syu
更新软件包数据库
在MSYS2终端中创建一个包含要安装的软件包(即mingw-w64)的文件夹
pacman不会下载解决其所有依赖项的软件包。您需要创建一个临时空白数据库
mkdir ~/offline_packages
cd ~/offline_packages
mkdir database
pacman -Syw --cachedir . --dbpath database base base-devel mingw-w64-x86_64-toolchain
使用 pacman 的 repo-add
脚本将所有内容打包成一个数据库: repo-add ./offline.db.tar.gz ./*
将 MSYS2 安装程序和 ~/offline_packages
文件夹复制到你的外部闪存驱动器中。
在你的离线机器上:
安装 MSYS2。
将你的闪存驱动器中的 offline_packages
文件夹复制到 MSYS2 可以访问的路径下(例如:C:/msys64/home/user/offline_packages
)
编辑 C:/msys64/etc/pacman.conf
注释掉 [mingw32]、[mingw64]、[msys]
仓库。
添加一个新的仓库。该示例使用了上述任意路径。请根据你复制 offline_packages 文件夹的位置进行修改。
[offline]
SigLevel = Optional
Server = file:///home/user/offline_packages
在 MSYS2 终端中,使用您的新存储库同步 pacman 数据库。 pacman -Syu
安装mingw-w64等。
pacman -S --needed base base-devel mingw-w64-x86_64-toolchain
完成!
参考: https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installation_and_recovery
@AaronDanielson的回答很好,但我稍作修改后就可以使用了。
在第5步中,不要列出.sig文件或db文件夹,因为这会导致错误。相反,例如使用:
repo-add ./offline.db.tar.gz $(ls -I "*.sig" | grep pkg)