MSYS2, 吃硬盘的大神

MSYS2,集成了 x86 x64两个开发环境,且可以使用 pacman 进行包管理,可谓方便的很!可是,这个东东也有一个很不好的地方,就是实在太占硬盘。尽管下载的软件包一般最大也就几百兆,但这可是高压缩格式的,一旦展开,会像干燥剂喝了水一样泵长起来。以我的MSYS2文件夹为例子,安装了常用工具如 qt、boost、opencv、 fftw、Openscenegraph等后,已经35GB了。可怜我的C盘啊!

初步瘦身

初步瘦身有两个办法: 
1. 删除pacman的下载包,位置在 var\cache\pacman\pkg 
2. 删除不必要的软件包,比如 Qt 的静态版本。

搬家

如果不安装到C盘,有木有办法呢?那就重新安到E盘吧。我的D是光驱,于是,化了一天时间,挪到了D盘。注意了,这里有个解释,就是msys2的环境一旦安装后,是路径绑定的,他的 dll 都经过了patch。如果你把文件夹拷贝到别的位置,那是不行的,除非重新全部patch。由于我的网速快,就偷懒直接下载安装了。

如何快速部署多台机器

太高兴拉!压缩一下,给小组的机器全部都安装上吧!(⊙o⊙)…傻了,有的机器E盘是光驱。还有的机器,压根就一个C盘,这可如何是好!而且,无论怎样拷贝,35GB的体积都是太大了。无奈,如何是好?

junction, windows下的 ln-s

还好,对于熟悉运维的我来说,解决这个问题比较好办。 
首先,对与文件夹绑定,不怕,有微软亲爹生的链接器 junction
这个工具其实就是linux下用烂的ln -s, 他的介绍如下:

Introduction

Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. For example, if the directory D:\SYMLINK specified C:\WINNT\SYSTEM32 as its target, then an application accessing D:\SYMLINK\DRIVERS would in reality be accessing C:\WINNT\SYSTEM32\DRIVERS. Directory symbolic links are known as NTFS junctions in Windows. Unfortunately, Windows comes with no tools for creating junctions—you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction. Junction not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Windows' Remote Storage Service (RSS), as well as volume mount points.

Please read this Microsoft KB article for tips on using junctions.

Notethat Windows does not support junctions to directories on remote shares.

If you want to view reparse information, the usage for Junction is the following:

Using Junction

Use junction to list junctions:

Usage: [-s]

-s    Recurse subdirectories

Examples:

To determine if a file is a junction, specify the file name:

junction c:\test

To list junctions beneath a directory, include the –s switch:

junction -s c:\

To create a junction c:\Program-Files for "c:\Program Files":

C:\>md Program-Files

C:\>junction c:\Program-Files "c:\Program Files"

To delete a junction, use the –d switch:

junction -d c:\Program-Files

有了这工具,随便把家搬到哪里,都可以连接到一个位置,那就是 C:\msys64 (或c:\msys32)

NTFS压缩文件夹

在以前,我使用winMount进行压缩、挂载。它曾经是一款很不错的软件,可以把带有压缩的文件挂载为虚拟磁盘。尽管中文版的已经停止开发了,但是百度一下还是可以找到支持win7以上版本的安装包。使用winMount 建立一个压缩盘,把msys文件夹全部拷入,而后挂载为Z:\,使用 junction 进行连接,即可完成部署。 
现在,直接利用NTFS磁盘的文件夹压缩,实现相同功能。方法是: 
1. 在安装前,新建文件夹,改名为msys64之类的名字; 
2. 右键单击文件夹,选择属性、高级,把压缩勾上; 
3. 拷贝文件到该文件夹 
4. 使用junction进行链接。 

有了这些手段,MSYS2就更舒心如意啦!

http://blog.csdn.net/goldenhawking/article/details/55105635

