소스에서 설치된 패키지를 모두 빌드하는 방법은 무엇입니까?


26

젠투와 같은 소스 기반 리눅스 배포판이 우분투와 같은 사전 구축 배포판과 비교할 때 특정 시스템에 최적화 된 소스로 설치하기 때문에 어떻게 성능이 크게 향상 될 수 있는지에 대해 읽었습니다. 동일한 종류의 혜택을 얻기 위해 소스에서 Ubuntu를 빌드 할 수 있습니까?


3
우분투가 아닌 젠투를 설치하십시오. 진지하게 소스 기반 의존성 관리에서 실패하는 배포판을 사용하는 이유는 무엇입니까?
Mathepic

7
소스와 바이너리 간의 벤치 마크에서 실제로 동일한 스택 버전과 구성을 사용하는 것이 궁금합니다. 비교는 일반적으로 Ubuntu 릴리스 (기본값)와 홀수 볼 파일 시스템 및 기괴한 앱 기본값으로 가능한 최신 젠투입니다. 우분투의 기본값은 대부분 제정신이며 대부분의 성능에서 비롯된 것이므로 대부분의 직선 비교가 우분투를 젠투보다 우선합니다.
Oli

1
잘못된 비교의 좋은 예는 다른 커널, 다른 Nvidia 드라이버, 다른 X 버전 및 다른 데스크탑 환경을 사용하는 이 Linux Magazine 기사 (읽기 무료 등록 필요)입니다. 두 가지 버전의 우분투를 비교할 수도 있습니다. 그들은 비슷한 규모의 차이를 보여줄 것입니다.
Oli

4
무엇의 성능 향상? 네트워크 처리량, 디스크 속도, 프로세스 전환, 순수 수학 계산, 3D 그래픽, 부팅 시간?
사용자가 알 수 없음

1
대규모의 CPU 성능이 필요하고 (비디오 인코딩을 염두에두고) FMA3 또는 AVX2와 같은 CPU 최적화의 이점이있는 소프트웨어 컴파일 만 권장합니다.
keiki

답변:


42

Is is possible to build Ubuntu from source to get the same kind of benefit?

상당히 새로운 하드웨어 구성 요소가 있다면 이점에 대해 확신하지 못하지만 질문의 "소스에서 우분투"부분에 대한 대답은 예입니다. 소스에서 좋아하는 응용 프로그램뿐만 아니라 전체 운영 체제를 빌드 할 수 있습니다.

방법은 다음과 같습니다.

apt-build 를 설치해야합니다 . apt-get과 같은 comandline 도구이지만 이진 패키지를 다운로드하여 설치하는 대신 apt-build는 패키지의 소스 코드를 다운로드하여 컴파일 한 다음 시스템에 설치합니다.

설치 후

sudo apt-get install apt-build

APT (예)에 대한 apt-build repo를 만들지 여부와 프로세서 아키텍처에 대한 질문 (내 인텔 i7은 core2로 간주됩니다)에 대한 최적화 수준 (중간은 괜찮습니다)을 묻는 메시지가 표시됩니다. 물론 모든 옵션을 다음과 같이 재구성 할 수 있습니다.

dpkg-reconfigure apt-build

위의 명령은 gcc 컴파일러와 make 빌더를위한 두 가지 추가 옵션을 제공합니다. 설명은 시스템 매뉴얼 : man gcc 및 man make에서 찾을 수 있습니다.

수동 및 사용 가능한 명령 옵션 확인

man apt-build

그러나 가장 유용한 것은 다음과 같습니다.

  • apt-build update — apt-get update와 같은 repo list를 업데이트합니다
  • apt-build upgrade — apt-get upgrade와 같은 운영 체제 업데이트
  • apt-build 설치 프로그램 — apt-get install과 같은 응용 프로그램을 설치합니다
  • apt-build world-하드 코어 사용자를위한 시스템으로 전체 시스템을 다시 컴파일합니다!

예를 들면 다음과 같습니다.

Gedit를 컴파일 / 설치한다고 가정하자. apt-get install 대신에

sudo apt-build install gedit

Apt-build는 /etc/apt/sources.list 파일에 포함 된 deb-src 항목을 사용하므로 컴파일 및 설치 과정이 완전히 자동으로 이루어집니다 (Gentoo에서 발견되는 것과 유사). Apt-build는 기본 응용 프로그램의 소스와 해당 종속 항목을 다운로드하여 컴파일하고 deb 패키지를 만든 다음 패키지를 설치합니다.

apt-build 세계에 대한 몇 가지 메모.

내 의견으로는 24 시간 이상 사용할 수 없다면 그것을 시도하지 마십시오!

가장 먼저해야 할 경우, 타사 응용 프로그램을 제거 / 비활성화 / 제거하십시오 (우분투 새로 설치하는 것이 좋습니다).

sudo su
dpkg --get-selections | awk '{if ($2 == "install") print $1}'> /etc/apt/apt-build.list
exit

