windows+msys64+wsl (1)

702 阅读4分钟

windows 终端环境搭建 (win11+msys)

这篇主要开发环境在windows上,所以下面给了详细的在windows上配置的内容

如果要转战wsl环境请阅读 windows+msys64+wsl (2)

终端

msys 这是一款在windows上模拟linux命令的工具

官网

下载msys 这边是2023-3-18版本的最新版本去官网下载

  1. 安装时选择安装位置默认c根目录我这边选择d以后在重装系统的时候就不用重新配置了

  2. 安装好新建terminal的profile,在commadline下面粘贴这段话,执行shell,我是吧msys放在了d

    $ D:/msys64/msys2_shell.cmd -defterm -here -no-start -msys
    

    对应的startDirectoryD:/msys64/home/%USERNAME%

  3. 安装vim 这边使用的是pacman, 鉴于archLinux的包管理

    $ pacman -S vim
    
  4. 配置包的镜像

    我这边用的是msys 其他的还可以用ucrt64,mingw64,mingw, 反正都配一下吧 有的时候包在别的环境下.镜像源

    $ vim /etc/pacman.d/mirrorlist.msys
    # 更新
    $ pacman -Syyu
    
  5. 配置shell 这边用zsh

    $ pacman -S zsh
    
  6. 给终端装一个主题 这边用的是zim管理

    # 在下载前先配置一下hosts 在hosts文件中追加
     199.232.28.133  raw.githubusercontent.com
     185.199.108.133 raw.githubusercontent.com
    
    

    下载主题

    $ curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
    
    # 如果没有 curl 用pacman装一下
    

    配置主题

    $ vim ~/.zimrc
    

    追加

    zmodule romkatv/powerlevel10k
    zmodule prompt-pwd
    

    保存退出执行

    $ zimfw install 
    

    最后根据提示安装好主题

环境变量

  • 对于终端类的我们可以直接配置到.zshrc文件中和linux一样,下面是个范例

如果用wsl作为主要开发环境的话不用配置过多的宿主(windows) 环境变量

# global variable
export WORKSPACE=/d/workspace
export SDK=/d/sdk
export APP=/d/application
export PKG=/d/pkg
export MSYS_HOME=/d/msys64

# gloabl path
export PATH=$MSYS/mingw64/bin:$PATH

#windows home
export WHOME=/c/Users/dairs

# nodejs
export NODE_HOME=$SDK/nodejs
export NODE_VERSION="v18.14.1"
export PATH=$NODE_HOME/$NODE_VERSION:$PATH
# npm global repostory
export PATH=$PKG/npm:$PATH

# cmake
export PATH=$SDK/cmake/bin:$PATH

# git
export GIT_HOME=$SDK/git
export PATH=$GIT_HOME:$GIT_HOME/bin:$GIT_HOME/cmd:$PATH

# android
export ANDROID_HOME=$SDK/android
export ANDROID_VERSION="33.0.3"
export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/$ANDROID_VERSION:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
# android studio
export PATH=$APP/android-studio/bin:$PATH

# java
export JDK_VERSION="jdk-11.0.18+10"
export JAVA_HOME=$SDK/java/$JDK_VERSION
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

# flutter
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PUB_HOSTED_URL="https://pub.flutter-io.cn"
export PATH=$SDK/flutter/bin:$PATH

# golang
export GOPATH=$WORKSPACE/golang
export GO_VERSION="go1.20.2"
export GOROOT=$SDK/go/$GO_VERSION
export GOPROXY="https://proxy.golang.com.cn,direct"
export PATH=$SDK/go/$GO_VERSION/bin:$GOPATH/bin:$PATH


# application
# vscode
export PATH=$APP/VSCode/bin:$PATH

# alias
alias ll='ls -al'
# jump to
alias cwh='cd $WHOME'
alias cwork='cd $WORKSPACE'

  • 对于windows而言如果其他软件需要用到环境变量他是不会读取这个配置的,所以得在windows中配置一些,不多按需配置即可

安装一些有用的包

有些包用这个装效果还是不错的 git 和 nodejs我并没有用它装我统一放在了sdk下面

  1. make cmake
$ pacman -S make cmake
  1. c++ gcc 环境
$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain

注意: toolchain这个安装在了mingw-w64,请把相应的目录配置到环境变量中export PATH=$MSYS/mingw64/bin:$PATH,不然装好了会提示找不到, 最后执行gcc --version 查看是否装好

  1. nvim
# 不知道安装包是否有用下面命令查看
pacman -Ss neovim
# 然后选择合适的环境下的neovim安装

注意: windows下的neovim的配置文件是在$HOME/AppData/nvim下面的. neovim的知识请移步bilibili,相关推荐配置 请注意网络有些插件下载不下来请走科学道路

字体 nerdfont

一些花里胡哨的图标就是走这种字体的 我这边用的是FiraCode NF,如果是windows系统,请选择兼用型字体

github 这边fork了一下别人的仓库做个收藏

关于一些细节处理

  1. nodejs

我这边的npm全局仓库放到了别的位置

$ npm config -g set prefix=$(cygpath -m /d/pkg/npm) # 下面可以直接写shell会自动转换linux路径为windows路径
$ npm config -g set prefix=/d/pkg/npm
# 两条命令效果一样

cygpath 是一个windows路径和linux路径转换的一个命令

  1. vscode 终端配置

config terminal settings

{
 ...

 "terminal.integrated.defaultProfile.windows": "msys",
  "terminal.integrated.profiles.windows": {
    "PowerShell": {
      "source": "PowerShell",
      "icon": "terminal-powershell"
    },
    "Command Prompt": {
      "path": [
        "${env:windir}\\Sysnative\\cmd.exe",
        "${env:windir}\\System32\\cmd.exe"
      ],
      "args": [],
      "icon": "terminal-cmd"
    },
    "Git-Bash": {
      "path": ["${env:SDK}\\git\\bin\\bash.exe"],
      "args": ["-i", "-l"]
    },
    // 配置在这 ... 也可以向上面一样使用环境变量配置 
    // "path": ["${env:msys}\\msys2_shell.cmd"],
    // 注意这个msys环境变量要事先在windows环境变量中加入
    "msys": {
      "path": ["D:\\msys64\\msys2_shell.cmd"],
      "args": ["-defterm", "-here", "-no-start", "-msys"]
    }
  },

}

问题

  1. yarn create * 报文件名、目录名或卷标语法不正确

可能是因为yarn的命令目录bin与其全局安装位置不在一个文件夹下导致

解决方案

    1. 查看yarn的命令目录
    $ yarn global bin
    
    1. 查看yarn的全局安装目录
    $ yarn global dir
    
    1. 发现与bin的位置并不一致,于是去修改 yarn的全局安装位置和缓存位置
      $ yarn config set global-folder "D:\pkg\yarn"
      $ yarn config set cache-folder "D:\pkg\yarn_cache"
    

注:此处设置并非要与bin同一目录下,同一根目录即可。此处未放在node下的文件夹,而是将yarn 单独放在了另外一个文件夹中

  1. flutter 找不到git

原因1: git环境没配置 原因2: flutter sdk文件夹被重装系统后git由于安全问题不予理会

解决方案

    1. 针对第一个问题可以重新安装git并加入环境变量,如果是执行的exe这需要配置终端环境路径 如果是便携式的git包则需要手动配置一下终端环境路径
    1. 针对第二个问题,最粗暴的方法就是删了重新下载flutter,第二种就是 git status一下根据提示把文件夹放入safe名单中去