solved : 허접한 초보지만 질문 드립니다! (리눅스에 오픈소스 라이브러리 설치 관련)

asurada92의 이미지

안녕하세요,.. 초보 개발자 입니다.

리눅스 서버 관련해서 고수분들께 여쭤보고 싶은게 있는데요...

외부에서 libxl 이라는 c++ 라이브러리를 받아서 사용해야 하는 상황인데,

make install을 통해 라이브러리를 설치하려면 /bin 에 mkdir 을 하는 스크립트 문이 있더라구요,, 여기에서 항상 sudo 권한이 없어서 막힙니다...

회사 서버이다 보니, 제가 수도 권한을 얻어서 작업할 수도 없고, 아직 신입이라 IT 지원팀 분들에게 계속 이것 저것 설치해달라고 하기가 조금 눈치가 보입니다...(ㅜㅜ)

이전 대학원생때, 연구실 서버에서 전체 계정이 사용하는것이 아니라 본인계정에 라이브러리등을 설치해서 썼던 적이 있었던 것 같은데,

/bin 위치와 같이 상단 디렉토리에 접근하지 않고 제 디렉토리 하단 경로에 라이브러리를 설치해서 사용할 수 있는 방법은 없나요! ? ㅠㅠ 고수님들 답변 부탁드립니다.!

ymir의 이미지

libxl 은 안써봐서 모르겠지만..
./configure 가 있다면 --prefix=$HOME/local 과 같이 --prefix 옵션으로 install 될 위치를 정할 수 있습니다.
./configure 가 없으면 그냥 빌드한 상태에서 -I -L 옵션만 잘 지정해 주면 로컬에서도 그냥 실행할 수 있습니다.

$ cd libxl-x.y/
$ ./configure --prefix=$HOME/local
$ make
$ make install
 
$ cd your_src_dir/
$ gcc -g -W -Wall -I$HOME/local/include -L $HOME/local/lib -o a.out a.c -lxl
$ LD_LIBRARY_PATH=$HOME/local/lib ./a.out

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

asurada92의 이미지

--prefix 로컬 로 하니까 되네요!,
ㅎㅎ 하나 알아갑니다!,
그리고 저같이 초보분들이 이 글을 보실 수도 있을 것 같아서 제가 이해하고 된 방식을 말씀 드리면,
이런식으로 라이브러리를 설치하고, library file (.so, .a)등의 파일이 나오면 컴파일 하실때 위의 분이 말씀 해 주신 것처럼, -L 옵션으로 라이브러리 위치 잡아주시고요, LD_LIBRARY_PATH 환경 변수에 헤더 파일들 위치 잡아 주시고, -I를 통해서 컴파일 할때 헤더 위치 넣어주심 됩니다!

swish95의 이미지

그렇게 하라고 prefix 옵션이 있죠
linux 는 항상 사용자 관점에서도 사용할수 있어야 하니까요

------------------------------------------------------------
ProgrammingHolic

세벌의 이미지

아직 신입이라 IT 지원팀 분들에게 계속 이것 저것 설치해달라고 하기가 조금 눈치가 보입니다...(ㅜㅜ)
님께서 취미로 하는 게 아니고, 회사 일 때문이라면 눈치 보일 일이 없을 거 같은데요?
김정균의 이미지

libxl 이 https://www.libxl.com/ 에서 배포하는 것인가요?
여기서 배포하는 archive는 library bianry 파일과 header 파일이라서 굳이 install 을 할 필요도 없을듯 싶고요. 그리고 mkdir 을 하는 install script 도 없네요.

그리고 단순히 library 파일을 가지고 개발을 해야 하는 문제라면, 굳이 root 권한이 필요한 영역에 있을 필요는 없습니다. 가능한 곳에 위치를 시키고 rpath 를 지정해서 library 를 link 시키는 것을 권장 드립니다. 또는 실행 시에 LD_LIBRARY_PATH 를 이용해서 임의의 library 위치를 참조하도록 할 수도 있습니다.

asurada92의 이미지

정확히 말씀 드리면, libxl 이 아니고, libxls 더라구요!, libxls는 github에 올라와 있는 라이브러리 입니다.
근데 이 지점에서 질문이 하나 있는데요, https://www.libxl.com/ 에서 배포 하는 것처럼 binary library 파일만을 배포 해도 괜찮은 건가요!?, pc 환경에 따라 컴파일 되었을때 바이너리가 다르게 될 것같은데, 저런식으로 배포 해도 괜찮은 건지가 궁금합니다.

swish95의 이미지

바이너리로 배포하려면
해당 시스템과 호환성 검사를 해야합니다.
rpm 패키지가 배포판별로 버젼별로 따로 있는 이유입니다.

------------------------------------------------------------
ProgrammingHolic

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.