首页 > 其他分享 >MSYS2学习笔记:基础使用

MSYS2学习笔记:基础使用

时间:2023-11-17 19:14:41浏览次数:28  
标签:shell 仓库 pacman 笔记 学习 命令 MSYS2 软件包

本随笔用于记录随笔作者在使用MSYS2工具过程中需要掌握到的基础知识,例如如何查找想要的工具与其下载、如何环境配置等基础操作。本文内容摘录自MSYS2官方文档
该随笔会不定时更新

随笔作者还正处于学习阶段,难免出现技术上和书写上的问题,如果发现类似问题,欢迎在评论区或私信与我讨论。

目录

启动MSYS2

  • 一般情况下当我们安装好MSYS2之后会提供很多环境供我们使用(MinGW64d、Clan64或UCRT64等),MSYS2工具包提供了一个Windows命令行工具可以让我们在启用之前根据命令启用不同的MSYS2环境:
    msys2_shell.cmd
    我们可以通过添加--help参数打开该cmd脚本的使用方法:
    msys2_shell.cmd --help
    调用命令之后会打印出该命令行脚本的详细参数设置:
Usage:
    msys2_shell.cmd [options] [login shell parameters]

Options:
    -mingw32 | -mingw64 | -ucrt64 | -clang64 | -msys[2]   Set shell type
    -defterm | -mintty | -conemu                            Set terminal type
    -here                            Use current directory as working
                                     directory
    -where DIRECTORY                 Use specified DIRECTORY as working
                                     directory
    -[use-]full-path                 Use full current PATH variable
                                     instead of trimming to minimal
    -no-start                        Do not use "start" command and
                                     return login shell resulting
                                     errorcode as this batch file
                                     resulting errorcode
    -shell SHELL                     Set login shell
    -help | --help | -? | /?         Display this help and exit

Any parameter that cannot be treated as valid option and all
following parameters are passed as login shell command parameters.

参数的详细说明如下(感谢网友@qq_36525177发布的文章MSYS2 介绍与使用对参数的讲解):

  • -mingw32 | -mingw64 | -ucrt64 | -clang64 | -msys[2]
    选择我们要启用的Shell类型,也就是我们要使用的工具环境,目前来说官方最推荐使用ucrt64环境。
  • -defterm | -mintty | -conemu
    选择我们要使用的终端类型。
    -defterm是“Default Terminal(默认终端)”的缩写,一般来说使用的就是系统自带的终端,即cmd
    -mintty是MSYS2集合默认使用的终端。
    -conemu即为conemu
  • -here
    会在我们启用MSYS2之后进入到我们打开该终端时所处的目录。
  • -where DIRECTORY
    类似-here,但是会进入到指定的DIRECTORY目录。
  • -[use-]full-path
    会将系统内的PATH环境变量导入到MSYS2的环境当中,这样的话就能让MSYS2也可以使用系统的环境变量。
  • -no-start
    可以让我们直接进入到MSYS2环境里而不需要打开对应的终端,可以实现无缝打开MSYS2环境而不会有弹窗。一般来说该命令需要搭配-defterm命令使用,因为MSYS2默认使用Mintty终端,如果不指定-defterm的话则MSYS2还是会打开Mintty终端的界面从而无法无缝衔接
  • -shell SHELL
    可以指定我们要使用shell解释器类型,默认是bash。例如我们可以指定zsh作为我们的解释器类型(需要提前安装):-shell zsh

软件包管理(Package Management)

同步(升级)软件包

从主服务软件包仓库拉取软件包信息到本地的软件包仓库

pacman -Sy
因为我们本地的软件包仓库(Package Repositories)不一定代表着最新的软件包版本,所以我们需要首先从软件源上拉取最新的软件包信息到我们的本地仓库上。其中S代表“同步(Synchronization)”,y代表“刷新(Refresh。随笔作者注:这个是ArchLinux Wiki对pacman参数的注释,我个人觉得把y解释为“Synchronize”取第二个字母比较好一些)”

根据本地软件包仓库的信息更新系统

pacman -Su
该命令可以根据本地软件包仓库更新全部软件包到系统上。其中u代表“系统更新(sysupgrade)”

先从服务器拉取软件包信息然后再更新软件包到系统上

pacman -Syu
该组合命令组合了参数yu,可以实现“一次命令,两个操作”:更新软件包仓库之后再更新软件包,可以省去重复输入命令的繁琐操作。

搜索软件包

pacman -Ss <name or part of the namse of the package>
根据软件仓库的信息搜索服务器上指定的软件包。其中s代表“搜索(Search)”。
pacman -Q <package name>
搜索已安装的包中符合<package name>的软件包,而且是完全匹配<package name>指定的名字,如果我们需要模糊搜索或正则搜索,或是搜索描述而不仅仅是名字的话,则需要下面的命令:
pacman -Qs <name or part of the name of the package>
其中Q代表“查询(Query)”。

