우분투 기본 Package 좀 이상하지 않습니까?

sDH8988L의 이미지

며칠 전에 새로 나온 우분투 7.04를 깔아서 사용하고 있습니다...

근데, 좀 이상한 점이 눈에 띄더라구요...

Gcc는 기본으로 들어가 있는데, Gnu C Library가 없습니다... (-_____-)

그래서 흠... 이거 또 한 번의 삽질이 필요하겠구만 하고 생각했죠...

원래 Gnu C Library가 Dependency가 많아서리...

근데, 찾다보니까 build-essential 이라는 Package가 있더군요...

고맙게도 Dependency에 해당하는 거 다 해주고 프로그래밍의 기본 Tool들을 많이 깔아 주더군요...

처음엔 황당했다가 다음에 고맙기도 하네요... ㅎㅎㅎ

다른 분들은 이런 경험 없으세요? gcc 말고도 혹시 이런 황당한 Package가 있나요?

lacovnk의 이미지

gnu c library는 설치되어있었을텐데요?

ubuntu-minimal이라는 패키지에서 libc6-i686을 설치하도록 하고 있습니다.

libc6-i686 - GNU C Library: Shared libraries [i686 optimized]

sDH8988L의 이미지

없던데요...

저는 설치 과정에서 머, 다른 거 선택한 거 없고 그냥 기본으로 쭉~~ 설치했거든요...

간단한 C Program 만들어서 뭔가 해보려고 했는데, Error가 수도 없이 나길래 봤더니...

stdio.h 도 못 찾고 있더라구요... 그래서 보니까 C Library가 안깔려 있던 겁니다...

머, 지금은 잘 쓰고 있어요... build-essential 깔아서요...

danskesb의 이미지

C 라이브러리가 아니라 C 헤더 파일이 없었을 것입니다. C 라이브러리가 없으면 아마 시스템이 구동되지 않았을 겁니다.
---- 절취선 ----
http://blog.peremen.name

sDH8988L의 이미지

아...

제가 말을 잘못했군요...

정확히 말하면 Development를 위한 것들이죠...

gcc는 있는데, library header가 없다는 건 좀 이상해서요...

익명사용자의 이미지

dev 패키지가 없었던거지요. 윗분 말씀대로 glibc 가 없으면 시스템이 아예 구동되지 않습니다.

송효진의 이미지

바이너리 기반의 배포판은 기본적으로 컴파일 환경을 제공하지 않죠.
그것이 보안, 용량면에서 장점이 됩니다.

별 상관없는 얘기지만,
젠투 안쓰시는 분들 중 무조건 컴파일 가능한 환경이 된다는것이 이유인 분도 있는것 같더라고요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

dragonkun의 이미지

gcc 가 기본으로 있던가요?
저도 얼마전에 새로 설치했는데 그땐 gcc가 없어서 apt-get 으로 build-essential 과 함께 깔아줬습니다만..
---
Emerging the World!

Emerging the World!

랜덤여신의 이미지

와, gcc가 기본으로 깔려있네요... 기분 나쁘군요(?).

그런데 헤더가 하나도 없다니 그냥 지워버려도 상관 없지 않을까요.
----
블로그 / 리눅스 스크린샷 갤러리 / 듣는 음악 통계
지금 듣는 곡:

njh1983의 이미지

요전에는 컴파일 할 때 아무생각없이 GNU C Library를 썼는데요, 찾아보니까

Quote:
Linux supports two kinds of libraries: static and shared
라고 나와있네요. lacovnk님이 이야기 한 게 Shared libraries같고, sDH8988L님이 이야기한 건 static libraries같은데, 이 두 개가 컴파일 때 따로 필요한 것 아닌가요? 아니면, GNU C Library는 Shared libraries만 있으면 되는 건가요?

헤더파일이 없어서 생기는 문제만은 아닌 것 같고, shared libraries가 싱글 이미지 파일로 디스크에 저장되면, 컴파일 때 실행파일에 stub code 넣고 필요한 subroutine랑 연결시키는 것 말고는 힘들것 같은데, 헷갈리네요. 아시는 분 답변 부탁드립니다.

근데 gcc는 있는데 GNU C Library를 못쓰면, gcc는 매크로 어셈블러로 쓰라는 이야긴가요? 라이브러리를 만들어 쓰라는 이야긴가? 보안을 생각했다면 보안이 되는 것도 아니고 안 되는 것도 아니게 됐네요.

--
소년이로학난성(少年易老學難成;소년은 쉽게 늙고 학문은 이루기 어렵다.)
일촌광음불가경(一寸光陰不可輕;순간의 세월을 헛되이 보내지 마라.)
미각지당춘초몽(未覺池塘春草夢;연못가의 봄풀이 채 꿈도 깨기 전에)
계전오엽이추성(階前梧葉已秋聲;계단 앞 오동나무 잎이 가을을 알린다.)

dragonkun의 이미지

제 생각엔 sDH8998L 님이 착각을 하신거 같고, 다른분들의 말씀이 맞는 것 같습니다.
시스템에 GNU C Library(Shared libraries)가 설치되어 있지 않으면 어떤 프로그램도 실행될 수 없습니다.
물론 프로그램들에 모두 GNU C Library 가 Static 하게 들어가 있으면 실행될 수도 있겠지만 이 경우는 없다고 보시면 됩니다.
문제는 헤더파일이 없어서 생기는 문제가 맞고, 라이브러리가 Shared library 와 Static library 두 종류가 존재한다는 것이 아니라, Shared 하게 쓸 것인지 Static 하게 쓸 것인지 라이브러리를 사용하는 방식을 이야기하는 것일겁니다.

수정)
이야기가 좀 틀린 것 같아 수정합니다.
좀 더 정확히 알아보니 libc6 의 경우는 shared/static에 상관없이 실행환경으로서 필요한 라이브러리를 말하고 libc6-dev 의경우는 개발환경으로서 필요한 헤더파일 + 라이브러리이네요.
libc6든 libc6-dev든 .a 파일 .so 파일 둘 다 포함하고 있습니다.
-----
Emerging the World!

Emerging the World!