linux에는 dll이 없나요?
글쓴이: 호랑이 / 작성시간: 화, 2004/06/29 - 5:23오후
음.. 제목이 재미있지요?
리눅스에도 동적 링크드 라이브러리가 있는 것으로 알고 있습니다.
어떻게 사용하는지는 모르고 있습니다만요.
그런데 궁금한 것이 있다면 어째서 사용하지 않는건가요?
사용하는 곳도 있으리라고 생각이 들긴 합니다.
제가 windows에 apm을 설치할 때 linux에 설치하는 것보다 훨씬 간편함을 느낌니다.
linux에서는 설치 순서도 있고 컴파일을 하자니 시간도 오래걸리고 매우 불편합니다.
특히 프로그램들이 서로 종속성이 물리고 물릴 때에는 너무나도 싫어집니다.
뭐.. 이걸 보고 '그럼 windows나 쓰세요'라고 말할지도 모르겠군요.
전 그저 어째서 그래야 하는지 궁금할 따름입니다.
어째서 그렇죠? 왜 windows 에서와 같이 동적 링크드 라이브러리를 쓰지 않는거죠?
컴파일이야 워낙 다양한 플랫폼이 존재하니 그렇다고 쳐도 dll이나 com과 같은 환경을 쓰지 않는 이유는 궁금합니다.
기술적인 문제인지 호환성을 위한 것인지 궁금합니다.
Forums:
음....
kldp 메인페이지, 검색란에서 라이브러리 입력하시면
HOWTO문서가 나옵니다. *^^*
H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!
Re: linux에는 dll이 없나요?
리눅스에서는 dll 은 없습니다만.. 비슷한 (?) so라는게 있습니다..
근데 뭔가 잘못 알고 계시는군요..
그런 shared link 된.. 것들 때문에.. 의존성이 발생하고 설치에 순서가 생기고
복잡해지고 하는겁니다..
그리고... 더욱 문제는.. 초보자를 위한 HOW-TO라는 이름이 붙은 문서들에서..
해당하는 배포판 등에서 제공하는.. 패키지등을 사용하지 않고..
소스를 가져다가 빌드하는 법만을 설명하고들 있기 때문에
더욱 문제가 되는게 아닐까 싶습니다..
레드햇이시면.. (rhn에 등록이 모두 끝났다는 전제하에 )
식으로 하면.. 알아서.. 연관된것들이 주루룩 설치될거고..
페도라시라면..
뭐 이렇게 하면 될거구요..
젠투라면
정도면 되겠군요..
이런 간단한 방법들을 놔두고..
왜? 라는 질문하나 던지지 않고.. 소스만 가져다 빌드하니 더 힘들게 느껴지는게
아닐까 싶습니다..
(뭐 꼭 필요한게 있는데.. 빠져있다면 할 말 없지만.. 윈도우용도 그런건 마찬가질거라 생각합니다 -_-);;
비슷한 예로.. 윈도우용 mp3 ripper중에.. cdex라든가.. 그런 것들이 있습니다..
sf.net 등에서 찾아보셨음 알겠지만.. 오픈소스로 나와있는 것이며..
대부분의 오픈소스로 나온 mp3 ripper들은.. 다.. lame을 사용합니다만..
리눅스용 mp3 ripper를 설치할때는.. 뭐 이거저거 의존성이 걸리는데..
윈도우용은 그런게 없습니다..
그게.. dll 을 써서 그런게 아니라..
lame을.. 아예 자기네가 들구 다니기 때문에 그런겁니다..
다른 것들도 대부분 그런거죠 ;)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
... 도대체 무슨 소리이신지 -_-DLL 때문에 의존성 문제가
... 도대체 무슨 소리이신지 -_-
DLL 때문에 의존성 문제가 생기는 겁니다.
그리고 APM 설치하는데 왜 컴파일을 하나요?
--feanor
잔잔한 수면에 파문을 일으키는 질문이네요...^^ <어떠한
잔잔한 수면에 파문을 일으키는 질문이네요...^^
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
추신_내일은 월차~~~
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
음...
아마 웹싸이트에서 APM설치하는 강좌를 보셨을 가능성이 조금 있다고
생각합니다. 실제로 몇몇분들은 APM설치할 때, 꼭! 소스로 설치해야
뭐가 어쩐다나 하며 말도안되는 소릴 하시죠. 쩝~
또한 검색해봐도 소스로 설치하는 방법이 많이 검색되긴 합니다. 설치하는
방법이 너무 쉬워서 안나오는 것일수도 있는데... ㅡ,.ㅡ;
H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!
Re: linux에는 dll이 없나요?
APM 셋팅을 윈도우에서 하듯이 쉽게 하고 싶다면,
APM 의 바이너리 릴리즈를 설치하면 되겠네요.
소스를 컴파일 해서 설치하는 것은 설치 방법중에 하나지,
꼭 그렇게 설치해야 하는건 아니랍니다.
그나저나...
'동적 링크드 라이브러리' 를 쓰기 때문에 종속성에 문제가 없다 라는 소리는 재미있군요.
(그렇게 생각할 수 있다는 자체가 재미있는 상황일 뿐이네요)
정 궁금하시면, 윈도우의 DLL 과 Unix 환경의 Shared Object 에 대해서
공부해 보세요. 그리고 .NET 과 기존 환경에서의 컴포넌트 관리의 차이점에
대해서도 추가로 알아보시면 그러한 현상의 원인에 대해서
대강 파악할수 있겠네요.
사실 개발자가 아니라면 윈도우즈에서의 dll hell에 대해서 피부로 느
사실 개발자가 아니라면 윈도우즈에서의 dll hell에 대해서 피부로 느끼지 못할 수 있지요. :wink:
답변 하신 분들 너무 예민한거 아니세요? ^^전 간만에 웃을수 있
답변 하신 분들 너무 예민한거 아니세요? ^^
전 간만에 웃을수 있었는데..
질문이 귀엽지 않나요?
(뭐 왕초보인 저로서도 그렇다는 말씀...^^)
제가 사용중인 시스템에서 제가 컴파일해서 쓰는 프로그램은 딱 셋이군요.
제가 사용중인 시스템에서 제가 컴파일해서 쓰는 프로그램은 딱 셋이군요.
1. hpscat
2. tin
3. vmlinuz ;)
debian woody(+some backports) 사용중입니다.
윈도용 바이너리없이 소스만 있다면 어려움 없이 깔 사람이 몇이나 될라나.
윈도용 바이너리없이 소스만 있다면 어려움 없이 깔 사람이 몇이나 될라나...
거의 예상했던 답변들이군요 - _-;;;
저는 인터넷에 질문을 올릴 때 상당히 조심스러운 편입니다.
특히나 이쪽~ 그러니까 linux쪽이라고 해야 할까나?
뭐~ 이런 글을 남긴다고 해서 얻을 이득은 없지만 그냥 지나치기 싫어서 다시 글을 남깁니다.
아쉽게도 제 질문이 나빠서 그런지 만족할 만한 답변은 없군요.
질문이 허접했기 때문이라고 생각합니다.
제가 바라는 것이 있다면 답변을 친절하게 달아주시면 좋겠습니다.
그러한 의도가 있었는지 모르겠지만 리눅스쪽 커뮤니티에 답변을 보면
자신히 알고있는 것을 모르는 상대를 무시하는 경향이 있습니다.
상대가 초보일꺼라고 단정 짓는다던지 찾아보지 않고 질문을 했을거라 생각한다 던지 말이죠.
이 답변을 보시고 또 기분상해 하실 분들이 계실까 걱정이 됩니다.
물론 대대수의 분들은 친절하다는 것 또한 잘 알고 있습니다.
암튼 바이너리 설치로 잘 된다니 모르고 있던 사실이네요.
언제나 설치 문서를 따라하기만 했더니 아는게 없군요 ^^;;
답변해 주신 분들에게 감사드립니다.
답변도 달지 않는 주제에 질문하고 투정이나 부리는듯 하여 죄송합니다.
온라인이라도 언제나 상대를 생각해 주면 좋겠습니다.
그럼 이만~
Re: 거의 예상했던 답변들이군요 - _-;;;
음...
rpm이 있죠.바이너리용으로는...
문서가 2000년 전의 것들이 많아서 최근의 경향을 반영 못하는것들도 있기는 하지만,기본적인 내용들을 많이 담고 있습니다.
물론 대부분이 소스 컴파일 과정을 담은것이긴 하지만.....
질문을 할때는 조금 정확하 해주셨으면 합니다.
저 역시도 같은 문제로(질문하는법)조심스럽긴 하지만
바라는것이 있는데 엉뚱한 질문을 하면 답변 달아주시는 분들도
어리둥절하시죠.
oops.org(일겁니다. 아마... :) )나 혹은 이곳 wiki에 김정균님께서 작성하셨던 질문하는법이란 글을 보셨을겁니다.
저도 올해만 벌써 4번째 읽어본 문서인데 다시한번더 읽어보시길 권해드리고 싶습니다. :)
봄들판에서다
Re: 거의 예상했던 답변들이군요 - _-;;;
나름대로 생각해서 장문의 답을 달았었는데-_-;;
한순간 무의미한 짓이 되버리는 순간이군요..
...
:roll:
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
Re: 거의 예상했던 답변들이군요 - _-;;;
흡흡..... 안되셨습니다 ㅋㅋ
동적 링크 라이브러리 물론 존재도 하구 사용도 합니다
com 기술도 존재합니다(같진 않지만 비슷합니다)
그런데 왜 더블클릭으로 설치가 안될까요? (더블클릭을 M$가 특허냈다구 합니다)
개발자들은 물론 사용자들을 최대한 고려합니다.
하지만 사용자들에게 소프트웨어를 많이 파는게 그들의 전부가 아닙니다
그게 차이이죠...
사실입니다.
그런 질문에 대해 정성스런 답변을 달아주시는 분들이 전 존경스럽습니다
-- 아쉬운 하루 되세요 --
Re: 거의 예상했던 답변들이군요 - _-;;;
답변은 잘 보았습니다.
제가 궁금했던 점은 어떻게 설치하느냐가 아니라 어째서 그렇게 해야하는가 였습니다.
예를 들어보자면 php에서 mysql을 사용할 경우 mysql을 먼저 설치해야 하는 것으로 알고 있습니다.
제가 잘 못 알고있는 것인가요?
dll과 같은 so를 이용할 경우 mysql이 설치되어 있을 필요가 없다고 생각합니다.
필요할 경우 mysql을 설치하면 되겠지요?
so파일을 이용하는 예제를 작성하여 봤는데 윈도우 dll과 같은 방식으로 작동되는 것을 확인하였습니다.
프로젝트 들이 이러한 방법을 사용하고 있는지 궁금했던 것입니다.
제가 얻고자 했던 답변을 얻지 못한 이유는 질문을 잘 못 했기 때문이라고 생각합니다.
답변해 주셔서 감사합니다. :P
Re: 거의 예상했던 답변들이군요 - _-;;;
필요한 dll이 깔려있지 않는데도 설치되는 윈도즈 프로그램이 있나요 :shock:
배포판에서 php를 깔기 위헤서 mysql이 필요하다면 mysql이 먼저 깔립니다. 최근 배포판들은 자동으로 php만 깔아도 mysql을 함께 깔아주죠.
"dll 기법"을 적극적으로 활용하는 경우는 아파치의 각종 모듈을 들 수 있겠군요. 아파치의 모듈들은 아파치 설치 후에 추가로 깔 수 있고, 함께 잘 동작합니다. 예컨데 https 접속이 필요하다면 debian에서는 libapache-mod-ssl만 추가로 깔고 적당히 httpd.conf의 설정을 변경해주면 됩니다.
Re: 거의 예상했던 답변들이군요 - _-;;;
인스톨러의 차이입니다..
물론.. rpm 과 같은 바이너리의 경우엔.. rpm명령어 등을 통해서 설치할때..
의존성을 검사해서.. 필요한게 없다고 에러를 보여주는 것일 뿐..
꼭 뭐가 먼저 설치되어 있어야 하는건 아닙니다..
(--no-deps같은 옵션으로 그냥 무시하고 설치도 가능합니다..)
mysql client 와 관련된.. dll 이라던가.. (shared link되었다면..) 이런게 없으면..
php에.. mysql support 는.. 되지 않을겁니다..
그리고.. 윈도우에서도 꼭 필요한 dll화일이 없으면 설치가 되더라도.. 실행되지 않구요..
이건 리눅스쪽에서도 마찬가지구요..
인스톨러들이.. 엄격할 뿐인겁니다 ;)
소스에서 빌드를 하게 되면 먼저 뭐가 깔려있어야 할 필요가 있는게..
필요한 헤더와.. 링크시킬 .so, 혹은 .a 같은 라이브러리 파일이 필요하니..
어쩔 수 없습니다..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
Re: 거의 예상했던 답변들이군요 - _-;;;
windows용 php를 보시면 extensions 동적으로 로딩할 모듈들의 dll파일들이 들어있습니다.
mysql은 기본이라 그런지 dll파일은 따로 없군요.
제가 php를 풀로 설치해서 php_mssql.dll이나 php_oracle.dll파일들이 있군요.
제 pc에는 ms sql도 oracle도 설치되어 있지 않습니다.
하지만 언제든 ms sql이나 oracle을 설치하면 언제든 사용할 수 있겠지요^^
제가 궁금했던 점이 바로 이것이지요.
어떤 분께서는 dll의 단점을 모르고 있는게 아닐까 하셨는데 dll의 단점 도 잘 알고있습니다.
그래서 com이 나왔다는 것도 말이지요.
com과 유샇나 corba가 있다는 것도 알고 있으며 mozilla 소스에서 idl 파일을 본적도 있습니다. - _-;;
이번 기회로 질문과 답변 모두 생각을 많이 해야하다는 것을 다시 한번 느꼈습니다.
답변 감사드립니다~ :P
Re: 거의 예상했던 답변들이군요 - _-;;;
그건 너무나도 당연한 이야기지요 ^^;;
제가 궁금했던 것은 필요할 경우 설치하면 php의 제컴파일 없이 mysql을 사용할 수 있는지 여부였습니다. :P
그런데 정말 동적으로 로딩하게 코딩한다면 이마저도 문제되지 않을거란 생각도 드네요.
로딩할 파일과 함수를 모두 알고있다면 그렇겠지요?
생각해보니 모듈이 static library가 제공될 경우 소스가 필요하겠군요 ^^
static library가 종속성의 원인이군요.
이건 나중에 시간날 때 한번 찾아보고 싶은 문제군요.
답변 감사드립니다. ^^
이번 주제에 대해서 다소 다른 길로 간 답변 및 질문들이 있군요.. 그럴
이번 주제에 대해서 다소 다른 길로 간 답변 및 질문들이 있군요.. 그럴수 있죠.. 정확한 의미 전달이 온라인에선 힘드니까요..
저도 별것 아닌것 같지만, 윗 글들을 읽으면서 조심해야겠다는 내용들이 많이 있네요.
다음부턴...
???을 할려고 하는데 ???를 찾아봐야 되나요.. 정도로 질문을 해야 될것 같네요.. *^^*
Re: 거의 예상했던 답변들이군요 - _-;;;
http://kr.php.net/manual/en/function.dl.php
dlopen 등으로.. 로딩할 파일과.. 함수이름을 알고 있다면..
가능합니다..
실제로.. 플러그인들은 그렇게들 많이 제작하죠 :D
http://server.hongik.ac.kr/Src/dlopen/ <- 이런식으로 하는겁니다..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
Re: 거의 예상했던 답변들이군요 - _-;;;
답을 다는동안 고치셔서;; ;;; ;;
static link 되면.. 필요한 것들을 전부 실행파일안에 넣어버리기 때문에..
오히려 종속성은 해결됩니다..
..
shared link를 해서.. 필요한 함수들이라던가.. 이런것들이.. so 로.. 존재하면..
그 so 파일들을 필요로 하기때문에..
의존성 문제가 발생하는겁니다..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
Re: 거의 예상했던 답변들이군요 - _-;;;
제가 이야기하는 것은 설치 시점의 종속성입니다.
mssql를 예로 들어보겠습니다.
제가 리눅스는 잘 모르니 윈도우를 예로 들겠습니다.
php는 mssql을 이용하기 위하여 php_mssql.dll을 제공합니다.
이 파일은 바이너리로 제공될 경우 mssql이 설치되어 있지 않아도 설치가 가능합니다.
mssql을 동적으로 로딩할테니 mssql을 쓰지 않을 경우 php_mssql.dll은 로딩되지 않기 때문이겠죠?
하지만 컴파일을 할 경우에는 문제가 달라집니다.
ms sql이 dll을 제공할 경우
dll을 제공할 경우 해당 dll파일이 없어도 dll파일을 이용하는 프로그램이 제작 가능하죠.
바로 php_mssql.dll은 mssql이 제공하는 dll에 맞추어 작성하면 그만이죠.
설치에 종속성과 관계가 없습니다.
ms sql이 static library를 제공할 경우
ms sql을 이용하기 위해서는 lib파일과 header 파일이 필요하겠지요.
그렇기 때문에 php_mssql.dll을 동적으로 로딩한다 해도 php_mssql.dll을
컴파일 하는 시점에서 문제가 생길것입니다.
mssql이 정적으로 링크되야 하기 때문이죠.
이 문제를 알고 계시리라 생각됩니다.
제가 이야기한 종속성의 시점이 프로그램 로딩 시점이 아니라 설치 시점이라는 것을 말하려는 것입니다.
답변 감사드립니다. :P
고만 하시죠~~?
온라인에서는 왠만해선 그냥 넘어가지만,
우선, 질문이 명확하지 않았습니다. 답변 하신분들이 그렇다고 하면, 걍 깔끔하게 인정하고 넘어가면 그만인것을 지지부진하게 말을 이리 바꿔 다시묻고, 저리바꿔 다시묻고, 그러지 않으셨으면 합니다.
"내말은 이게 아니고요... " 그건 그말 하는 사람의 입장일뿐,
주변에서 보는사람들이 "이상하네~~" 그럼, 그분들이 할일없이 짜고 님한테 태클거는거는 아니잖습니까? 그럼 겸허히 받아들이고, 잘못을 인정하고, 다시 질문을 고쳐서 잘 하던지, 그러는게 더 낫지 않았을까요?
성실히 답변해주고 계신분께, 답변도 얻고, 바락바락 우겨서 이기기까지 하실려고요? 전 이글에 벌써 '코메디다' 라고 할려다가 참았던 사람입니다.. 어이가 없어서.
삽질의 대마왕...
최근들어 KLDP가 많이 친절해진 느낌이군요.. :)답변을 해
최근들어 KLDP가 많이 친절해진 느낌이군요.. :)
답변을 해 주어야할 의무가 없을에도 불구하고...
인내해 가며 답변을 달아 주시는 많은 분들께 경의를.. :wink:
Re: 거의 예상했던 답변들이군요 - _-;;;
저도 windows는 잘 모르니 debian을 예로 들겠습니다.
debian의 경우 php4와 관련된 패키지들을 살펴보면...
php4: 아파치에 모듈로 도는 php4. apache가 깔려있어야 함.
php4-cgi: 아파치 없이 standalone으로도 돌 수 있는 php4. apache 없이 깔림
php4-mysql: mysql client가 깔려 있으면 됨
php4-odbc
php4-pgsql
php4-sybase
...
원하시는대로 패키지되어 있습니다. apache와 mysql 없이도 php4를 깔 수 있습니다.
배포판에 따라 만드는 철학이 다릅니다. 전에 찾아보신 배포판에서는 php는 APM과 함께 사용될 때에 성능을 낼 수 있도록 dll 연결 대신 직접 컴파일해넣었나보죠.
그대로
(상위 댓글에 대한 내용임)기술분야쪽은 좀 상대방 무시하고 그런 분들이 적잖게 있습니다. 답글 달아주는거 관심줬다는거를 너무 과시하고, 이건 저도 많이 느꼈던 거구요. 그래서 전 외국 포럼 애용합니다. 마소같은 경우 포럼이 잘되어있어서, 해결률도 높더라구요(마소자체에서도 외국인분들이 활동하는 쪽이요). 배경지식 밑바닥이 다르면 해석이 달라지기 때문에, 사실 질문하는 입장에서도 어디까지 나의 배경지식을 설명하고 질문해야 할까 참 애매하기도 하고, 사실 질문자는 배경지식 다 빼놓고 핵심만 질문하기 때문이죠. 근데 배경지식을 갖져서 읽으면, 그 질문은 틀린게 없다는게 함정이죠. 그 문장의 해석이 다른 배경지식을 가진 사람에겐 해석이 완전히 달라져서, 질문자는 배경을 충분히 언급해야 된다고 생각은 하는데, 그게 좀 어렵긴 하죠. 어디서부터 어떻게 질문을 해야할지 막막하고, 언어로 전달하는데 한계도 있고, 가끔은 그림자료자도 준비해서 질문해야되고요.
질문하러 왔다가 갈키고 있는 느낌...
결국, 질문하는 사람이 다른 사람들을 이해시키려고 알려주고, 그렇게 까지 하고도 최종적인 정답을 못찾으면, 질문자는 그냥 자신의 지식을 끄적 거린 거밖에 안되죠..
99.999% 와 0.001%
그래도 0.001%는 100명이 맞다고 했던게 틀리고 1명이 틀리다고 했던게 맞기도 하죠. 저는 질문과 별도로 철학적인 답글입니다.
가끔 후배한테 일 시킬려면, 이녀석이 내가 시킨 일을 잘할까, 이해했을까, 어디서 부터 설명해서 시킬지 깝깝할 때가 가끔있죠.
결국 되돌아보면, 양자 입장이 될 수박에 없는데도요
...?
질문은 리눅스에서 왜 DLL을 사용 못하는가 인데
여기에 대한 답글이
- 찾아보고 질문해라
- 질문 태도가 잘못됬다
- 질문하는 사람이 질문 내용을 잘 모르는것 같다 (알면 왜 질문하나?)
- 시스템 차이를 모르는 것 같다 (알면 왜 질문하나? 2)
그냥 질문글 읽어보고 본인이 상세하게 답글달아주기 싫으면 그냥 넘어가면되지
갑자기 뭔 의무감에 사로잡혀서 꼭 답글은 달아야겠고, 질문 내용에 답해줄 생각도 별로 없으니 옆길로 새서 이상한 소리나 하고있네
stackoverflow랑 수준차이 너무 심하네..
stackoverflow 는 친절한가요?
그 동네에도 여러 사람이 있어서 친절한 사람도 있고, 안 친절한 사람도 있을 걸요?
세벌 https://sebuls.blogspot.kr/
저도 질문하는 입장일때는 이런일로 마음상하기도 했지만
저도 질문하는 입장일때는 이런일로 마음상하기도 했지만,
보다보면 너무 빤한 질문들이 반복적으로 올라오는게 좋게 보이진 않더군요.
매뉴얼이나 게시판 검색을 해보면 쉽게 알만한 내용인데 싶어서요.
----
아발발다빠따반반나다발딸발발다빠따따맣밤밤따받따발발다따밝다발발다빠따따밤반다빠따다맣밥발
발다따밥다발발다따박다발발다빠따따밞밭밭다따다맣아희
댓글 달기