【问题标题】:What is a "port", from the POV of MacPorts?MacPorts 的 POV 中的“端口”是什么?
【发布时间】:2013-08-23 07:10:39
【问题描述】:

我正在尝试在我的 Mac 上安装 Pandas for Python。我安装了 Xcode,然后基于另一个 SO 帖子安装了 MacPorts,然后输入了命令 sudo port install py27-pandas

  1. 究竟什么是“端口”?我已经阅读了它的定义,它是一种“软件构造”(不确定这意味着什么)。通过阅读 MacPorts 的文档,MacPorts “为给定端口自动安装任何需要的支持软件,称为依赖项。”就我而言,熊猫会成为“港口”吗?如果是这样,为什么当 Pandas 文档仅引用三个依赖项时,MacPorts 会安装超过 50 个依赖项?

  2. 究竟如何使用 MacPorts?我目前使用终端访问 Python。既然 Pandas 是通过 MacPorts 安装的,我会做一些不同的事情吗?还是 MacPorts 基本上只是一个“安装程序”,而我使用 Python 也经历了同样的过程?

【问题讨论】:

  • 我认为 macports 的名字来源于软件是“移植版本”的想法 - 并不是说​​它们一定是移植的,而是因为“易于安装”并解决了依赖关系等,该软件似乎或多或少像 pkg 一样对 mac 原生。只需将其视为 easy_install 之类的安装程序或更合适的 apt-get et-al

标签: port macports


【解决方案1】:

这个问题可能更适合编程 SE 组。不确定。我会试着回答。如果我重复了已经很明显的事情,我深表歉意。

我认为 MacPorts 可能已将“端口”的常见用法改编为略有不同的含义。

移植一个软件就是让它适应一个新的软件环境——比如操作系统。例如,有人可能会使用最初为 Windows 编写的软件,并将其“移植”到 MacOS。有时这很容易,涉及更改几行源代码,有时涉及修改多行代码。有时您必须找到额外的软件(有时称为“库”)来代替其他操作系统中自动提供的软件。更一般地说,我所说的“软件环境”可以是人们用作编写其他软件的构建块的任何软件。例如,C# 是一种在许多方面与 Java 编程语言相似的编程语言。有人可能会拿用 C# 编写的软件并用 Java 重写它。这就是“移植”软件。

一旦软件被移植,新版本的软件就称为移植。

通过 MacPorts 提供的大部分软件都是在上述意义上移植的——即它被修改为在 MacOS 中运行,因为它最初是为另一个操作系统编写的。在某些情况下,移植该软件所需的东西非常少,因为该软件是为 Unix 或 Linux 编写的,而 OS X 是正常界面下的 Unix。如果 MacPorts 中的某些软件根本没有移植,我不会感到惊讶——它最初是为 MacOS 编写的。所以这将是 MacPorts 扩展“端口”含义的一种方式。

还记得我上面所说的关于使用其他软件(例如库)的软件吗?如果您安装一个软件,它可能需要其他软件才能运行。第一个软件对其他软件具有“依赖性”。 MacPorts 所做的一件事就是跟踪它。当您要求第一个软件时,它会安装额外的软件。

我不知道 Pandas 是什么。无法帮助您了解如何使用它。但是关于 50 个依赖项:Pandas 可能立即依赖于 3 个其他软件,但 它们 依赖于其他软件,而后者又依赖于其他软件等,很快你就会得到 50 个依赖项.

(还有一个“端口”的用法是指硬件或软件,它们的功能是可以发送和接收数据的东西。如今,这个术语的使用通常出现在有关计算机网络的编程中,似乎对我来说。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多