常见疑问(F.A.Q.) - 7. 编译问题-特定软件包
Q7.1: 一个软件包构建失败,错误和 sed
有关。
A: 如果你的登录脚本(例如 ~/.cshrc
)向终端输出了些信息,比如 "echo Hello
" 或 xttitle
,可能会导致这个错误。要消除这个问题,最简单的办法是注释掉这些行。
如果你想保留这些回显信息,你可以这样做:
if ( $?prompt) then echo Hello endif
Q7.2: 我想改用 Fink 的 XFree86 软件包,但我不能安装 xfree86-base
或 xfree86
,因为它和 system-xfree86
冲突。
A: 很不幸,各种 X11 都不可避免地要安装在 /usr/X11R6 中。因此 Fink 的 xfree86-base
和 xfree86-rootless
软件包也需要安装在那里。不过,由于 Fink 不会删除任何没有在它数据库里面的文件,它不会自动替换非 Fink 安装的 X11。
下面是应该怎么做:
注意:安装了新版(0.16.2 或更新)Fink 的 10.2.x 用户和 10.3.x 的用户应该跳过下面的步骤 1(事实上,他们也做不了步骤 1)。
1. 删除 system-xfree86
。如果你暂时还没有依赖于 X11 的软件包,这很简单。但通常情况是,已经安装了需要依赖于 X11 的软件包。如果不想全部删除他们,你可以使用:
sudo dpkg --remove --force-depends system-xfree86
来进行删除,而保持其它软件包仍然存在。如果你没有安装 system-xfree86
,那么跳到步骤 3。
2. 手工删除所有 XFree86。可以这么做:
sudo rm -rf /Applications/XDarwin.app /usr/X11R6 /etc/X11
如果你正在使用的是苹果的 X11,同时也删除 X11 程序。
3. 要获取 XFree86-4.2.1,用通常的办法安装 Fink 的 xfree86-base
和 xfree86-rootless
软件包:对使用源代码安装的用户 "fink install
";对二进制安装的用户 "apt-get install
" 或 dselect
。
或
3a. 要获取 XFree86-4.3.x 或更高版本,使用 "fink install xfree86" 安装 Fink 的 xfree86
软件包,最新版本(2004年5月25日的 XFree86-4.4.x 版本)目前还没有二进制安装版发布,而且仅有未稳定的版本[参阅 how to install unstable package]。
Q7.3: 怎么把 Fink 的 XFree86 从非线程化的版本改为线程化的版本(或相反)?
A: 如果你正在使用 Fink 版本的 XFree86,并且你希望在线程化或非线程化的版本之间转换,你需要手工删除旧的版本,你可以用下面的命令行命令实现:
sudo dpkg -r --force-depends xfree86-base sudo dpkg -r --force-depends xfree86-shlibs sudo dpkg -r --force-depends xfree86-rootless sudo dpkg -r --force-depends xfree86-rootless-shlibs
或者删除线程化的版本:
sudo dpkg -r --force-depends xfree86-base-threaded sudo dpkg -r --force-depends xfree86-shlibs-threaded sudo dpkg -r --force-depends xfree86-rootless-threaded sudo dpkg -r --force-depends xfree86-rootless-threaded-shlibs
FinkCommander 也可以删除软件包。在源代码版本窗口,选择一个软件包,然后在 Source Menu
使用 "Force Remove
"。
如果你正在使用 system-xfree86,查看前面关于删除它的问题。
安装你需要的 xfree86 版本:
xfree86-base
和 xfree86-rootless
xfree86-base-threaded
和 xfree86-rootless-threaded
你可以使用通常的办法:对源代码安装用户 "fink install
";对二进制安装用户 "apt-get install
" or dselect
。
Q7.4: "当我安装 KDE 的时候,我碰到下面的信息:'Can't resolve dependency "cctools (>= 446-1)"'
A: 这个晦涩的消息表明你需要安装 December 2002 开发工具。
Q7.5: I can't update libiconv
.
A: If you get errors of the form:
libtool: link: cannot find the library `/opt/sw/lib/libiconv.la'
you can solve this problem by running
fink remove gettext-dev fink install libiconv
Q7.6: i can't install a package because c++filt
is missing. Where do I get it?
A: If you get errors of the form
xgcc: installation problem, cannot exec `c++filt': No such file or directory
since updating to Tiger, then you need to do the following:
- Reinstall
BSD.pkg
(from your installation media). If/usr/bin/c++filt
doesn't appear, keep trying.
You also might also need to make sure you don't have any ancient Developer/Xcode Tools stuff laying around:
- 10.4: Flush out your old Xcode Tools versions via running
/Developer/Tools/uninstall-devtools.pl
in a terminal. Then (re)install XCode (2.4.1 or later). - 10.5: Flush out your old Xcode Tools versions via running
/Developer/Library/uninstall-devtools
in a terminal. Then (re)install Xcode (3.0 or later).
1) Flush out your old 2) Reinstall BSD.pkg (from your main OS install)
Q7.7: Fink refuses to update the gettext
package,
complaining that the dependencies are in an inconsistent state.
A: After running fink selfupdate
to be sure you
have the latest versions, try fink update gettext-tools
.
An old version of the gettext-tools
package may be
preventing you from updating gettext
.
Q7.8: I can't install gtk+2 on OS 10.5
A: Typically this involves missing libraries, such as: /usr/X11/lib/libXrandr.2.0.0.dylib
or
/usr/X11/lib/libXdamage.1.1.0.dylib
(or other versions of libraries in
/usr/X11/lib/
).
The current wisdom on the best fix for such an issue is to install Xcode 3.1.3 or later.
Q7.9: I'm having issues with a package that isn't listed here.
A: Since package problems tend to be transient, we've decided to put them up on the Fink wiki. Check the Package issues page.
Next: 8. 一般性软件包使用问题