2017-04-07 9 views
0

MacOS에서 rpm5.org에서 RPM 개발 패키지를 설치하려면 homebrew formula이 있어야합니다. 그러나 이것은 명령 행 도구 (rpm, rpmlint, rpmbuild 등) 만 설치하며 지원되는 언어 바인딩은 설치하지 않습니다.MacOS에서 RPM/RPM5 용 Python 언어 바인딩을 사용하려면 어떻게해야합니까?

파스칼 언어 바인딩을 사용하고 싶습니다. 그러나, 나는 그들을 구축하고 나는이 오류 얻을 파이썬 2.7에 rpm 패키지를 가져 오려고 할 때 :

$ python -c "import rpm._rpm"

Traceback (most recent call last):
File "", line 1, in File "/usr/local/lib/python2.7/venv-default/lib/python2.7/site-packages/rpm/init.py", line 7, in from _rpm import * ImportError: dlopen(/usr/local/lib/python2.7/venv-default/lib/python2.7/site-packages/rpm/_rpmmodule.so, 2): Symbol not found: _sqlite3_enable_load_extension Referenced from: /usr/local/Cellar/rpm/5.4.15_1/lib/librpmio-5.4.dylib Expected in: flat namespace in /usr/local/Cellar/rpm/5.4.15_1/lib/librpmio-5.4.dyl

파이썬 바인딩을 구축하기 위해 내가이 명령을 사용하여 사제와 rpm 패키지를 재설치를 :

brew install -v --keep-tmp --build-from-source rpm 2>&1 | tee brew_install.log 
cd /tmp/rpm-20170408-18245-1u8nsbs/rpm-5.4.15 
./configure --prefix=/usr/local/Cellar/rpm/5.4.15_1 --localstatedir=/usr/local/var --with-path-cfg=/usr/local/etc/rpm --with-path-magic=/usr/local/share/misc/magic --with-path-sources=/usr/local/var/lib/rpmbuild --with-libiconv-prefix=/usr --disable-openmp --disable-nls --disable-dependency-tracking --with-db=external --with-sqlite=external --with-file=external --with-popt=external --with-beecrypt=internal --with-libtasn1=external --with-neon=internal --with-uuid=external --with-pcre=internal --with-lua=internal --with-syck=internal --without-apidocs varprefix=/usr/local/var --with-python 
cd python 
make 
make install 

참고 ./configure 명령 브루은 첨부 --with-python 스위치로 사용되는 것과 동일이다.

어떻게 크로스 플랫폼 rpm5.org 기반 소스 코드를 사용하여 MacOS에서 파이썬 언어 개발을 할 수 있습니까?

+0

근처 rpmio/rpmsql.c를 참조하십시오. – pvg

답변

1

오류는 sqlite3 및 rpm이 brew와 함께 OS/X에서 빌드되는 방법에 따라 다릅니다.

_sqlite3_enable_load_extension 을 추가하도록 sqlite3을 빌드하거나 RPM을 패치하여 _sqlite3_enable_load_extension을 제거 할 수 있습니다. RPM을 패치하는 경우

, 나는 그것이 별도의 모든 분산 생각하지 않는 라인 2881.