2011-11-12 1 views
3

MacPorts는 내 시스템에 의존하여 "libiconv @ 1.14_0 + universal"을 설치했습니다. 이것은 32 비트 형식이기 때문에 Simon Listens라는 음성 인식 소프트웨어를 컴파일하려고 할 때 문제가 발생하기 시작했습니다. 그 맥 실제로 64-bit flavor of libiconv by default와 함께 제공되며 내 시스템에 상기 파일을 찾을 수 있었다 발견 인터넷 검색을하는 동안 :MacPort의 libiconv를 Mac의 기본 64 비트 버전으로 바꾸는 방법은 무엇입니까?

시스템 라이브러리, I이었다 생각할 수있는 가장 빠른 방법을 사용하기 위해서는
$ find /usr/lib -name libiconv* 
/usr/lib/libiconv.2.4.0.dylib 
/usr/lib/libiconv.2.dylib 
/usr/lib/libiconv.dylib 

MacPort의 libiconv 버전을 제거하여 시스템의 라이브러리가 PATH의 아래층 어딘가에 이미 존재하는 것처럼 폴백으로 선택되도록합니다. 때문에 dependecies에

하지만 그건 실패 :

$ sudo port uninstall libiconv @1.14_0+universal 
Unable to uninstall libiconv @1.14_0+universal, the following ports depend on it: 
... 

그래서 지금은 MacPort가 가리킨 내 시스템에 이미 라이브러리를 사용 종속성 그래프를 교체하는 방법을 알 수 있습니다 내 질문? MacPorts를에게 libiconv 문제를 방지하기 위해

답변

1

또 다른 방법은 신선한 MacPorts의 시스템 플러스 필요한 패키지 사용자 지정 위치에 같은 cyrus-sasl2, zlib, portaudiokdesdk4, 전자에 대해 simon을 구축하는 것입니다. 지. /opt/macports-simon.

# compile simon on Mac OS X 10.6.8 using MacPorts for the installation of zlib, portaudio and kdesdk4 
# http://www.simon-listens.org 
# http://sourceforge.net/projects/speech2text/ 

# get a root shell 
sudo -H -i 

# prevent idle sleep 
pmset -a force sleep 0 displaysleep 0 disksleep 0 

mv -i /opt/local /opt/local-off 
mv -i /usr/local /usr/local-off 

cd /tmp 
mkdir buildsimon || exit 1 
cd buildsimon || exit 1 

# create custom /opt/macports-simon to install zlib, portaudio and kdesdk4 
# cf. http://guide.macports.org/#installing.macports.source.multiple 
MP_PREFIX='/opt/macports-simon' 
unset PATH 
export PATH='/bin:/sbin:/usr/bin:/usr/sbin' 
curl -L -O https://distfiles.macports.org/MacPorts/MacPorts-2.0.4.tar.bz2 
tar -xjf MacPorts-2.0.4.tar.bz2 
cd MacPorts-2.0.4 || exit 1 
./configure --prefix="${MP_PREFIX}" --with-applications-dir="${MP_PREFIX}/Applications" 
make 
make install 

cd /tmp/buildsimon 

unset PATH 
export PATH="${MP_PREFIX}/bin:/bin:/sbin:/usr/bin:/usr/sbin" 

# get the Portfiles and update the system 
port -v selfupdate 

# install cyrus-sasl2 
port -f uninstall cyrus-sasl2 
port clean --all cyrus-sasl2 
port extract cyrus-sasl2 
cd "$(port dir cyrus-sasl2)"/work/cyrus-sasl-2.1.23 
printf '%s\n' H '/\(darwin\[15\]\)/s//\1./g' wq | sudo ed -s config/ltconfig 
printf '%s\n' H '/\(darwin\[15\]\)/s//\1./g' wq | sudo ed -s saslauthd/config/ltconfig 
cd /tmp/buildsimon 
port -f -s install cyrus-sasl2 
otool -L /opt/macports-simon/lib/libsasl2.dylib 

port -f install zlib 
port -f install portaudio 
port -f install kdesdk4 

port installed zlib portaudio kdesdk4 cyrus-sasl2 

# enable dbus with launchd 
# http://www.freedesktop.org/wiki/Software/dbus 
# open -e dbus-1.5.8/README.launchd 
launchctl load -w /Library/LaunchDaemons/org.freedesktop.dbus-system.plist 
launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist 
sudo -u _mysql mysql_install_db5 
sudo port load mysql5-server 

# todo: how to configure simon to use /opt/macports-simon directly? 
ln -isv "${MP_PREFIX}" /usr/local 

cd /tmp/buildsimon 

# http://sourceforge.net/projects/speech2text/ 
curl -L -O http://netcologne.dl.sourceforge.net/project/speech2text/simon/0.3.0/simon-0.3.0.tar.bz2 
tar -xjf simon-0.3.0.tar.bz2 
cd simon-0.3.0 || exit 1 

# Note that /usr/local got symlinked to "${MP_PREFIX}" above! 
unset PATH 
export PATH='/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin' 


# the following commands are taken from simon-0.3.0/build.sh 

mkdir build 2> /dev/null 
cd build || exit 1 
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .. 

# append ${MP_PREFIX}/lib/libiconv.dylib to gcc command in link.txt file 
printf '%s\n' H '/\/usr\/bin\/gcc/s|\(.*\)|\1 '"${MP_PREFIX}"'/lib/libiconv.dylib|' wq | 
    ed -s julius/julius/CMakeFiles/juliusexe.dir/link.txt 

# replace gcc option ' -bundle ' with ' -dynamiclib ' 
egrep -Ilsr -Z -e ' -bundle ' . | 
    xargs -0 -n 1 /bin/sh -c 'printf "%s\n" H "g/ -bundle /s// -dynamiclib /g" wq | /bin/ed -s "${1}"' argv0 

make 

touch ./julius/gramtools/mkdfa/mkfa-1.44-flex/* 
make 
make install 
# ldconfig # not needed on Mac OS X 
kbuildsycoca4 
echo -e "**** Build completed ****\n\nThe executable file \"simon\" is now ready and has been installed.\n\nIssue \"simon\" to start it." 

unset PATH 
export PATH="${MP_PREFIX}/bin:/bin:/sbin:/usr/bin:/usr/sbin" 

otool -L "${MP_PREFIX}/bin/simon" 

simon 

mv -i /opt/local-off /opt/local 
mv -i /usr/local-off /usr/local 
:

다음 코드는 맥 OS X 10.6.8를 실행 내 컴퓨터에서 나를 위해 일한