위 명령은 시스템 패키지의 전체 목록을 apt-build.list에 복사하여 소스에서 컴파일 할 수 있도록합니다. 그 파일을여십시오

sudo gedit /etc/apt/apt-build.list

GCC / G ++ 항목을 제거하십시오.

그럼 당신은 할 수 있습니다 :

sudo apt-build world

재구성 프로세스를 완전히 자동화하려면 --yes와 --force-yes의 두 가지 옵션을 추가하는 것이 좋습니다.


10
"왜 구축해야합니까?"에 비해 구체적 답변은 +1입니다. 대답. 을 사용하여 얻을 수있는 (또는 얻을 수없는) 이점에 대한 더 광범위한 의견 (주관적인 경우에도)을 읽는 것이 좋습니다 apt-build.
enzotib

1
이 답변에 현재 +17이 있습니다. 그러나 누군가 성공적으로 그것을 했습니까?
keiki

1
@ otakun85 우분투에서 일부 패키지를 성공적으로 컴파일하기 위해 apt-build를 사용했습니다 (12.04 | 12.10 | 13.04 중 하나의 릴리스를 기억할 수 없음). 나는 혼란스러운 apt-build 세계를 시도했습니다. apt-build 의 맨 페이지 에는 마지막 에이 페이지BUGS Many.있으므로 문제가 발생할 것으로 예상됩니다.
Phizes

사용하는 대신 apt-build world"Linux from Scratch"책을 다운로드하고 apt-build그 안에 나열된 모든 패키지에 대해하는 것이 좋습니다. 그것은 잘 모르겠어요 예를 들어 올바른 순서 등을 지정하는 경우, apt-build world먼저 재 컴파일해야합니다 알고 binutils, 다음 gcc, 다음, binutils다시, gcc다시, 다음, 프로그래밍 언어 gzip등은 그냥 알파벳 순으로 모든 것을 컴파일 보인다.
Serhyi Vynohradov

@SerhyiVynohradov : 중요하지 않습니다. LFS는 호스트 시스템의 라이브러리에 대한 의존성을 피하기 위해이를 수행하지만 여기서는 모든 위치를 컴파일 된 버전으로 대체합니다. 그들은 여전히 ​​같은 위치에있을 것이고 같은 ABI를 가질 것입니다.
Nick Matteo

3

이런 종류의 주제에 대해 화염 전쟁과 큰 논쟁을 시작할 수는 있지만 실제 생활을 살펴볼 수 있습니다.

운영 체제의 속도는 운영 체제에 따라 크게 다르며 이것이 주요 요인입니다.

아치를 사용하는 동안 대부분 배포판을 자주 바꾸지 만 아치는 우분투보다 빠릅니다. 아니.

Ubuntu 10.10에서 compiz가있는 Gnome은 약 300ram을 사용하고 Arch 200ram에서는 4GB의 램을 가지고 있으며 차이를 느끼지 않지만 Ubuntu와 gnome을 Arch와 비교하면 멋지게 응답 성과 리소스가 크게 향상됩니다. 사용법 (300ram vs 50ram)이지만 넷북의 배포판을 선택하는 경우에만 중요합니다.

따라서 빠른 데스크톱을 가지고 있고 시스템으로 시간을 낭비하고 싶지 않다면 우분투를 사용하지만 아치에서 경량 WM을 사용하는 것보다 넷북이있는 경우 :)


글쎄, 어떤 시점에서 최신 하드웨어가있는 상황에 도달 할 수 있지만 여전히 한 시간 동안 작업을 수행해야합니다. 그리고 부하 분산을 위해 여러 대의 서버를 설정하는 대신 약간의 시간을 투자하여 추가로 20 % 향상시킬 필요는 없습니다. 아치를 사용한 적이 없지만 젠투를 사용해 보았습니다. 그리고 나는 "빠른 배포판"과 같은 것이 많이 없다는 것을 알았습니다. 대신 "소프트웨어가 적은 디스트로"가 ​​있습니다. 빠르지 만 안전하지 않은 베어 본 시스템이있을 수 있습니다. 그리고 다른 패키지를 설치하면 Ubuntu + apt-build와 동일한 속도가됩니다.
Serhyi Vynohradov

0

Apt-build는 성능 이상으로 유용하며, 비즈니스 용 대량 설치 준비가 된 특정 하드웨어에 대한 사용자 지정 배포 이미지 및 리포지토리를 작성할 수 있습니다. 이것은 모든 하드웨어가 동일하다는 것을 알고 있다면 최적화 된 바이너리 배포를 의미합니다. 이렇게하면 한 대의 컴퓨터 만 모든 작업을 컴파일하고 나머지는 리마스터 된 ISO를 사용하여 업그레이드됩니다. 경량 또는 인코딩만을위한 것이 아닙니다. 또한 사용자 지정 설치 관리자 ISO를 사용하면 어떤 이유로 재해 후 시스템을 복구 할 수없는 경우 다시 컴파일하지 않고 다시 설치할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.