【问题标题】:Installing a program through MAC Command Line, by putting binary in my PATH通过 MAC 命令行安装程序,将二进制文件放入我的 PATH
【发布时间】:2014-11-19 04:41:39
【问题描述】:

所以我在玩终端机。

有人可以向我解释如何通过将程序的二进制文件放入我的 PATH 来安装程序。

我假设我去 $PATH/ --Binary--

如果是上述情况,

1) 为什么会这样安装程序?

2) 是否有一种标准化的方法可以找到“下载”二进制文件?

我确信有更好的安装程序的方法。不过,我对这种特定方法很感兴趣。

提前感谢您的帮助。

【问题讨论】:

    标签: macos command-line path terminal


    【解决方案1】:

    PATH 是一个shell 变量,它告诉shell 可以在哪里找到程序。它是查找可执行程序和脚本的位置列表,以冒号 (:) 分隔。例如:

    PATH=/bin:/sbin:/usr/local/bin
    

    因此,当您通过键入以下内容运行程序时:

    program
    

    shell 首先查找/bin,然后查找/sbin,依此类推,直到找到program,然后运行。

    因此,如果您想安装二进制文件(或程序或脚本),只需将其放在 PATH 中的任何位置即可。或者把它放在一些新的,而不是你的 PATH 上,然后改变你的 PATH 来告诉 shell 你把它放在哪里。

    一般来说,您可能希望在您的登录配置文件中设置您的 PATH,这可能是 ~/.profile 或其他位置,以便在您每次登录时设置它。为此,添加如下一行:

    export PATH=$PATH:/some/additional/place
    

    如果你想知道当你键入时哪个是实际运行的程序

    program
    

    你可以跑

    which program
    

    例如,如果您想知道您正在运行哪个sed,请键入

    which sed
    

    它可能会告诉你一些类似的东西

    /usr/bin/sed
    

    关于您的第二个问题,关于standard downloads area,我不确定您是指查找二进制文件的标准位置,还是安装它们的标准位置。没有standard downloads 区域来获取二进制文件,尽管对于Mac OSX,很多人使用homebrewmacports。如果您指的是放置它们的标准位置,则通常将不是来自操作系统作者的软件安装到/usr/local/bin,以便所有本地二进制文件与操作系统本身发布的二进制文件分开。

    【讨论】:

    • /usr/local/bin目录是否也适用于下载必须构建的软件?如果是这样,我们应该将整个未解压的根目录存储在那里,还是只存储生成的二进制文件?如果下载已经有bin目录,我们应该将bin目录存放在/usr/local/bin还是整个下载的解压目录?
    • 一般来说,您不会将您下载的任何内容的整个软件分发存储在/usr/local/bin 中。通常,您会在其他地方构建它,然后将生成的二进制文件复制到/usr/local/bin(可能使用install 工具)或将包含二进制文件的目录添加到您的PATH
    • 谢谢!我只是觉得很奇怪,因为我正在解压 /Users/username/Development/Tools 中的所有内容,而且我不确定这是否是最佳做法。
    • 我正在安装一个有bin 文件夹的东西,可执行文件和其他文件都在那里,我应该把这样的东西放在哪里?
    • @cryanbhu 这取决于它是什么、它是如何安装的以及它是为谁服务的。如果它是你自己写的小东西,它只是为你的用户而不是同一系统上的其他人,可能$HOME/bin。如果它是带有Makefileconfigure 脚本的知名包,您可能希望将其配置为进入/usr/local/bin 并执行make install
    猜你喜欢
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多