MSYS2 瘦身小攻略(使用junction)的更多相关文章

  1. 微信小程序——【百景游戏小攻略】

    微信小程序--[百景游戏小攻略] 本次课程小项目中的图片以及文章还未获得授权!请勿商用!未经授权,请勿转载! 博客班级 https://edu.cnblogs.com/campus/zjcsxy/SE ...

  2. Jmeter 小攻略(转)

    http://www.myexception.cn/open-source/1346307.html

  3. 写给小前端er的nodejs,mongodb后端小攻略~ (windows系统~)

    一.写在前面 迫于学校的压力,研二上准备回学校做实验发论文了,感觉真的没意思,这几天学着搞搞后端,踩了很多坑,整理一下这几天的坑以免以后再犯! 二.本文主要内容(由于是面向前端同学的,所以前端的内容就 ...

  4. 小编接地气——第六届中国云计算大会攻略Q&A

    2014年5月20-23日,第六届中国云计算大会在北京召开. 花个1000多元,在工作日请假来參加大会,不能让大家白跑一趟而是物有所值. 小编写了大会攻略Q&A,分享给各位 Q:为什么要參加关 ...

  5. c++小学期大作业攻略(二)整体思路+主界面

    写在前面:如果我曾经说过要在第一周之内写完大作业,那……肯定是你听错了.不过如果我在写的时候有攻略看的话应该可以轻松地在4~5天内做完,然后觉得写攻略的人是个小天使吧(疯狂暗示).出于给大家自由发挥的 ...

  6. c++小学期大作业攻略(一)环境配置

    UPDATE at 2019/07/20 20:21 更新了Qt连接mysql的方法,但是是自己仿照连VS的方法摸索出来的,简单测试了一下能work但是不保证后期不会出问题.如果你在尝试过程中出现了任 ...

  7. Kaggle大牛小姐姐自述:我是怎么成为竞赛中Top 0.3%的 | 干货攻略

    天天跟数据打交道的研究人员,都有一个成为Kaggle顶级大师(Grandmaster)的梦想. 但每年的Kaggle参赛团队众多,通常一个项目都有数千人至上万人报名,如何在其中脱颖而出? 最近,自动化 ...

  8. 图文详解:阿里宠儿【小兔】RabbitMQ的养成攻略

  9. 【攻略】百度货币识别API,搞定防诈骗的应用小程序

    1.需求及方案: 近两年用外币进行诈骗的案件很多.例如:2015年12月,一安徽诈骗团伙,用不值1角人民币的50印蒂(intis,秘鲁旧货币,1991年发行新货币后已停止流通,目前无货币价值,仅有&q ...

随机推荐

  1. [搜索]Trie树的实现

    trie这种树也被称为线索,搜索树. 正如图 以下是用stl 的map来实现 class trie_item_c { public: trie_item_c(){} trie_item_c(const ...

  2. java命名规则(转)

    1. JAVA源文件的命名 JAVA源文件名必须和源文件中所定义的类的类名相同. 2. Package的命名 Package名的第一部分应是小写ASCII字符,并且是顶级域名之一,通常是com.edu ...

  3. js取json对象的键和值

    //构建一个json对象 var pinpai = { "0":{"美的":49,"三星":35,"海信":25,&qu ...

  4. 单点登录原理与简单实现--good

    一.单系统登录机制 1.http无状态协议 web应用采用browser/server架构,http作为通信协议.http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关 ...

  5. CommonJS里module.exports与exports输出模块的区别

    其实是一个东西,但有些注意点,可以参考CommonJS规范

  6. Android中TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题

    最近在使用TabHost的时候遇到了一些奇怪的问题,在这里总结分享备忘一下. 首先说一点TabActivity将会被FragmentActivity所替代,但是本文中却是使用的TabActivity. ...

  7. 回归(regression)的理解(regressor,回归子)

    1. 基本概念 回归(regression)是监督学习(given {(xi,yi)})的一个重要分类.回归用于预测输入变量(自变量,Xi)与输出变量(因变量,Yi) 之间的关系,特定是当输入变量的值 ...

  8. IOC介绍及其简单实现

    预备知识: Java反射原理,XML及其解析   IOC:Inversion of Control,控制反转,它最主要反映的是与传统面向对象(OO)编程的不同.通常我们编程实现某种功能都需要几个对象相 ...

  9. 斯托克斯定理(Stokes' theorem)

    1. 几种形式 ∮∂SPdx+Qdy+Rdz=∬S∣∣∣∣∣∣cosα∂∂xPcosβ∂∂yQcosγ∂∂zR∣∣∣∣∣∣dS ∮∂Ωw=∬Ωdw 左边是内积: 右边是外积: 物理上的应用: ∮∂SE ...

  10. 第1讲:The nature of Testing--測试的本质

    *********声明:本系列课程为Cem Kanner的软件黑盒測试基础的笔记版************** What's A COMPUTER PROGRAM? Textbooks often d ...