原地址:http://www.cnblogs.com/ifantastic/p/3677066.html

什么是MacPorts?

MacPorts是使用于Mac OS中第三方包管理工具。

MacPorts让你可以轻松编译、安装和管理开源软件。MacPorts可以分为两个核心部分:

1. MacPort base

2. MacPorts ports。

每个MacPorts port都是一个Portfile,在这个文件中定义了这是什么应用、它的特性,安装它所需要的文件和指令。通过Portfile,你可以只执行一条命令就完成下载、编译和安装应用和库文件。通过MacPorts管理开源软件还有些其他的好处。例如:

  1. 为指定的port自动安装所有依赖包。

  2. 为安装的port提供卸载和升级功能。

  3. 将所有port限制在一个沙盒内,这样它就不会影响操作系统且不易崩溃。

  4. 让你可以为port预编译二进制的安装包,这样你就可以在其他地方快速安装该包而无需重新编译它的源代码。

MacPorts是在Mac OS X上开发的,但是它便于携带且可用于其他类Unix系统,尤其是BSD及其分支版本。

如何安装MacPorts?

1. 首先安装XCode。

    XCode是由苹果公司提供的开发包,它包含了编译器、代码库和其他用于开发Mac OS X应用的工具。

  你可以通过Mac App StoreApple developer website下载XCode,你也可以在网上搜索相关资源。(点击这里下载 XCode 5.1.dmg

  注意:请确保你的Mac OS X版本安装了和它匹配的最新的XCode,使用过期版本会造成port安装失败。另外需要注意的是在OS 10.6之前,XCode不是通过Mac OS X的Software Update Utility进行升级,在Mac OS X 10.7之后,它通过Mac App Store升级。

2. 安装MacPorts。

  如果你使用的是Mac OS X,你最好使用Mac OS X Package Installer来安装MacPorts,除非你不想将MacPorts安装到它的默认目录(/opt/local/)。

  2.1. Mac OS X Package Installer

    Mac OS X Package Installer能自动安装MacPorts,设置shell environment,并且运行selfupdate命令来更新ports tree和MacPorts base。

    你可以从MacPorts download directory下载最新的MacPorts Installer。以下直接给出几个OS X版本用到的下载链接:

      a. OS X 10.7 Lion: MacPorts-2.2.1-10.7-Lion.pkg

      b. OS X 10.8 Mountain Lion: MacPorts-2.2.0-10.8-MountainLion.pkg

      c. OS X 10.9 Mavericks: MacPorts-2.2.1-10.9-Mavericks.pkg

10.10 的macports 可以在网站上下载

    下载完成后,直接双击Package Installer执行默认安装即可,安装完毕后,打开一个新的终端,执行:

  1. $ port version
  2. Version: 2.2.1

    如果安装成功,则可以看见版本号,如果出现 command not found,可以尝试在这里(MacPorts and the Shell)查找原因。

3. 使用MacPorts。

  MacPorts port 命令是与MacPorts交互的主要手段。它用于更新Portfiles、MacPorts基础部件,安装和管理ports。

  3.1. help - 帮助命令。如果给出操作名称,则显示该操作的简要说明,如果没有给出操作名称,则显示port命令使用方法的基本说明。

 

  

  3.2. selfupdate - 该操作用于更新MacPorts,该操作应该经常执行,来将本地的ports tree和全球MacPorts ports仓库同步以便你保持最新的port版本。同时它也会检查MacPorts base,并及时更新它。

  注意:selfupdate操作只适用于Mac OS X。如果你在其他平台运行MacPorts,你需要通过sync操作来更新ports tree,安装最新的MarPorts来更新当前MarPorts base。

  $ sudo port selfupdate - 更新当前ports tree和MacPorts base。

  $ sudo port -d selfupdate - Debug模式更新,会显示更新详情。

  3.3. sync - 同步ports tree,但不检查MacPorts base。

  3.4. list - 列出给定的ports的当前有效版本,如果未给定ports,则列出全部有效ports。因为全部的列表很长,如果你知道某个port名称,最好使用search操作。

  1. xaviermavericks:~ Xavier$ port list
  2. AppHack @1.1 aqua/AppHack
  3. ...
  4.  
  5. xaviermavericks:~ Xavier$ port list zope-zsyncer
  6. zope-zsyncer @0.6.1 zope/zope-zsyncer

  3.5. search - 该操作会搜索与给定名称或描述相匹配的结果。

  3.6. info - 获取port详细信息:描述,维护者等等。

  3.7. deps - 显示port的依赖包,这些依赖包需要在Portfile中明确列出才行。

  1. xaviermavericks:~ Xavier$ port deps apache2
  2. Full Name: apache2 @2.2.26_0+preforkmpm
  3. Library Dependencies: apr, apr-util, expat, openssl, pcre, perl5, zlib

  3.8. variants - 该操作让你可以在安装port前检查它的不同变体。Variants是port的作者提供一些参数,让MacPorts在安装过程中使用。

  1. xaviermavericks:~ Xavier$ port variants nmap
  2. nmap has the variants:
  3. no_pcre: build without pcre support
  4. no_ssl: build without ssl support
  5. universal: Build for multiple architectures
  6. zenmap: build zenmap in addition to nmap

  3.9. install - 安装port,如果该port有variants,可以通过增加variants或者去除默认variants来进行安装。

  1. 普通安装
  2. $ sudo port install nmap
  3.  
  4. 添加variant安装
  5. $ sudo port install nmap +no_ssl
  6.  
  7. 去除variant安装
  8. $ sudo port install fetchmail -ssl

  3.10. clean - 清理操作,用于删除MacPorts在build一个port时产生的临时文件。它还经常用于fetch操作失败后的清理崩溃了的文件。

  1. sudo port clean --all vile

  3.11. uninstall - 卸载操作,卸载port。

  注意:要同时递归删除port所依赖的开发包,使用--follow-dependencies标记。如果该开发包有其他开发包依赖于它,它将不会被删除。

  1. $ sudo port uninstall --follow-dependencies vile

  要在删除当前port前删除所有依赖于它的开发包,使用--follow-dependents。

  1. $ sudo port uninstall --follow-dependents ncurses

  如果要删除一个port,但这个port又是其他ports所依赖的对象,那么MacPorts不会删除它,除非你先删除那些依赖于此包的开发包。你可以使用-f参数来强制执行删除。但谨慎使用,除非你真的很确定你在做什么。

  3.12. contents - 内容操作,显示某个port安装过的文件。

  3.13. installed - 列出已安装port。显示已安装的版本、变体和激活状态。使用 -v 参数显示该port是在哪个平台哪个cpu结构下build的。

  1. xaviermavericks:~ Xavier$ port -v installed python27
  2. The following ports are currently installed:
  3. python27 @2.7.6_0 (active) platform='darwin 13' archs='x86_64'

  3.14. outdated - 列出过期port。使用该操作前先selfupdate或者sync一下,以便对比当前已安装port是否都是最新版本。

  3.15. upgrade - 更新操作。当一个Portfile发生更新时,使用该命令来更新它对应的port及其依赖包。如果你只想更新port,不想更新它的依赖包,那么可以使用 -n 参数,但记住,这样往往会有故障发生。

  1. 普通更新
  2. $ sudo port upgrade gnome
  3.  
  4. 只更新port,不更它的依赖包
  5. $ sudo port -n upgrade gnome
  6.  
  7. 更新所有过期port
  8. $ sudo port upgrade outdated

    upgrade 默认更新行为是下载新的版本并启用它,但不会删除旧的版本。如果你要更新新版本同时卸载旧版本,使用 -u 参数。

  1. $ sudo port -u upgrade vile

  3.16. dependents - 列出所有依赖本包的开发包。

  1. xaviermavericks:~ Xavier$ port dependents python27
  2. nodejs depends on python27
  3. py27-pip depends on python27
  4. py27-setuptools depends on python27

  3.17. livecheck - 检查远程仓库该port是否有更新。

  3.18. lint - 检查Portfile是否符合规范。

  1. xaviermavericks:~ Xavier$ port lint python27
  2. ---> Verifying Portfile for python27
  3. ---> 0 errors and 0 warnings found.

  3.19. select - 在指定的分组,选择一个默认版本并创建链接。例如,python 可能被链接到 python 2.6。可用的 select 分组被安装在 ${prefix}/etc/select/ 的子目录中,使用 --summary 参数列出所有分组。要列出分组中的可用版本,使用 --list。查看当前分组选择的版本,使用 --show。要变更分组中选择的版本使用 --set。

  1. port select --summary
  2. port select --show python
  3. port select --list python
  4. port select --set python python34

(转)[OSX] 在 OS X 中安装 MacPorts 指南的更多相关文章

  1. [OSX] 在 OS X 中安装 MacPorts 指南

    什么是MacPorts? MacPorts是使用于Mac OS中第三方包管理工具. MacPorts让你可以轻松编译.安装和管理开源软件.MacPorts可以分为两个核心部分:MacPort base ...

  2. 如何在 OS X 中安装 ruby

    如何在 OS X 中安装 ruby 软件包下载 链接: http://pan.baidu.com/s/1mgMil5I 密码: tiqg 安装 http://brew.sh/ 1. 先安装 brew( ...

  3. Mac OS X 中安装JDK 7

    通过Mac系统的更新安装Java的版本均为JDK 6的版本,如果想要在Mac上安装JDK 7,就需要到Oracle的网站上去下载相应的安装包. 下面为详细教程: 最新版本为JDK8,目前需求JDK7够 ...

  4. Mac OS X 中安装JDK7

    1. 下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 当前版本1.7.0_ ...

  5. Mac OS X 中安装 brew

    不想被误导?直接看官方文档:   http://mxcl.github.com/homebrew/    先安装Git,打开一个shell cd /usr/local sudo mkdir homeb ...

  6. 在 Ubuntu 中安装 MySQL 指南

    安装MySQL 在Ubuntu上可以使用Ubuntu Software Center或者apt命令来安装MySQL,两种方式都十分方便. 1. 使用Ubuntu Software Center:打开U ...

  7. Mac OS X 下安装python的MySQLdb模块

    参考资料: mac os x下python安装MySQLdb模块   http://www.codeif.com/post/1073/ MAC OSX使用Python安装模块有关问题  http:// ...

  8. 如何在Mac OS X 中运行Lua (Running Lua on Mac OS X)

    参考文章:1) http://www.oschina.net/question/12_769552) http://rudamoura.com/luaonmacosx.html 最近在为iOS开发游戏 ...

  9. Mac OS X中MacPorts的安装使用备忘

    Mac下面除了用dmg.pkg来安装软件外,比较方便的还有用MacPorts来帮助你安装其他应用程序,跟BSD中的ports道理一样.MacPorts就像apt-get.yum一样,可以快速安装些软件 ...

