리눅스의 모든 shared object 리스트를 만들려면??

tyolee83의 이미지

배포판에 관계없이

.so 파일들의 리스트를 만들어야 할 상황인데요...

/lib 과 /usr/lib을 하위 디렉토리까지 뒤지면 될것 같다는 생각은 드는데...

혹시 다른곳에도 .so 파일이 존재하기도 하나요??

(사용자가 만든것은 제외)

그리고 이걸 스크립트로 짜야할 것 같은데

스크립트는 다뤄본적이 없어서 어떻게 해야 할지 모르겠네요...

도움좀 부탁드립니다.

monovision의 이미지

#!/bin/sh
ls -alR /lib/*.so > so_list.txt
ls -alR /usr/lib/*.so >>so_list.txt

이정도면 안될려나요 ? ㅡ.ㅡ;;;

tyolee83의 이미지

/lib과 /usr/lib 말고 다른데를 뒤질 필요는 없는건가요??

//TODO

shyblue의 이미지

# cd /
# find . -name "*.so" > so_list.txt
가 더 나을듯 보이는군요.

하지만, 정말 로드된(캐쉬된) 시스템의 공유 라이브러리를 알고 싶으시면
# ldconfig -p
이걸로도 충분하지 싶습니다.

時日也放聲大哭

時日也放聲大哭

tyolee83의 이미지

파일이 많은 시스템이라면

find의 시간이 너무 오래 걸리지는 않을까요??

//TODO

shyblue의 이미지

find는 첫 답글이 얘기한 ls와 질문글에서 얘기한 의외의 곳에서 사용된 오브젝트에 대한 요구사항을 다 포함한 사용법일 뿐입니다.

실제 시스템에서 인식되는 공용 동적 라이브러리(so file)은

ldconfig -p
이 명령어 하나로 사실은 다 만족되는 겁니다.

결과적으로, 시스템에서 로드되는 동적 라이브러리의 path는 /etc/ld.conf 에 의해 정의되고, 정의된 path에 존재하는 라이브러리는 위 명령어에 의해 전부 추출됩니다.

find 예시는 결국 첫답글에 대한 부족분을 얘기할 뿐이고, 시스템 상의 공유 오브젝트에 대한 답은 ldconfig -p 라는 얘기죠.
時日也放聲大哭

時日也放聲大哭

M.W.Park의 이미지

locate db가 생성되어있다는 가정하에...

$ locate *.so

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

tyolee83의 이미지

위에 있는 방법대로 하면

예를들어

libstdc++.so.6와
libstdc++.so.5를

구분할 수 있는 방법이 없네요...

이 둘은 구분되어야 하는 라이브러리 인데...

so.? 이렇게 주면

그냥 .so로 끝나는 파일들이 안걸리고...

간단할거라고 생각했는데 생각보다 어렵네요;;

도움 부탁드립니다.

//TODO

shyblue의 이미지

예시를 들겠습니다.
시스템에 libncurses.so.6이 있고, libncusses.so.5가 있다고 할때
# gcc -o test test.c -lncurses
라고 한다면 어떻게 될까요?

답은, libncurses.so가 어떤 파일에 심볼릭 링크되어 있냐 라는 겁니다.
대체적으로 하위 호환성을 유지하게 때문에, 시스템상에 있는 라이브러리의 so.?가 중요한게 아니라 .so가 결과라는것을 알 수 있습니다.

정말, 원하는 답이 무엇인가... 라는게 중요하죠.
시스템이 결과적으로 로드하고 있는 공유 라이브러리인가? 아니면, 설치되어 있는(참조조차 되지 않는 라이브러리까지 포함하는) 모든 라이브러리를 찾고자 하는 것인가? 하는 것이죠.

時日也放聲大哭

時日也放聲大哭

tyolee83의 이미지

제가 사용하려는 목적이

ldconfig -p

의 결과와 딱 맞아 떨어지네요.

답변 감사드립니다 :)

//TODO

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.