在MSYS2中使用pacman安装软件包是否会写入Windows系统硬盘?
pacman安装包的作用范围说明
通过pacman -S some-package命令在MSYS2中安装的软件包,默认仅能在MSYS2的对应环境内使用,不会作用于整个Windows系统。
核心原因:
- MSYS2的运行环境和Windows系统是文件隔离的,所有通过pacman安装的软件、依赖库、配置文件都会默认存储在MSYS2的安装目录下(例如默认路径
C:\msys64的对应子环境文件夹内,比如ucrt64、mingw64、msys等子目录),不会往Windows系统目录(如System32、Program Files)写入任何文件,也不会自动修改Windows的全局环境变量。 - 正常情况下,Windows自带的CMD、PowerShell以及其他系统程序无法识别MSYS2中安装的软件,只有在MSYS2的对应终端内才能正常调用这些软件。
特殊情况说明:
如果你手动将MSYS2对应环境的bin目录添加到Windows的全局PATH环境变量中,也可以在CMD、PowerShell等原生Windows终端中调用到这些安装的命令,但这只是让系统能找到软件的启动路径,软件本身的运行还是依赖MSYS2目录下的依赖文件,依旧不会修改Windows系统的其他配置,不属于真正作用于全局系统的安装。
如果需要安装不需要依赖MSYS2终端就能运行的原生Windows程序,可以选择安装MSYS2源中mingw-w64-ucrt-x86_64-前缀的软件包,这类包编译生成的是原生Windows二进制文件,只要将对应依赖一并打包,就算脱离MSYS2目录也能正常运行,但同样不会自动安装到Windows系统公共位置。
内容的提问来源于stack exchange,提问作者VinDiesel_
相关产品推荐
相关产品推荐

