Gentoo : 왜 내 프로그램을 컴파일하기로 선택 했나요?

글쎄요, 저의 이전 포스트에 대한 좋은 반응을 감안할 때 제가 가장 좋아하는 배포판 인 Gentoo Linux에 대해 조금 더 이야기하게되었습니다. 나는이 게시물이 무서운 앞에서 일어나는 신화에 대해 조금 이해하는 데 도움이 될 재미있는 정보를 가질 것이라고 약속합니다. 편집 소프트웨어 나는 또한이 정보가 다음 Gentoo Linux 설치 가이드를 위해 ~ 20 단계로 유용 할 것이라고 약속합니다 (아직 잘 계산하지는 않았지만 더 적다고 생각합니다). 더 이상 고민하지 않고 시작하겠습니다.

컴파일이란 무엇입니까?

인간 언어 (C, C ++ 파일 등)로 작성된 코드를 기계가 이해할 수있는 코드 (이진 코드)로 변환하기 위해 프로그램 (일반적으로 컴파일러라고 함)이 수행하는 프로세스입니다. 다음 예를 살펴 보겠습니다.

자신의 디자인, Christopher Díaz Riveros

이것은 우리의 작은 C 프로그램입니다(나중에 다른 C 튜토리얼을 원하신다면 이 시간 동안 제가 배운 것이 얼마나 적은지 기꺼이 보여드리겠습니다). 이제 컴파일 후 출력이 어떻게 보이는지 봅시다.

자신의 디자인, Chrirstopher Díaz Riveros

아름답 지 않나요? 🙂 이것은 우리 기계가 프로그램이 실행될 때마다 터미널에 "Hello"를 쓸 수 있다는 것을 이해하는 것입니다.

빌드 프로세스 :

.c 및 .h 파일이 모든 프로그래밍 언어에서와 같이 프로젝트에 풍부하기 때문에 화면에 간단한 "Hello"를 인쇄하는 프로그램을 갖는 것은 쓸모가 없습니다. 컴파일 과정을 좀 더 쉽게 만들기 위해 새로운 도구가 등장했으며 가장 대표적인 것은 명령입니다. 확인.

Make 파일을 가져 가다 Makefile 시작점으로 사용하고 최종 실행 파일을 만드는 데 필요한 것을 컴파일합니다. 어떤 경우에는이 단계에서 다음과 같은 파일을 실행해야합니다. configure 컴파일러가 유용한 파일을 컴파일 (중복을 용서)하는 데 필요한 몇 가지 변수를 할당 할 수 있습니다.

이것이 많은 자습서에서 다음 단계를 찾는 이유입니다.

개인적인. 크리스토퍼 디아즈 리베로 스

./configure의 마법 :

소스 코드의 가장 숨겨지고 재미있는 비밀 중 하나를 보여주기 위해 우리 모두가 완벽하게 알고있는 프로그램의 소스 코드로 이동합니다. sudo는. 먼저 평범한 단계이지만 멈출 게요 ./configure를  그들에게 특별한 것을 보여주기 위해.

개인적인. 크리스토퍼 디아즈 리베로 스

이렇게하면 긴 옵션 목록이 반환되며 그중 가장 관심을 끄는 옵션을 보여 드리겠습니다.

개인적인. 크리스토퍼 디아즈 리베로 스

--with-insults... 이름에서 알 수 있듯이 sudo를 다음과 같이 컴파일합니다. 모욕 😀은 사용자가 비밀번호를 잘못 입력 할 때마다 사용자에게 모욕을 보낼 수있는 재미있는 기능입니다. 그것은 무엇입니까? 글쎄, 얼마 전 😛하지만 한 가지 요점을 분명히합니다. 대부분의 배포판에는 기본적으로 제공되지 않는 수천 가지 옵션이 있습니다.

당신이 그렇듯이, 바이너리 코드 배포판에서 활성화 될 수 있고 절대 사용하지 않을 많은 다른 것들이 있습니다. 또는 당신이 필요로하는 것들이있을 것입니다. 그러나 그것들은 당신의 공식적인 배포 바이너리와 함께 제공되지 않을 것입니다. 이것은 각 업데이트가 수동이라는 것을 의미합니다.

Gentoo에서 재미있게 시작하세요 :

우리는 미리 컴파일 된 프로그램으로 얼마나 많은 옵션을 놓치거나 끌 수 있는지 이미 보았습니다. 하지만 이제 미리 컴파일 된 문제에 대해 조금 집중 해 보겠습니다.

성능 :

