2014-09-23 2 views
0

로컬 시스템에 대한 공유 .so 파일을 다운로드해야하는 Julia 패키지를 만들었습니다. BinDeps를 사용하여 자동 설치를 시도하고 있습니다.Julia : 종속성 설치를위한 간단한 BinDeps build.jl

불행히도 다른 패키지에서 찾은 대부분의 예제는 기본 제공 패키지 관리자를 사용하여 종속성 (apt, yum 등)을 설치합니다. 특정 웹 링크에서 특정 .so 파일을 가져 와서 설치해야합니다.

우분투에서이 간단한 종속성을 설치하려면 build.jl을 어떻게 설정해야합니까?

이 나는 ​​시도했다 :

using BinDeps 
@BinDeps.setup 
libsmilejl = library_dependency("smilejl", aliases=["libsmilejl", "libsmilejl.so"], os=:Unix) 
provides(Binaries, URI("http://dl.bintray.com/tawheeler/generic/libsmilejl.so/libsmilejl.so"), libsmilejl, os = :Unix) 
@BinDeps.install 

는 "선택된 공급자 중에 종속 smilejl를 설치할 수 없습니다"의 스크립트 결과를 실행합니다.

원본을 사용하여 바이너리를 스와핑하려했지만 동일한 결과가 나타납니다. 나는 우분투 14.04 x64를 사용하고있다.

감사합니다

답변

1

나는 리눅스에서 테스트 할 수 없지만, OSX에이 일 (또는 적어도 deps.jl을 생성하고 오류가 발생하지 않았다) :

using BinDeps 

@BinDeps.setup 

libsmilejl = library_dependency("libsmilejl.so", os=:OSX) 

provides(Binaries, 
    URI("http://dl.bintray.com/tawheeler/generic/libsmilejl.so/libsmilejl.so"), 
    libsmilejl, os = :OSX) 

@BinDeps.install [:libsmilejl => :libsm] 

당신은 더 많은 도움을 얻을 수 있습니다를 BinDeps.jl에서 문제를 여는 경우

+0

감사합니다. 필자는 같은 목적을 다음과 같이 실행하려고 시도했다 : OSX 대신 유닉스를 사용했고 같은 오류가 발생했다. ': libsmilejl => : libsm'은 무엇을합니까? – Mageek

+0

모듈에 포함시킨'deps.jl' 파일을 생성 할 때, 라이브러리의 별명을 만듭니다. 그래서'libsmilejl' 대신에'libsm'이라고 부를 수 있습니다. – IainDunning

+0

감사합니다. download()를 사용하여 파일을 로컬 폴더로 가져오고 해당 폴더를 경로에 추가해 볼 수도 있습니다. 합리적인 일처럼 보입니까? 나는 sudo 권한을 얻는 방법을 모르기 때문에 usr/lib로 옮기는 데 문제가있다. – Mageek