代码之家  ›  专栏  ›  技术社区  ›  Matthew Rankin val

在Mac OS X 10.6 Snow Leopard上安装Mercurial

  •  13
  • Matthew Rankin val  · 技术社区  · 15 年前

    在Mac OS X 10.6 Snow Leopard上安装Mercurial

    我从源代码处在Mac OS X 10.6 Snow Leopard上安装了Mercurial 1.3.1,方法如下:

    cd ~/src
    curl -O https://www.mercurial-scm.org/release/mercurial-1.3.1.tar.gz
    tar -xzvf mercurial-1.3.1.tar.gz
    cd mercurial-1.3.1
    make all
    sudo make install
    

    这将在中安装Mercurial的站点包文件 /usr/local/lib/python2.6/site-packages/ . 我知道从Mac磁盘映像安装mercurial会将文件安装到 /Library/Python/2.6/site-packages/ 这是mac os x默认python安装的站点包目录。

    我将python 2.6.2+作为框架安装,其站点包目录位于:

    /library/frameworks/python.framework/versions/2.6/lib/python2.6/site-packages

    通过这种方式安装Mercurial,我必须发布:

    pythonpath=/usr/local/lib/python2.6/站点包:“$pythonpath”

    为了让Mercurial工作。

    问题

    • 如何从源代码安装Mercurial,并将站点包安装在不同的目录中?
    • 将站点包放在当前位置是否有优势或劣势?在已经存在的一个python站点包目录中会更好吗?
    • 既然我修改了pythonpath(或者其他冲突),那么我是否需要关心virtualenv是否正常工作?

    从源安装的原因

    Dan Benjamin 属于 Hivelogic 在他的文章中提供了从源代码安装Mercurial的好处和说明 Installing Mercurial on Snow Leopard .

    5 回复  |  直到 8 年前
        1
  •  8
  •   Horst Gutmann    15 年前

    尤其是当你有python 2.6可用时,你可以做一些类似的事情 python setup.py install --user ,将以~/.local作为前缀安装Mercurial。您不必为此更改pythonpath,只需在路径中添加~/.local/bin。

    关于优点和缺点:这一切都取决于您的pythonpath的总体外观,因为修改它会自然地修改包的加载顺序(如果您有一个版本的mercurial安装了一个前缀,而另一个版本安装了不同的前缀,则这一点会变得相关)。通常,我尝试将所有自定义包放入特定的站点包文件夹(例如/usr/local/lib/python2.6/site packages)。再次说明:如果您是唯一一个使用这些libs的人,那么python 2.6的distutils提供的--user标志使得类似这样的操作非常简单(在默认的模块搜索路径中添加~/.local)。

    virtualenv应该可以正常工作,只要您的pythonpath一直使用。

        2
  •  13
  •   Andy Hayden    12 年前

    为什么需要使用MacPorts?蟒蛇 easy_install 最简单的方法和无错误:

    easy_install -U mercurial
    

    它只是一颗普通的金子弹,一直在。

        3
  •  7
  •   Sridhar Ratnakumar    15 年前

    将mercurial或任何python包安装到您的用户主目录中。因此,您可以从任何Python(相同版本)或任何virtualenv访问它们。见 PEP 370 详情。

    $ cd mercurial-x.y.z/
    $ python2.6 setup.py install --user
    $ ~/.local/bin/hg
    ...
    

    但为什么要手动构建mercurial呢?我用 macports .

    $ sudo port install mercurial
    $ which hg
    /opt/local/bin/hg
    

    更新 :现在,我只使用 PyPM 将Mercurial安装到 ~/.local/bin/hg .

        4
  •  5
  •   meduz    15 年前

    正如sridhar所建议的,MacPorts在多个体系结构上工作良好,MacOSX+的版本允许更新和更多:

    $ port variants mercurial
    mercurial has the variants:
       bash_completion: Completion support for bash
       zsh_completion: Install mercurial zsh completion file
    $
    

    以便您可以使用:

    $ sudo port install mercurial +bash_completion
    --->  Computing dependencies for mercurial
    --->  Fetching mercurial
    --->  Attempting to fetch mercurial-1.3.1.tar.gz from http://arn.se.distfiles.macports.org/python
    --->  Attempting to fetch mercurial-1.3.1.tar.gz from http://www.selenic.com/mercurial/release/
    --->  Verifying checksum(s) for mercurial
    --->  Extracting mercurial
    --->  Configuring mercurial
    --->  Building mercurial
    --->  Staging mercurial into destroot
    --->  Installing mercurial @1.3.1_0+bash_completion
    --->  Activating mercurial @1.3.1_0+bash_completion
    --->  Cleaning mercurial
    $
    
        5
  •  1
  •   PlanBForOpenOffice    15 年前

    对于一般的MacOSX用户来说,所有这些答案看起来都很复杂,因为它们是特定于其他安装平台的。到目前为止,Mercurial网站提供了一个安装程序包(压缩为zip文件)。