MSYS2 环境搭建 && rsync 使用

Posted 一剑九州寒的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSYS2 环境搭建 && rsync 使用相关的知识,希望对你有一定的参考价值。

前言

最近家中部署了 NAS ,但是数据只保存在 NAS 中总感觉不是很安全,所以希望有备份的手段,将 NAS 上的数据备份到移动硬盘中冷备份。

由于 Windows 下没找到开源好用的文件同步软件,微软之前维护的 SyncToy 似乎也不再维护,那么只能使用 Linux 环境下的 rsync 比较好了。

考虑到在使用 Git for Windows 时可以运行一些 bash 脚本和 Linux 命令,所以笔者尝试是否可以在 Git for Windows 中搭建 rsync 环境,笔者尝试成功了,但是发现一旦 Git 升级或者重装,环境也需要重新搭建,故放弃此方案。

最终笔者使用 MSYS2 环境,Git for Windows 的运行环境就是基于 MSYS2。

MSYS2 安装

安装

前往 MSYS2 官网下载安装包安装即可,如果遇到 Disabled 4 keys. ==> Updating trust database... 卡主的情况,断网稍等片刻即可安装成功。

Windows Terminal 配置

Windows Terminal 里加上如下配置即可,guid 是随机生成的。


    "commandline": "D:/Develop/msys64/msys2_shell.cmd -defterm -no-start -use-full-path -here -mingw64",
    "guid" : "f319d32a-e777-4b93-ad5b-499d586db3ff",
    "hidden": false,
    "icon": "D:/Develop/msys64/msys2.ico",
    "name" : "MSYS2",
    "startingDirectory" : "%USERPROFILE%"

rsync 安装

安装

其实这里比较简单,一行命令搞定

pacman -S rysnc

使用

https://share.bito.co/static/share?aid=92205e9e-6ec5-4aa7-aa26-ec17d72b9d4c
https://share.bito.co/static/share?aid=5acfcb64-290e-4019-9181-b2d88807abd5

rsync -avn --progress /path/to/source/folder/ /path/to/target/folder/

rsync 是一款常用的文件同步工具,它有很多参数可以进行自定义,以下是一些常用的参数:

  • -a :归档模式,表示以递归方式、保留所有文件属性(如权限、日期时间戳等)、保留符号链接、保持文件的所有者和组的身份(如果可能)、递归复制目录。一般情况下使用 -a 参数就可以满足大部分同步需求。
  • -r :递归复制目录。
  • -v :详细模式,输出操作过程中的详细信息。
  • -z :压缩数据传输。
  • -n :模拟运行,显示将要进行的操作,但不会真正执行。
  • --delete :在同步目标目录之前删除目标目录中不存在于源目录中的文件。
  • --exclude :排除指定的文件、目录及其子目录不进行同步,可以使用通配符指定要排除的内容。
  • --include :仅同步指定的文件、目录及其子目录,可以使用通配符指定要包含的内容。
  • --progress :显示同步进度。
  • --bwlimit :限制带宽占用,以 KB/s 为单位指定限制带宽的值。
  • --dry-run :测试运行,不进行实际的文件同步操作。
    这些参数的具体用法和含义可以在 rsync 命令的 man 手册中查看。

参考&引用

MSYS2开发环境搭建(无幻的博客,编译OpenSSL,可使用pacman升级)

MSYS2开发环境搭建

软件安装

下载msys2-x86_64软件包,双击安装到某根目录下,比如D:\\msys64。

pacman是MSYS2自带的软件管理工具:

  1. 可通过修改msys64\\etc\\pacman.d下的三个文件修改软件源,可供选择的有:中国科学技术开源软件镜像北京理工大学镜像日本北陆先端科学技术大学院大学SourceForge镜像The UK Mirror Service Sorceforge mirror等。
  2. 下载后的软件包默认存放目录msys64\\var\\cache\\pacman\\pkg;若命令行下载速度较慢,可以到到软件源网站使用下载工具下载相应的软件包,然后拷贝到此目录,接着使用命令行进行安装。
  3. 运行msys2_shell.bat: pacman -Sy 更新本地包数据
  4. 升级核心包:pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl, 之后需要关闭所有 MSYS2 shell,然后运行 autorebase.bat
  5. 升级其他包:pacman -Su
  6. 常用命令: 
    • pacman -Q查看已安装的软件包
    • pacman -S -g查看软件组
    • pacman -Q -g base-devel查看软件组包含的软件
    • pacman -Q -l vim查询软件包的内容
    • pacman -Q -s nettle查询软件所在的包
  7. 查看工具帮助:pacman -h ;pacman -S -h
  8. 建议通过安装软件组来安装工具链

    pacman -S mingw-w64-x86_64-toolchain
    pacman -S mingw-w64-i686-toolchain
    pacman -S base-devel
    pacman -S vim

