【问题标题】:apt-get for Cygwin?Cygwin的apt-get?
【发布时间】:2012-04-02 20:33:37
【问题描述】:

是否有任何类似apt-get 的程序可与 Cygwin 一起使用?

我已经尝试过cyg-apt,但是当我尝试时出现此错误:

cyg-apt: downloading: http://cygwin.mirrors.pair.com/setup-2.bz2
cyg-apt: downloading: http://cygwin.mirrors.pair.com/setup-2.ini
cyg-apt: bad URL http://cygwin.mirrors.pair.com/setup-2.ini, exiting.

【问题讨论】:

  • 该文件在源存储库中可用。
  • 是否可以从与 cygwin 不同的仓库下载?实际上,我需要一些 linux-headers 用于使用 linux 离线的计算机,但我需要使用 apt-get 在 Windows 上下载它们。
  • cyg-apt 的最后一次更新是 5 年前。当前的存储库结构不同。因此它不会起作用。
  • 不要将cyg-aptapt-cyg 混淆。后者要好得多(只要记住听起来与apt-get 最相似的那个就是好那个)。

标签: cygwin apt-get


【解决方案1】:

我用过的最好的:

apt-cyg package manager

【讨论】:

  • apt-cyg 真的很好。刚刚安装了rsync、openssh、mc等。
  • 它只能安装和删除包,不是吗?无法使用 apt-cyg 将特定软件包或所有软件包升级到最新版本。所以这很好,但没用,因为我也必须使用 Cygwin 的设置。如果我错了,我会很高兴。
  • apt-cyg update 将更新 setup.ini 等,如果有人在 setup.ini 没有日期的情况下遇到问题
  • 有镜子吗?
  • @CodeMonkey 已备份 repo 及其竞争对手:Sage
【解决方案2】:

您可以在 Windows 命令行中使用 Cygwin 的 setup.exe 执行此操作。示例:

cd C:\cygwin64
setup-x86_64 -q -P wget,tar,gawk,bzip2,subversion,vim

为了更方便的安装程序,您可能需要使用 apt-cyg package manager。它的语法是 类似于 apt-get,这是一个加号。为此,请按照上述步骤,然后 使用 Cygwin Bash 执行以下步骤:

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin

现在apt-cyg 已安装。下面是一些安装的例子 包:

apt-cyg install nano
apt-cyg install git
apt-cyg install ca-certificates

【讨论】:

  • 在对 64 位执行上述步骤 apt-cyg 后会出现异常 /usr/local/bin/apt-cyg: line 1: $'\r': command not found /usr/local/bin/ apt-cyg:第 3 行:$'\r':找不到命令 /usr/local/bin/apt-cyg:第 19 行:$'\r':找不到命令 /usr/local/bin/apt-cyg:第 21 行:$'\r':找不到命令 /usr/local/bin/apt-cyg:第 27 行:意外标记附近的语法错误||' 'usr/local/bin/apt-cyg: line 27: ||测试 "-$GAWK-" = "--"
  • @sagunms 很有魅力!在我找到解决方案之前,这是一个烦人的问题。谢谢。
  • @Shahjahan Khan:看来,您使用某些 Windows 文本编辑器打破了行尾。使用 Linux 行尾(\n 或 LF 或 0x0A),而不是 Windows(\r\n 或 0x0D 0x0A 或 CR LF)。
  • 嘿.. 我将如何使用该工具安装 gcc 假设我在安装 cygwin 时忘记安装 Devel 包
  • 为我工作!一个
【解决方案3】:

更新:您可以阅读more complex answer,其中包含更多方法和信息。

有几个脚本可以用作简单的包管理器。但据我所知,它们都不允许您升级软件包,因为在 Windows 上这不是一件容易的事,因为无法覆盖正在使用的文件。因此,您必须先关闭所有 Cygwin 实例,然后才能使用 Cygwin 的本机 setup.exe(当文件正在使用时,它本身通过“重启后替换”方法进行升级)。


apt-cyg

对我来说最好的。仅仅因为它是最新的之一。它适用于两个平台 - x86 和 x86_64。存在许多具有一些附加功能的分叉。例如kou1okada fork 是改进版本之一。


Cygwin 的 setup.exe

它还有command line mode。此外,它允许您一次升级所有已安装的软件包。

setup.exe-x86_64.exe -q --packages=bash,vim

使用示例:

setup.exe-x86_64.exe -q --packages="bash,vim"

您可以创建一个别名以便于使用,例如:

alias cyg-get="/cygdrive/d/path/to/cygwin/setup-x86_64.exe -q -P"

然后你可以安装 Vim 包:

cyg-get vim

【讨论】:

    【解决方案4】:

    您总是可以为 $home/.bashrc 中的 setup*.exe 文件创建一个 bash 别名

    cygwin 32 位

    alias cyg-get="/cygdrive/c/cygwin/setup-x86.exe -q -P"
    

    cygwin 64位

    alias cyg-get="/cygdrive/c/cygwin64/setup-x86_64.exe -q -P"
    

    现在您可以使用

    安装软件包
    cyg-get <package>
    

    【讨论】:

      【解决方案5】:

      这对我有用:

      curl https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > \
      apt-cyg && install apt-cyg /bin
      

      【讨论】:

      • 如果缺少 curl,wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg &amp;&amp; install apt-cyg /bin 是另一种选择
      • 之后还要记得rm apt-cyg
      【解决方案6】:

      没有。唯一官方支持的用于下载和更新 Cygwin 包的工具是 setup.exe file you used for the initial install,尽管可以使用命令行参数调用它来帮助该过程。

      来自同一页面:

      没有更全功能的包管理器的基本原因是这样的程序需要完全访问 Cygwin 的所有 POSIX 功能。然而,这很难在没有 Cygwin 的环境中提供,例如在第一次安装时就存在。此外,Windows 不允许覆盖正在使用的可执行文件,因此在包管理器使用 DLL 时安装新版本的 Cygwin DLL 是有问题的。

      【讨论】:

      • 这些是关于为什么这通常是不可能的一些很好的细节。应该包含在 cyg-get 或 apt-cyg 文档中。
      【解决方案7】:

      您可以使用Chocolatey 安装cyg-get,然后使用它安装您的软件包。

      例如:

      choco install cyg-get
      

      然后:

      cyg-get install my-package
      

      【讨论】:

      • 不幸的是,这会下载 Cygwin 设置 setup-x86_64.exe 并再次安装 Cygwin,而不仅仅是 apt-cyg。我不得不取消安装。
      • 我认为这没有发生在我身上:/
      • 在这里工作得很好。在chocolatey 上易于记忆和搜索。
      猜你喜欢
      • 2013-10-04
      • 1970-01-01
      • 2016-08-28
      • 2021-12-09
      • 2016-07-28
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多