MacPorts简介及日常应用与维护/mac port

MacPorts是在mac osx下的软件包安装系统,包含了一系列Unix/Linux工具、软件包等。同类软件还有HomeBrew。macPorts的优点之一是,它把所有软件安装到一个固定目录下,与osx本身完全隔离,不造成混乱。

安装MacPorts

 

有用知识

macports默认安装到/opt/local下

安装、卸载、升级装软件

安装软件:普通用户下运行 sudo port install {包名}   ;或者先sudo su切换到root用户下直接执行port install {包名},下面皆省略sudo 。

卸载软件:port uninstall {包名}      (其中包名)

更新软件:port upgrade {包名}

全面升级:port upgrade outdated

全面升级前,通常需要对macport自身升级(port会提示你的):port selfupdate

关于port下包名:指定版本号时包名会带空格,这时不要用引号括起来(括起来反而不认,这与bash习惯很不同),示例  port info gettext @0.19.3_1

其他有用命令

查看帮助:port help {子命令名}        (例如:port help search)

列出当前安装过的包:port installed          (注意不要用 port list installed,原因)

列出可用包:port list          (即可以通过port install安装的包)

搜索包:port search {关键词}          (有很多参数,port help search查看或文档

查看软件包介绍: port info {包名}

查看依赖包:port deps apache2

清理安装包时的临时文件:port clean {包名}    (注意不是卸载,更多参考

升级软件包时带-u参数可以同步清理旧软件包 port -u upgrade outdated

清理MacPorts里的老旧包、无用文件等

使用过一段时间后,/opt/local会变得很大(可通过 du -sh /opt/local 查看占用大小),这主要“得益于”(归罪于)port更新包时保留旧版。定时清理一下好了。

  1. 清理编译文件等 port clean --all installed
  2. 清理老旧包 port uninstall inactive

事实上这并不能让 /opt/local 变小很多,因为里面还有很多下载的源码 /opt/local/var/macports/sources/release/ 可以进去手工清理一下

某商vps上编译php时报错“undefined reference to `libiconv_open'”的处理

帮朋友的阿里云的服务器装wordpress。该服务器上面已经装了有好几个站点,web环境是wdlinux的所谓一键安装脚本,向来极其厌恶这种所谓的一键脚本,版本老化,目录不合理,乱。但为了兼容现有环境,还是决定在它上面继续。无语的是,这个web配置实在乱透了,nginx作前端,把动态请求反代到后方apache上,这样配置一个web站点,要同时设置两套web。而且还是使用php 5.2.17,这个老掉牙的版本!搞了半天,真心不想搞下去了。于是决定新安装php新版本,以php-fpm运行,简洁优雅地在nginx上跑。

之前自己服务器上路的是php 7.0.9,直接下载这个版本源码,使用之前自己的configure参数,但在make时出错了,错误消息第一行非常长,核心就是iconv有问题

undefined reference to `libiconv_open'

尝试安装iconv-devel等办法都使用了,都不行。

经过google,也有别的朋友遇到同样问题,make时加参数即可,如下:

 make ZEND_EXTRA_LIBS='-liconv'

堪称完美,在所有解决方案里最简便,向该博客作者表示感谢。 继续阅读