MSYS2应用说明

运行环境说明

  1. msys64\\etc\\fstab中可以配置文件目录映射:比如配置C:\\Users\\lenovo\\Desktop /desktop后,可以在终端直接cd /desktop后可以直接切换到C:\\Users\\lenovo\\Desktop目录下。

  2. 任务栏快捷键:msys64\\usr\\bin\\mintty.exe拖拽到任务栏上,右击选择属性,将目标改成三种BAT脚本中的一个。

  3. vim高亮配置:将msys64\\etc\\skel.vimrc拷贝到用户目录下。

  4. MSYS2有三个执行脚本,分别是 msys2_shell.batmingw32_shell.bat 和 mingw64_shell.bat,查看内容可以看到其中只有一行区别,即是设定 MSYSTEM 变量。这个变量在 /etc/profile 中会用到:

    MSYS2_PATH="/usr/local/bin:/usr/bin:/bin"
    MANPATH="/usr/local/man:/usr/share/man:/usr/man:/share/man:${MANPATH}"
    INFOPATH="/usr/local/info:/usr/share/info:/usr/info:/share/info:${INFOPATH}"
    MINGW_MOUNT_POINT=
    if [ -n "$MSYSTEM" ]
    then
    case "$MSYSTEM" in
    MINGW32)
      MINGW_MOUNT_POINT=/mingw32
      PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
      PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
      ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
      MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
    ;;
    MINGW64)
      MINGW_MOUNT_POINT=/mingw64
      PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
      PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
      ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
      MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
    ;;
    MSYS)
      PATH="${MSYS2_PATH}:/opt/bin:${PATH}"
      PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig"
    ;;
    *)
      PATH="${MSYS2_PATH}:${PATH}"
    ;;
    esac
    else
    PATH="${MSYS2_PATH}:${PATH}"
    Fi
  5. 可见,三个 .bat 的区别就是 PATH 的设置,mingw32_shell.bat 优先使用 msys64/mingw32 下的工具,mingw64_shell.bat 优先使用msys64/mingw64 下的工具,而 msys2_shell.bat 两个都不使用,只用自身 msys 的工具。这么做的好处是当需要编译 32bit Target 的项目时使用 mingw32_shell.bat,64 bit 使用 mingw64_shell.bat,各套工具互不干扰。

制作软件包makepkg

MSYS2官网的软件包是通过makepkg或makepkg-mingw制作的。 
可参

常用软件包编译

常用软件包我们可以简单的使用命令直接从官网安装即可,比如安装openssl:

  • 32bit:pacman -S mingw-w64-i686-openssl
  • 64bit: pacman -S mingw-w64-x86_64-openssl

有时候根据项目需要我们不得不自己动手编译依赖的软件包,以下是我在工作用到的库编译过程记录。

openssl

  • 64bit

    mkdir openssl64
    cd openssl64
    tar zxvf openssl-1.0.2c.tar.gz
    cd openssl-1.0.2c
    ./configure mingw64 shared
    make
    make INSTALL_PREFIX=../ install
  • 32bit

    mkdir openssl32
    cd openssl32
    tar zxvf openssl-1.0.2c.tar.gz
    cd openssl-1.0.2c
    ./configure mingw shared
    make
    make INSTALL_PREFIX=../ install

zlib

  • 32bit 

    mkdir zlib32 
    cd zlib32 
    tar zxvf zlib-1.2.8.tar.gz 
    cd zlib-1.2.8/ 
    make -f ./win32/Makefile.gcc 
    make 
    make install -f win32/Makefile.gcc DESTDIR=../ 

参考

 

http://blog.csdn.net/callinglove/article/details/48601775

http://blog.csdn.net/callinglove/article/details/48601775

以上是关于MSYS2 环境搭建 && rsync 使用的主要内容,如果未能解决你的问题,请参考以下文章

MSYS2 环境搭建,并整合Qt

Windows搭建MSYS2和MINGW64环境

msys2-x86_64搭建QT Mingw64编译环境

MSYS2开发环境搭建(无幻的博客,编译OpenSSL,可使用pacman升级)

Zephyr学习开发环境搭建

Windows 工作环境 && Java 开发环境搭建