安装软件包

pacman -S <name of the package>
该命令会安装指定的软件包及其依赖包。

删除软件包

pacman -R <name of the package>
该命令会删除指定的软件包,但是不包括依赖包。因此如果我们需要连同删除该软件包依赖但是不被其他软件包依赖的依赖包时,可以使用如下命令:
pacman -Rs <name of the package>
其中s代表“递归(Recursive)”。
管理工具删除某些程序时会备份重要配置文件,并在其后面加上“*.pacsave”扩展名,使用如下命令可以连同配置文件一起删除:
pacman -Rn <name of the package>
其中n代表“不保存(nosave)”。
如果我们需要完全删除一个软件包(软件包本身、其依赖且没有被其他包依赖的包、配置文件),则可以使用如下的组合命令:
pacman -Rsn <name of the package>

标签:shell,仓库,pacman,笔记,学习,命令,MSYS2,软件包
From: https://www.cnblogs.com/u-n-owen/p/17839392.html

相关文章

  • 安卓大佬力荐,送你一份超详细的Android学习教程指南
    前言之前,我们也经常听到一种声音“计算机专业已经饱和了,赚不到钱了”,但是现在,这种声音好像越来越少了,大家都没有这种担心了吗?主要是初级岗位已经趋于饱和,但高级岗位又相对缺乏,作为Android开发人员,我们应该思考怎么去往高级人才发展,而不是转学其他语言,我们是要懂得去成为金字塔顶端......
  • 学习随笔(设计模式:模板方法模式)
    内容今天学习了模板方法模式,模板是一种面向对象高级语言中常用的编程思想。收获1.模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2.模板编程能大大提高代码的复用性,可以在寻找所......
  • Hadoop学习(一) 搭建伪分布式集群
    文章结构1.准备工作1.1配置IP1.2关闭防火墙1.3修改主机名并与IP绑定1.4创建新用户1.5配置免密匙 2.安装并配置Hadoop伪分布式集群2.1安装Java2.2安装配置Hadoop伪分布式集群 1.准备工作1.1配置IP首先进入该路......
  • task02:免模型预测、免模型控制学习总结
    免模型预测这节学习的主要是蒙特卡洛方法和时序差分法有模型与免模型状态转移概率是已知的,这种情况下使用算法我们称为有模型算法,而对于智能体来说环境是未知的,在该情况下使用算法,我们称之为免模型算法。在这里应该注意,除了动态规划外,其他的基础强化学习算法都是免模型的。有......
  • 《A Survey on Deep Learning-based Fine-grained Object Classification and Semanti
    论文标题《ASurveyonDeepLearning-basedFine-grainedObjectClassificationandSemanticSegmentation》基于深度学习的细粒度对象分类和语义分割的综述为什么是“Object”而不是“image”作者西南交通大学和新加坡国立大学2016年7月1日received;2016年9月30日......
  • 学期2023-2024-1 20231416《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标《计算机科学概论》第9章《C语言程序设计》第7章并完成云班课测试,功能设计与面向对象设计,面向对象设计过程,面向对象语言三......
  • 硬件开发笔记(十二):RK3568底板电路电源模块和RTC模块原理图分析
    前言  做硬件做系统做驱动,很难从核心板做起,所以我们先依赖核心板,分析底板周围的电路,然后使用AD绘制原理图和设计PCB,打样我司测试底板,完成硬件测试,再继续系统适配,驱动移植,从而一步一步完善成为一个功能完善的底板,且搭载了我们跳完的系统和驱动。  本篇文章,先从底板的电源电......
  • 整理ML&AI学习路径图
    干货分享:下面给出一个笔者自己整理的GitHub仓库:https://github.com/isLinXu/awesome-road-map,里面包含了一些可供参考的学习路径和思维导图,并整理微软、meta、谷歌、Kaggle以及华为、百度、阿里、腾讯、讯飞等相关的学习资源内容,可以用来帮助学习某个方面的知识与内容。其中Kaggl......
  • 深度学习---单目标关键点检测网络Stacked Hourglass
    StackedHourglassNetworks是2016年提出的一种用于单人人体姿态估计的网络,并取得了很好的效果。这里我们从网络结构以及一些实现细节简单分析下这个网络。paper:https://arxiv.org/pdf/1603.06937.pdfcode:https://github.com/princeton-vl/pytorch_stacked_hourglasshttps:......
  • 学习笔记10
    第十二章学习笔记块设备I/O缓冲区I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时,它首先在缓冲区缓存中搜索分配给磁盘块的缓冲区。如果该缓冲区存在并且包含有效数据,那么它只需从缓冲区中读取数据,......