随机推荐

  1. 编写css代码的方式

            css(层叠样式表) 在一个网页中主要负责了页面的数据样式.       编写css代码的方式:       第一种: 在style标签中编写css代码. 只能用于本页面中,复用性不强 ...

  2. Azure构建PredictionIO和Spark的推荐引擎服务

    Azure构建PredictionIO和Spark的推荐引擎服务 1. 在Azure构建Ubuntu 16.04虚拟机 假设前提条件您已有 Azure 帐号,登陆 Azure https://port ...

  3. c++ bitset类的使用和简介

    http://blog.163.com/lixiangqiu_9202/blog/static/53575037201251121331412/

  4. android EditText内嵌图片

    如下所示: 主要用到的属性:android:drawableLeft <EditText android:layout_width="match_parent" androi ...

  5. 关于 "Context" 模式(基于COM思想IUnknown思想)

    有同事很喜欢用Context模式,觉得是自己"首创", 我有些自己的想法, 或者大家可以发表下自己的观点.   什么是Context模式? 23种设计模式中没有这个模式, 是同事自 ...

  6. 五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名(附官方推荐链接),注意使用具有UAC的CMD

    五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名 不支持SHA2算法的计算机更新补丁:https://technet.microsoft.com/zh-CN/library/se ...

  7. 用DIV+Css+Jquery 实现的旧版微信飞机大战。

    用jquery 实现的旧版微信飞机大战. 以前一直都是做后台和业务逻辑,前端很少去做, 现在个小游戏. 方向键控制方向,Ctrl 键 放炸弹(当然你的有炸弹,哈哈)! 主要都是用div+Css实现的, ...

  8. c# 实现文件拖入和拖出(拖拽)

    摘自:http://www.cnblogs.com/eaglet/archive/2009/01/06/1370149.html C# WinForm下一步一步实现文件的拖入和拖出 作者:Eaglet ...

  9. HDOJ 1391 Number Steps(打表DP)

    Problem Description Starting from point (0,0) on a plane, we have written all non-negative integers ...

  10. The Black Tux | IT桔子

    The Black Tux | IT桔子 The Black Tux theblacktux.com