Macports 解决某些包同时依赖不同版本库的办法

问题很奇葩:

最初是想在 CLISP 上用 portableaserve,于是用 quicklisp 安装

(ql:quickload :aserve)

结果出现各种问题,包括修改代码什么的,具体内容如下:

执行 [8]> (ql:quickload :aserve) To load "aserve": Install 5 Quicklisp releases: cl-ppcre ironclad nibbles portableaserve puri ; Fetching #<URL "http://beta.quicklisp.org/archive/puri/2010-10-06/puri-20101006-git.tgz"> ; 33.99KB

34,803 bytes in 0.10 seconds (323.79KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/archive/nibbles/2013-03-12/nibbles-20130312-git.tgz"> ; 20.58KB

21,075 bytes in 0.19 seconds (110.67KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/archive/ironclad/2013-01-28/ironclad_0.32.1.tgz"> ; 504.70KB

516,817 bytes in 2.40 seconds (210.39KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/archive/cl-ppcre/2013-04-20/cl-ppcre-2.0.4.tgz"> ; 154.37KB

158,070 bytes in 1.34 seconds (114.81KB/sec) ; Fetching #<URL "http://beta.quicklisp.org/archive/portableaserve/2013-04-20/portableaserve-20130420-git.tgz"> ; 579.26KB

593,163 bytes in 163.05 seconds (3.55KB/sec) ; Loading "aserve" [package nibbles]................................. [package ironclad]................................ .................................................. [package cl-ppcre]................................ [package puri].................................... [package acl-compat.excl]......................... [package acl-compat.mp]........................... [package de.dataheaven.chunked-stream-mixin]...... [package acl-compat.socket]....................... [package acl-compat.system]....................... [package gray-stream]............................. [package net.html.generator]...................... [package net.aserve].............................. [package net.aserve.client] *** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"/Users/admin/LispBox-0.93/dists/quicklisp/software/portableaserve-20130420-git/aserve/main.cl" @218> : there is no package with name "UNIX" The following restarts are available: RETRY :R1 Retry compiling #<LEGACY-ACL-SOURCE-FILE "aserve" "main">. ACCEPT :R2 Continue, treating compiling #<LEGACY-ACL-SOURCE-FILE "aserve" "main"> as having been successful. ABORT :R3 Give up on "aserve" ABORT :R4 Abort main loop Break 1 NET.ASERVE[9]>

打开 /Users/admin/LispBox-0.93/dists/quicklisp/software/portableaserve-20130420-git/aserve/main.cl

原语句为:

#+(and clisp unix) (defun getpid () (unix:getpid))

修改为:

#+(and clisp unix) (defun getpid () (getpid))

不过修改后再次加载出现了符号重复冲突,于是一时不慎就把 .cache 里 dist 下的 portableaserve 目录扔到废纸篓,然后直接删除了,于是就各种杯具,再也不能用 quicklisp,每次都提示 .Trash 找不到文件。。。

更大的杯具即将发生,于是干脆用 macport 卸载掉了 CLISP,打算重装,却没想到当初的 CLISP 是在 OSX 10.7 下编译安装的,现在系统升级到了 10.9,其中有一个依赖包 llvm-3.0 不再被 支持了。

搜索半天终于找到一篇解决这个的办法(),就是把对 llvm-3.0 的依赖更新到 llvm-3.3,于是一些包就存在两种依赖,比如 cctools 和 ld64,现在进行到删除他们对 llvm-3.0 的依赖,如下:

<!-- lang: shell -->
Air:~ admin$ sudo port -v uninstall cctools

---> The following versions of cctools are currently installed: ---> cctools @822_2+llvm30 ---> cctools @855_1+llvm33+universal (active) Error: port uninstall failed: Registry error: Please specify the full version as recorded in the port registry. Air:~ admin$ sudo port -v uninstall cctools @822_2+llvm30 ---> Uninstalling cctools @822_2+llvm30 ---> Cleaning cctools ---> Removing work directory for cctools Air:~ admin$ sudo port -v uninstall ld64 ---> The following versions of ld64 are currently installed: ---> ld64 @128.2_4+llvm30 ---> ld64 @236.3_1+llvm33+universal (active) Error: port uninstall failed: Registry error: Please specify the full version as recorded in the port registry. Air:~ admin$ sudo port -v uninstall ld64 @128.2_4+llvm30 ---> Uninstalling ld64 @128.2_4+llvm30 ---> Cleaning ld64 ---> Removing work directory for ld64 Air:~ admin$

卸载掉 llvm-3.0

Air:~ admin$ sudo port -v uninstall llvm-3.0 ---> Deactivating llvm-3.0 @3.0_5 ---> Cleaning llvm-3.0 ---> Removing work directory for llvm-3.0 ---> Uninstalling llvm-3.0 @3.0_5 ---> Cleaning llvm-3.0 ---> Removing work directory for llvm-3.0 Air:~ admin$

后续进展继续更新。。。

结果发展到所有的包都无法安装,每次都因为无法 upgrade dbus 而停止,尝试了各种办法,搜索了N多人的经验,最后觉得没希望了,就安装了一个 homebrew,于是轻松地把 CLISP 安装好了。

接着回头继续考虑 macport 和 dbus 的问题,结果是无解,于是注册了一个 macports 站点的用户,准备去提交一个问题报告,提交之前先浏览一下关于 dbus 的问题单,结果还真发现一个比较接近的,于是仔细看了看,发现讨论来讨论去都没找到问题根源,最终的解决办法是把 macports 的安装好的目录全部改名(那几个哥们儿讨论了很多,也试过各种定位,https://trac.macports.org/ticket/43947 ),然后重新安装 macports,看来我也不必提什么单了,直接重装好了:

Air:opt admin$ sudo mv /opt/local ~/macports
Password:
Air:opt admin$            

然后从 macports 网站下载了最新的 2.3.1 的 dmg,看看后续如何

转载于:https://my.oschina.net/freeblues/blog/290133

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值