왜 새로운 기계가별로 현대적이지 않은 기계에 비해 조금 더 빨리 보이는지 궁금한 적이 있습니까? 프로세서가 더 좋으면 더 많은 RAM이 있고 모든 것이 더 좋습니다. 대답은 간단합니다 ... 편집.

매우 실용적인 예를 들어 보겠습니다.

내 프로그램은 옵션으로 컴파일됩니다. --march=broadwell... 내 프로세서가 브로드 웰 (인텔 i7)이기 때문입니다. 이것의 단점? broadwell 이전의 어떤 프로세서도이 바이너리를 인식 할 수 없습니다.. 이 시점에서 내가 -행진  구체적으로, 위의 모든 것이 작동하지 않습니다 ... 그렇다면 바이너리 패키지는 어떻게 그렇게 많은 유형의 하드웨어를 지원합니까? 쉬운, 그들은 가능한 최소한의 옵션으로 컴파일합니다 🙂 이것은 모든 유형의 하드웨어가 (적어도 호환성을 위해) 읽을 수 있음을 보장합니다.

진짜 문제 ... i3 용으로 컴파일 된 프로그램을 사용한다면 ... i7 (또는 각각의 AMD 유사품)의 모든 성능이 낭비됩니다 !! 슬프지 않나요? 🙁

유연성 :

Gentoo 개발자들은 매우 똑똑하기 때문에 tar, ./configure, make 등의 전체 과정이 다음의 힘으로 대체되었습니다. 운반. 이 모든 흥미로운 구성은 USE 플래그로 이름이 변경되었으므로 특정 구성을 원하면 소스 코드를 입력 할 필요없이 변수 만 구성하면됩니다. 다음은 포티지에서 sudo를 사용하여 수행하는 방법의 예입니다. 먼저 현재 구성에 어떤 옵션이 있는지 살펴 보겠습니다. 쿼리.

개인적인. 크리스토퍼 디아즈 리베로 스

보시다시피 빨간색 옵션이 활성화되고 파란색 옵션이 활성화되지 않습니다. 모든 사람이 범례를 읽을 수 있습니다 🙂

옵션을 추가하고 싶다고 가정 해 보겠습니다.

개인적인. 크리스토퍼 디아즈 리베로 스

파일에 줄을 추가하는 것만 큼 간단합니다. sudo는 (이름은 참조) /etc/portage/package.use/. 이것으로 다음에 sudo를 설치할 때 활성화 된 옵션으로 재 컴파일 될 것임을 알려줄 것입니다.

개인적인. 크리스토퍼 디아즈 리베로 스

우리가 주면 , 당신이해야 할 일은 조금 기다렸다가 짜잔 🙂 이렇게 간단합니다.

마지막 생각들:

글쎄, 우리는 이미 Gentoo에서 추가 기능을 처리하는 것이 얼마나 쉬운 지 보았습니다. 우리가 좋아하는 프로그램 내에서 옵션을 추가, 제거 또는 수정할 수 있습니다. 또한 프로그램의 성능이 컴파일 할 때 사용하는 변수에 크게 의존하는 것을 보았습니다. 아주 새로운 컴퓨터가 있다면 Gentoo가 최선의 선택입니다. 아주 오래된 컴퓨터를 가지고 있다면 Gentoo도 선택할 수 있습니다 (컴파일하는 데 시간이 걸리지 만 최종 프로그램은 훨씬 가볍습니다).

SystemD 애호가와 OpenRC 모험가 모두를 위해 곧 Gentoo 설치 가이드를 작성할 것입니다 (저는 systemd with GNOME을 사용합니다). 그건 그렇고, Gentoo의 또 다른 큰 장점은 선택 시스템 내부의 모든 것, 그리고 내가 말할 때 모든 것이 ALL.

내 첫 게시물을 놓친 경우 다음 링크가 있습니다.

Gentoo Linux : 여정의 이야기

