您的位置:新葡亰496net > 电脑系统 > NIX世界的包容性,安装笔记

NIX世界的包容性,安装笔记

发布时间:2019-06-18 11:22编辑:电脑系统浏览(164)

    MSYS2下载:


    原先一贯在用 msys,近些日子开掘还会有个 msys2,并且msys2 配套的编写翻译器是MinGW-w64。 就试着用了用,认为还能够,这里把安装进程记录一下。

    MSYS2开荒意况搭建

    NIX世界的包容性,安装笔记。MSYS2是什么

    • MSYS2 (Minimal SYStem 2) 是二个MSYS的单身改写版本,首要用以 shell 命令行开垦条件。同一时候它也是二个在Cygwin (POSIX 包容性层) 和 MinGW-w64(从"MinGW-生成")基础上发生的,追求更好的互操作性的 Windows 软件。
    • MSYS2 [1] 是MSYS的贰个荣升版,正确的乃是集成了pacman和Mingw-w64的Cygwin进级版, 提供了bash shell等linux碰着、版本调控软件(git/hg)和MinGW-w64 工具链。与MSYS最大的区分是移植了 Arch Linux的软件包管理种类Pacman(其实是与Cygwin的分化)。

    //
    msys2使用小结 | 知行近思
    http://www.annhe.net/article-3482.html
    MSYS2是MSYS的二个进级版,正确的乃是集成了pacman和Mingw-w64的Cygwin升级版, 提供了bash shell等linux情状、版本调控软件(git/hg)和MinGW-w64 工具链。与MSYS最大的界别是移植了 Arch Linux的软件包管理体系Pacman(其实是与Cygwin的差别)。[1]

    简轻便单的说,MSYS2 是MSYS的一个进步版, 提供了bash shell, Autotools, 版本调整软件和MinGW-w64 工具链。与MSYS最大的分别是移植了 Arch Linux的软件包管理体系 Pacman。有了 Pacman 升级系统,安装新软件包,还会有化解软件包间的信赖难题就变得轻便多了。

    软件安装

    下载msys2-x86_64软件包,双击安装到某根目录下,举个例子D:msys64。

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

    1. 可经过改造msys64etcpacman.d下的四个公文修改软件源,可供选取的有:中华科学本事开源软件镜像、香港理理大学镜像、东瀛北陆先端科学技艺大学院大学SourceForge镜像、The UK Mirror Service Sorceforge mirror等。
    2. 下载后的软件包默许存放目录msys64varcachepacmanpkg;若命令行下载速度相当的慢,能够到到软件源网址使用下载工具下载相应的软件包,然后拷贝到此目录,接着使用命令行进行设置。
    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
      

    特点

    • 设置方便
    • 自带 pacman 管理,能够应用 pkgtool 来 makepkg
    • 相当的慢的源速度(可以修改源地址)
    • 自带软件和库较全而且比较新
    • 应用mingw-w64工具链,能够编写翻译三十个人或陆十一位代码(须要活动安装)
    • 中文辅助好,能够向来输入和浏览汉语目录

    //
    pacman查找安装软件
    pacman -Ss #招来软件
    pacman -S #安装软件
    pacman -Sl #列出补助软件
    pacman -Qi #查看某些软件包音讯
    pacman -Ql #列出软件包内容

    能够在那边查看MSYS2席卷了怎么软件包:

    MSYS2应用注解

    一、MSYS2的MirrorList配置


    运维情状表达

    1. msys64etcfstab中能够配备文件目录映射:比如配置C:UserslenovoDesktop /desktop后,能够在极端间接cd /desktop后能够直接切换成C:UserslenovoDesktop目录下。

    2. 职务栏连忙键:msys64usrbinmintty.exe拖拽到职分栏上,右击选拔属性,将对象改成二种BAT脚本中的一个。

    3. vim高亮配置:将msys64etcskel.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,各套工具互不干扰。

    1、修改msys2安装目录下的/etc/pacman.d文件夹里面包车型大巴3个mirrorlist.*文件

    [mirrorlist.mingw32]
    #中国科学技术大学开源软件镜像
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
    #北京理工大学开源软件镜像
    Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686
    #清华大学开源软件镜像
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
    #日本北陆先端科学技术大学院大学 sourceforge 镜像
    Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/i686
    Server = ftp://ftp.jaist.ac.jp/pub/sourceforge/m/ms/msys2/REPOS/MINGW/i686
    Include = /etc/pacman.d/mirrorlist.mingw32
    
    [mirrorlist.mingw64]
    #中国科学技术大学开源软件镜像
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
    #北京理工大学开源软件镜像
    Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/x86_64
    #清华大学开源软件镜像
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
    #日本北陆先端科学技术大学院大学 sourceforge 镜像
    Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
    Server = ftp://ftp.jaist.ac.jp/pub/sourceforge/m/ms/msys2/REPOS/MINGW/x86_64
    Include = /etc/pacman.d/mirrorlist.mingw64
    
    [mirrorlist.msys]
    #中国科学技术大学开源软件镜像
    Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch
    #北京理工大学开源软件镜像
    Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch
    #清华大学开源软件镜像
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
    #日本北陆先端科学技术大学院大学 sourceforge 镜像
    Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
    Server = ftp://ftp.jaist.ac.jp/pub/sourceforge/m/ms/msys2/REPOS/MSYS2/$arch
    Include = /etc/pacman.d/mirrorlist.msys
    

    //
    选用MSYS2/MinGW-w64境遇编写翻译GNU Emacs | M-x 克莉丝-An-Emacser
    https://chriszheng.science/2015/03/19/Chinese-version-of-Emacs-building-guideline/
    MSYS2是MS-Windows下编译自由/开源软件的一个情形,衍生自Cygwin,也便是说它和Cygwin同样,编写翻译出的顺序无法脱离Cygwin碰到运转(其实就是离不开那些DLL文件)。但MSYS2有贰个很牛的地点是它自带了MinGW-w64,MinGW-w64能够以为是MinGW的晋级版本,编写翻译出的次第是原生的Windows程序,最大的风味和名字一模一样,协助理编辑译出64人的顺序。近日MSYS2和MinGW-w64开辟都很活泼,两者结合,既表明了MSYS2对*NIX世界的包容性,又能用MinGW-w64编写翻译原生代码,很爽,自带的包很充足,包管理采纳Arch Linux用的Pacman,特别的造福。

     

    创建软件包makepkg

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

    • MINGW_INSTALLS=mingw64 makepkg -sLf --skippgpcheck
    • C:msys64usrsharepacmanPKGBUILD.proto

    2、修改/etc/pacman.conf,把上面注释行松开

    XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
    

    轻率说多了,由此可知,用MSYS2/MinGW-w64能便于的编写翻译自由/开源软件,这里大家用那一个组合来编写翻译62人的GNU Emacs,也便是项目Emacs-w64。

    安装

     

    msys2 的主页地址:

     

    率先下载安装文件,笔者的系统是31人的,所以下载31个人的安装包:

    msys2-i686-20140910.exe

     

    msys2 须求安装目录只可以有 ascii 字符并且不可能有空格。小编采用设置在:

    C:/msys32

    如此那般设置完后唯有最主旨的系统,未有gcc开采条件。运转如下命令能够展开一个bash shell:

    msys2_shell.bat

    结余的行事都在那些bash shell下打开。

    msys2 移植了Arch Linux 上的软件包管理体系 Pacman,有了包管理体系,晋级、安装新的软件就很轻易了。 然则笔者直接在用redhat 系的linux,未有接触过 Pacman,学习新命令依旧花了些日子。这里把一些普及的Pacman命令记录一下。

    常用软件包编写翻译

    常用软件包大家得以轻易的行职责令直接从官方网址安装就可以,比方设置openssl:

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

    一时候依据项目必要大家不得不自身出手工编织译注重的软件包,以下是本人在做事选用的库编写翻译进程记录。

    3、更新软件包

    pacman -Syu
    

    创新本地软件包

    更新本地软件包数据库:

    pacman -S --refresh

    能够缩写为:pacman -Sy

    接下来晋级软件包:

    pacman -S --refresh --sysupgrade 

    可以缩写为:pacman -Syu

     

    这里供给特别注意,不能够写为:

    pacman -Su

    付给的说辞如下,我水平太低,没完全明白是啥意思:

    because all MSYS2 programs share the same address space for DLLs due to how MSYS2 (well, Cygwin) implements 'fork', and because any Pacman package (both MSYS2 and MinGW-w64 ones) may use MSYS2's bash to run a post-install script, issuing this command can cause these scripts to fail to run should any updated, core MSYS2 DLLs end up in a different location to where they were. For this reason, the safest procedure for updating MSYS2 is to do it in two stages;

    首先更新MSYS2骨干程序包:

    pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl

     

    假如这一步更新了部分软件包,那么就须要关闭 msys2 然后再重复运营如下三个批处理文件:

    autorebase.bat

    msys2_shell.bat

    再不更新其余软件包是会报错。(看来MSYS2 依旧有一些弱,希望以后可以把那几个标题改好了)

    后来就足以用:

    pacman -Su

    履新系统的其余软件包了。

    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
      

    二、常用工具安装

    //
    从cygwin迁移到msys2的案由和步子 - 陌辞寒的才能博客 - SegmentFault
    https://segmentfault.com/a/1190000002789600
    为何从cygwin迁移到msys2
    习感到常Linux后,再使用Windows的话,cygwin基本是必须的。但cygwin有一部分痛点:

    列出全体安装了的软件

    pacman -Q --explicit

    或者

    pacman -Q -e

    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=../

    1、查看工具套件

    pacman -Sg
    

    获取结果如下:

    kf5
    mingw-w64-i686-toolchain
    mingw-w64-i686
    mingw-w64-i686-gimp-plugins
    mingw-w64-i686-qt4
    mingw-w64-i686-qt
    mingw-w64-i686-qt5
    mingw-w64-i686-vulkan-devel
    tesseract-data
    mingw-w64-x86_64-toolchain
    mingw-w64-x86_64
    mingw-w64-x86_64-gimp-plugins
    mingw-w64-x86_64-qt4
    mingw-w64-x86_64-qt
    mingw-w64-x86_64-qt5
    mingw-w64-x86_64-vulkan-devel
    libraries
    development
    base-devel
    base
    msys2-devel
    compression
    VCS
    sys-utils
    Database
    net-utils
    editors
    python-modules
    mingw-w64-cross-toolchain
    mingw-w64-cross
    MSYS2-devel
    perl-modules
    

    自动依照要求设置,一般较常用安装

    pacman -S --noconfirm mingw-w64-x86_64-toolchain libraries development base-devel msys2-devel compression VCS sys-utils net-utils editors python-modules
    pacman -S --noconfirm mingw-w64-cross mingw-w64-cross-toolchain
    

    并未有贰个好用的包管理工科具,无论是官方的setup.exe,照旧第三方的多少个apt-cyg,都存在使用不便利和功力不全的标题:
    setup.exe选包很疲惫
    apt-cyg和它的注重得特别安装
    cygwin的已安装软件数据库不区分是一贯设置的只怕被注重的包,一旦装上想等卸载就只好自身手动分辨了
    apt-cyg不帮助软件晋级操作,笔者要好加上了那些作用(goreliu/apt-cyg),尽管基本能用,但仍旧存在有的标题
    cygwin的软件打包格局不便利,并且为官方软件酒馆提交新的包要求走加邮件列表、发邮件、确认、上传等居多流水生产线
    cygwin里相当多软件的本子依旧相比较老的,举例git依旧2.1.4本子的,升级缓慢(三个好音讯是python和ruby近些日子几天进级到最新版本了,此前依然python 2.7.8/3.2.2、ruby 2.0.0,盼了深入)
    而msys2基本上消除了那一个标题:
    运用从archlinux移植过来的pacman,功用完全,使用方便
    PKGBUILD好写,用过archlinux的话无学习花费,为官方源提交新包能够间接在github发PRubicon
    msys2里的软件总体是要比cygwin新的(多少个特例,近来cygwin的ruby晋级到了流行的2.2,而msys2的依旧2.1)

    安装新的软件包

    pacman -S <package_names|package_groups>

    比如本人要安装 gcc。那么实践:

    pacman -S gcc 

    接下来依据提示安装就足以了。

    参考

    • MSYS2的源配置
    • MSYS2 MinGW-w64 Git gVim 意况布署
    • GCC online documentation

     

    2、常用工具

    • 查阅可安装软件列表
    pacman -Sl
    
    • 安装python
    pacman -S --noconfirm mingw-w64-x86_64-python2 mingw-w64-x86_64-python2-setuptools mingw-w64-x86_64-python2-pip mingw-w64-x86_64-python2-ipython
    pacman -S --noconfirm mingw-w64-x86_64-python3 mingw-w64-x86_64-python3-setuptools mingw-w64-x86_64-python3-pip mingw-w64-x86_64-python3-ipython
    
    • 安装python科学计算库
    pacman -S --noconfirm mingw-w64-x86_64-python2-numpy mingw-w64-x86_64-python2-scipy mingw-w64-x86_64-python2-matplotlib mingw-w64-x86_64-python2-pandas
    pacman -S --noconfirm mingw-w64-x86_64-python3-numpy mingw-w64-x86_64-python3-scipy mingw-w64-x86_64-python3-matplotlib mingw-w64-x86_64-python3-pandas
    
    • 安装具备python工具
    pacman -Sl | grep mingw-w64-x86_64-python2 | awk '{print "pacman -S --noconfirm "$2}' > python2-all.sh
    sh python2-all.sh
    pacman -Sl | grep mingw-w64-x86_64-python3 | awk '{print "pacman -S --noconfirm "$2}' > python3-all.sh
    sh python3-all.sh
    
    • 安装nodejs
    pacman -S --noconfirm mingw-w64-x86_64-nodejs
    
    • 设置扶帮手册
    pacman -S --noconfirm help2man man-db man-pages-posix
    
    • 安装zsh和git
    pacman -S --noconfirm zsh git
    
    • 安装oh my zsh
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    
    • 运行展开zsh
    vim .bashrc
    

    在文书最终一行增添,当然也得以直接在指令行中推行

    exec zsh
    
    • 安装vim
    pacman -S --noconfirm vim
    
    • 超强vim配置文件
    wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x
    

    利用pacman安装供给的软件

    索求软件包

    相当多时候,我们不亮堂要遵照的软件的高精度名称,那时将在先查询软件包的称号。

    pacman -Ss <name_pattern>

     

    比方说我想安装gcc相关的软件,那么能够那样搜索

    pacman -Ss gcc

     

    pacman -Q --groups

    可以列出全体的软件组,在自我那边举办的结果如下:

    base bash

    base bash-completion

    base bsdcpio

    base bsdtar

    base bzip2

    base catgets

    base coreutils

    base crypt

    base curl

    base dash

    base file

    base filesystem

    base findutils

    base flex

    base gawk

    base gcc-libs

    base getopt

    base grep

    base gzip

    base less

    base lndir

    base man-db

    base mintty

    base msys2-runtime

    base ncurses

    base pacman

    base pacman-mirrors

    base pkgfile

    base rebase

    base sed

    base texinfo

    base tzcode

    base which

    msys2-devel binutils

    msys2-devel gcc

    msys2-devel msys2-w32api-headers

    msys2-devel msys2-w32api-runtime

    compression bzip2

    compression gzip

    compression liblzo2

    compression xz

    libraries cloog

    libraries gmp

    libraries heimdal-libs

    libraries icu

    libraries isl

    libraries libarchive

    libraries libasprintf

    libraries libbz2

    libraries libcares

    libraries libcatgets

    libraries libcrypt

    libraries libcurl

    libraries libdb

    libraries libexpat

    libraries libffi

    libraries libgdbm

    libraries libgettextpo

    libraries libgpg-error

    libraries libgpgme

    libraries libiconv

    libraries libidn

    libraries libintl

    libraries liblzma

    libraries liblzo2

    libraries libmetalink

    libraries libnettle

    libraries libopenssl

    libraries libp11-kit

    libraries libpcre

    libraries libpipeline

    libraries libreadline

    libraries libsqlite

    libraries libssh2

    libraries libtasn1

    libraries libxml2

    libraries mpc

    libraries mpfr

    libraries zlib

    Database db

    Database gdbm

    base-devel file

    base-devel flex

    base-devel gawk

    base-devel gettext

    base-devel grep

    base-devel groff

    base-devel m4

    base-devel pacman

    base-devel perl

    base-devel pkgfile

    base-devel sed

    base-devel texinfo

    MSYS2-devel msys2-runtime-devel

     

    三、Pacman 命令详解

    Pacman 是三个命令行工具,那意味着当您推行上边包车型的士吩咐时,必须在终端或调控高雄展开。

    除去多少个软件包

    pacman -R <package_names|package_groups>

     

    1、更新系统

    • 在 Arch Linux 中,使用一条命令就能够对总系列统进行更新:
    pacman -Syu
    
    • 若果您曾经采纳 pacman -Sy 将地点的包数据库与远程的饭馆举办了一块,也足以只进行:
    pacman -Su
    

    2、安装包

    pacman -S 包名 例如,执行 pacman -S firefox 将安装 Firefox。你也可以同时安装多个包,只需以空格分隔包名即可。
    pacman -Sy 包名 与上面命令不同的是,该命令将在同步包数据库后再执行安装。
    pacman -Sv 包名 在显示一些操作信息后执行安装。
    pacman -U 安装本地包,其扩展名为 pkg.tar.gz。
    

    3、删除包

    pacman -R 包名 该命令将只删除包,不包含该包的依赖。
    pacman -Rs 包名 在删除包的同时,也将删除其依赖。
    pacman -Rd 包名 在删除包时不检查依赖。
    

    4、搜索包

    pacman -Ss 关键字 这将搜索含关键字的包。
    pacman -Qi 包名 查看有关包的信息。
    pacman -Ql 包名 列出该包的文件。
    

    5、其余用法

    pacman -Sw 包名 只下载包,不安装。
    pacman -Sc Pacman 下载的包文件位于 /var/cache/pacman/pkg/ 目录。该命令将清理未安装的包文件。
    pacman -Scc 清理所有的缓存文件。
    

    关于 Pacman 特别详细的用法,能够阅读Pacman 的手册页

    本文由新葡亰496net发布于电脑系统,转载请注明出处:NIX世界的包容性,安装笔记

    关键词:

上一篇:没有了

下一篇:没有了