감사합니다,


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   마트

    큰! Gentoo with Gnome 설치 가이드를 기다리겠습니다. 아직 약간 오래된 PC (인텔 코어 i5 3 세대)를 가지고 있더라도 Gentoo로 마이그레이션하는 것이 좋습니다. 건배!

    1.    Chrisadr

      Soon Mart 😉는 더 많은 것을 공유하기 위해 나를 이겼으므로 게시를 기다리고있는 또 다른 게시물을 썼지 만 곧 🙂 약속합니다

  2.   Njord

    여기에서 제가 가장 좋아하는 리눅스 배포판에 대한 많은 포스트를 보게 될 것 같아요 o!!
    저는 2005 년부터 Gentoo에서 공부하고있는 대학 (그리고 현재 일하고있는 곳)에서 메일 서버를 설정하는 데 사용했습니다. 산발적 인 배포 공격을 겪었지만 항상 사랑하는 Gertroodis와 함께 돌아옵니다. 먼저 Gnome2, Xfce, 이제 openbox), 이전 게시물에서 언급했듯이 세부 조정을위한 기술과 지식이 증가합니다 😉
    당신의 다음 공헌과 인사를 기다리고 있겠습니다.

    1.    Chrisadr

      글쎄, 다음 항목이 나옵니다 🙂 제가 좋아하는 주제에 대해 재미있는 대화를 나누는 것과 같습니다. 다음 항목은 곧 올 것이고 다음 항목은 다음 항목입니다. 😛 안녕하세요. 귀하의 의견에 감사드립니다 🙂

  3.   승자

    나는 수년간 배포판 사이를 뛰어 다니며 내 컴파일에 대해 생각하고 있었다. 그 가이드는 내가 놓친 단계가 될 것입니다…. 핸드북으로 즐겁게 지내겠습니다. 모든 것에 감사드립니다 ……

    1.    Chrisadr

      글쎄요, 핸드북은 정보의 천국입니다. 모든 것이 있습니다. 예상) ~ 20 단계 설치 가이드. 건배,

      1.    승자

        처음부터 다른 마이크로 프로세서에 대해 이야기하고 가이드가 여기에 있습니다 !!!!! 나의이 끝은 FIRST를 위해 엉망이되었습니다! !!! 수백만 감사 !!!!

  4.   대두

    Knoppix, Mandrake, Ubuntu 및 Debian ... 그리고 항상 Gentoo를 생각합니다 ...

    그 20 단계를 기다리고 있습니다!

    1.    Chrisadr

      하하하 음, 꿈 같지 않니? 🙂 나는 그것을 실현할 시간이라고 말합니다 😉 인사

  5.   얼음처럼 차가워지다.

    안녕하세요 ChrisADR, 먼저 Gentoo에 대한 첫 번째 기사 이후 잘 잤다 고 말하고 싶습니다.이 새로운 기사와 관련이 있습니다. 제 꿈은 제 예전 Aspire One 넷북에서 Gentoo를 컴파일하는 데 기반을두고 있습니다. 꿈에서 시스템은 넷북이 너무 오래되어 하드웨어를 인식하지 못한다고 알려줍니다.
    반면에 Gentoo를보고 관심을 끌었을 때 그들은 그것이 컴퓨터 (컴퓨터)에 제공하는 힘을 언급했습니다. 그날 이후로 언젠가는 설치하겠다고 스스로에게 말했지만 10 년 이상이 지났지 만 설치하지 않았습니다. 아마도 그들이 설치하기가 매우 어렵다고 말했기 때문일 것입니다. 당시 저는 거의 안티 리눅스였습니다. 그래서 그들은 그것에 대한 나의 불만을 증가 시켰습니다. 그러나 호기심은 계속되었습니다. 한 번은 넷북에 BSD를 설치하려고했는데 젠투가 매우 BSD와 비슷한 리눅스라고 들었습니다.
    예전 Atom 컴파일러를 사용하여 예전 Aspire One에 젠투를 설치하기 위해 무엇을 권장합니까?

    그리고 더 많은 기사를 기다리고 있습니다.

    1.    크리스ADR

      글쎄, 나는 추천한다. 마지막으로, 결국 실패한다면 (커널이 모든 종류의 하드웨어를 지원하도록 만들어 졌기 때문에 많이 의심 스럽습니다) Linux 세계에서 매우 풍부한 경험을하게 될 것입니다. 🙂 커널을 컴파일 한 것입니다. 처음부터 파일 시스템을 마운트하면 인생에서 거의 수행하지 않는 구성을 만들 것입니다 🙂 세계에 대한 새로운 관점을 제공합니다 hahaha 내 Unix 및 StackExchange 프로필을 볼 수없는 경우 🙂 내 답변은 광범위한 Linux를 다룹니다. Gentoo를 알기 때문에 모든 Linux에 대해 많은 것을 배울 수 있었기 때문입니다 😉 여기에 제 프로필 링크를 남겨 둡니다.

      https://unix.stackexchange.com/users/246185/christopher-d%C3%ADaz-riveros?tab=profile

      두려워하지 말고 결국 모든 것이 잘되면 (확실히 약간의 비용이들 것입니다) 책의 성취가 될 것입니다 😉 인사말

  6.   에스테반

    Gentoo 로의 마이그레이션도 생각하고 있지만 의심이 있습니다. 우선, Arch의 패키지는 얼마나 최신 상태입니까? 반면에 제 노트북에는 배터리가 내장되어 있으며, 우리는 모두 지속적인 과도한 열이 배터리에 미치는 영향을 알고 있습니다. 그리고 컴파일하는 데 많은 시간을 할애했기 때문에 ...

    1.    크리스ADR

      글쎄요, 진실은 어느 것이 더 많은 롤링 릴리즈인지 확실히 말할 수는 없습니다. 제가 확실하게 말할 수있는 것은 젠투가 "안정적"과 "안정적"이라는 두 가지 브랜치를 가지고 있다는 것입니다. 기술의 가장자리에있는 패키지의 대부분, 복잡한 문제없이 매일 사용하는 유명한 개발자가 많이 있습니다. 이들 중 많은 부분이 프로젝트의 git 저장소와 함께 작동하도록 만들어 졌기 때문에 더 이상 최신 정보가 없습니다. 🙂 저는 개인적으로 "안정적인"브랜치를 사용합니다. 그러나 이것은 특히 보안 코디네이터로서의 일원으로서 커뮤니티 내에서의 작업 때문입니다. 테스트 팀 (아치 테스터). 해당 작업에 대해 "안정된"버전이 필요하지 않은 경우 "안정적"으로 기술의 가장자리에있을 것입니다.
      질문에 대한 답은 모르겠지만 적어도 시도해 볼 수있을만큼 관심을 끌었 으면합니다 😛 안부

  7.   무료 키호테

    진실은 당신이 나를 원하게 만들고 있다는 것입니다 😉
    나는 당신이 C 튜토리얼과 파이썬에 대해 언급 한 것에 매우 관심이 있으며 서투른 조부모를 위해 숨겨진 보석이 있다면 감사하겠습니다.
    대륙보다 콘텐츠가 더 중요하다고 생각하기 때문에 당신에게 약간의 막대기를 씌우고 제 모든 존경심을 가지고 있지만, 제가 언어에 대해 조금 까다로울 수 있다는 점을 조금 말씀 드리겠습니다.
    당신은 처음에 말한다 :
    "컴파일은 컴파일러가 인간 언어로 작성된 코드를 사용하고이를 기계가 이해할 수있는 코드로 변환하기 위해 수행하는 프로세스입니다."
    제 생각에는 정의에 정의 된 것을 포함하는 것은 올바르지 않습니다. 컴파일을 정의하려면 컴파일러라는 용어를 포함하므로 다음과 같은 것이 더 정확할 것입니다.
    컴파일은 프로그램이 언어 (C, C ++)로 작성된 텍스트 파일에서 컴퓨터에서 실행 가능한 파일을 가져 오는 프로세스입니다.

    1.    크리스ADR

      귀하의 기여는 나에게 맞는 것 같습니다. 본질을 유지하고 그 정보를 추가하기 위해 그것을 수용하고 있습니다 😉 감사합니다.

  8.   더블 D

    우분투 16.04를 사용하고 있는데 젠투로 전환해야한다고 생각하십니까? 젠투와 우분투의 장점은 무엇입니까?

    1.    크리스ADR

      글쎄, 나는 정말로 모른다 😛 그것은 당신이 당신의 장비로 무엇을 할 것인지, 당신이 가지고있는 하드웨어로, 또는 Gentoo 사용법을 배울 시간이 있는지 (그리고 욕망이 있는지)에 달려 있습니다. 시간이 있고 원한다면 앞으로 나아갈 수 있다고 말할 것입니다! 그리고 당신은 길을 따라 많은 것을 배울 것입니다 😉
      안부

  9.   페르난

    안녕
    만약 젠투가 읽을 것이 많다는 것이 진실이라면, 예를 들어 emerge -pv 패키지를 만들고 빨간색, 파란색 및 녹색으로 사용하고 사용 변경, 마스크 해제 패키지, 슬롯 변경이 필요한 잠금을 추가로 사용하는 경우 다른 패키지 관리자가 표시합니다.
    젠투를 매일 업데이트해야한다고 생각합니다. 한 달 동안 그대로두면 해결 방법을 알아 내야합니다.
    인사말.

    1.    크리스ADR

      예, 헤헤, 처음에는 조금 조수 🙂 그러나 시간이 지남에 따라 익숙해지면서 다른 패키지 관리자에서 왜 그렇게 많은 유연성을 가지고 있는지 생각하는 시점에 도달합니다 🙂 시간 측면에서 동일한 서버를 가진 사람들을 알고 있습니다 업데이트없이 수년 동안 실행되고 첫날처럼 완전히 확고한 상태를 유지하며 수년 (수개월이 아님)을 사용하는 사람들을 위해 문제에 대한 가능한 해결책을 설명하는 위키의 특별한 섹션이 있습니다.

      https://wiki.gentoo.org/wiki/Upgrading_Gentoo/es#Actualizar_sistemas_antiguos

      그리고 업데이트 측면에서 보안 문제를 직접보고 새로운 관점을 갖게되었을 수도 있지만, 매일 업데이트하는 것은 배포판에 관계없이 모든 배포판과 젠투에서 두 개 이상의 명령이 필요하지 않습니다. 좋은 습관을 만드는 것 외에도 모든 패키지가 쌓일 때 오래 기다리지 마십시오.
      안부

  10.   페르난

    안녕
    바이너리 배포판에서는 만자로를 사용하고 우분투를 사용하기 전에는 업데이트하기 쉽고 매일 업데이트가 있는지 확인하고 가장 먼저 보는 것이지만 만자로 업데이트에서는 관련 문제가 없었습니다. pacman에게 모든 것에 예라고 말하고 기껏해야 서명을 업데이트하거나 파일을 삭제해야합니다. 그러나 내가 gentoo에서 읽은 것에서 용어는 때때로 포티지가 말하는 것을 이해하기 어렵습니다.
    인사말.

    1.    크리스ADR

      모든 것에 예라고 말하는 것은 결코 좋지 않습니다 🙂 GNU / Linux에 도달했다면 그것을 알고 이해해야합니다. 글쎄, 볼 것이 없습니다, 그것은 단순히 관습입니다. 시간이 지남에 따라 당신은 빨간색이 당신이 가지고있는 것이고, 당신이 가지고 있지 않은 것은 파란색이고, 당신이 추가 할 것은 녹색이라는 것을 깨닫습니다. 시작하도록 올바르게 구성한 경우 업데이트 할 항목을 변경할 필요가 없습니다. 가끔 USE 플래그를 추가하거나 제거하지만 일반적인 것은 목록을 읽은 후 수행중인 작업을 알기 위해 Y를 yes로 지정하는 것입니다.
      추신 : pacman -Syy는 emerge -sync와 동일합니다.
      Pacman -Suy는 emerge -uD @world와 동일합니다 (-av는 장황 할 뿐이며 진행하기 전에 묻습니다. 당신이 당신의 팀을 알고 있고 당신이 무엇을하고 있는지 아는 경우에는 불필요하지만, 저는 그것을 피하도록 두었습니다. 나중에 문제 😉) 기억하기가 그렇게 어렵지 않습니다 🙂

      안부

  11.   마우리시오 로페즈

    이전 기사와이 기사 모두 훌륭합니다. 저는 의심스럽고 Arch 또는 Manjaro와 Gentoo 사이에서 얼마나 많은 속도를 얻는가입니다. 사용자 정의 및 학습 자체에 관계없이 설치할 가치가 있습니다.
    내가 가진 또 다른 질문은 드라이버를 다루는 방법입니다. 이것은 Arch에서 문제를 일으킨 것입니다.

    1.    크리스ADR

      홀라 마우리시오,
      글쎄, 나는 둘 사이의 벤치마킹을 멈추지 않았고 실제로 사용하는 소프트웨어와 장비에 따라 매우 모호한 질문입니다. 이는 거의 또는 전혀 다를 수 있습니다. 적어도 오늘날에는 두 시스템 모두 내가 사용하는 데 필요한 부분에서 매우 잘 작동합니다. (저는 가끔 사용하는 메인 젠투와 아치를 가지고 있습니다.) 일반적으로 가상화 및 프로그램 편집에 사용합니다 (하지만 일반적으로 터미널에서 사용하므로 IDE에서 많은 메모리를 사용하지 않습니다. Chrome은 완전히 차분한 방식으로 저를 지원합니다. 40 개 이상의 탭 (일반적으로 최대 5 개의 탭만 열려 있지만 여러 번 시도했습니다.
      언젠가 감히 시도한다면 어떻게 됐는지 알려주세요 🙂

      드라이버의 경우 커널을 마음대로 제어하기 때문에 일반적으로 대부분의 "일반"드라이버가 설치 가능하거나 최소한 관리 가능합니다. 고도로 전문화 된 하드웨어의 경우 (특히 일반적으로 Linux와 거의 호환되지 않음) 다른 많은 배포판과 동일한 작업이라고 생각합니다. 전문 하드웨어가 많지 않으므로 이에 대해 많이 언급 할 수 없습니다.

      인사와 행운

  12.   Jeanpier 수 베로

    소셜 네트워크 ChirsADR은 무엇입니까?