이 작은 가이드에서는 소스 코드에서 프로그램 (Firefox, Vlc 등)을 컴파일하는 것이 소프트웨어 센터 (The Software Center, Yumex, Pacman 등)에서 다운로드하는 것보다 왜 더 나은지 설명 (그리고 알려 드리겠습니다) ) 및 설치하십시오.
먼저 이론으로 이동합니다.
"컴파일"이란 무엇입니까?
컴파일은 코드를 생성하는 데 사용되는 언어를 바이너리로 변환하는 프로세서를 사용하여 소스 코드 (특정 프로그래밍 언어, 예를 들어 C, C ++ 등으로 작성된 코드)를 실행 가능한 프로그램으로 변환하는 것입니다. 어셈블러. 포장이라고도합니다.
"컴파일"이 더 나은 이유는 무엇입니까?
먼저 그 이유를 이해하려면 다음을 알아야합니다. "조잡한"방식 (단순하고 전문적이지 않은 등)으로 표현하면 각 종족 (Pentium, Core, Atom 등)과 프로세서 종 (Intel, AMD, ARM 등)에는 명령어 (어셈블러로 작성된 소프트웨어)가 있습니다. 해당 모델 (Core i7, Core i5, Atom x2, Phantom x8, Arm 등)의 코드를 처리하고 모든 종류의 일반 지침을 가지고 있습니다.
Software Center / apt-get / Yumex / Yum / Pacman 등을 통해 저장소에서 다운로드하면 자동으로 설치되는 프로그램이 다음과 같이 말합니다. 사전 컴파일 가능한 모든 프로세서 (Intel 및 Amd)에서 작동합니다. 사전 컴파일 된 프로그램이기 때문에 특정 프로세서 모델의 일반적인 명령어가 손실됩니다 (예를 들어 Firefox 또는 Chrome과 같은 프로그램이 7 만 또는 8 백만 줄 이상의 코드를 포함하는 경우 각 명령어에 대한 모든 특정 명령어를 입력해야합니다). 프로세서가 출시되면 코드의 양이 너무 많아서 해당 프로그램이 더 이상 효율적이지 않을 것입니다.) 제작자 브랜드 (Intel, Amd, Arm)의 일반 제품에 지나지 않습니다.
프로그램의 소스 코드를 직접 다운로드, 압축 해제 및 컴파일하면 다음의 특정 지침에 따라 컴파일됩니다. TU 프로세서, (이는 다른 컴퓨터를 사용하는 컴퓨터에서 작동하지 않는다는 의미가 아니라 프로세서에 맞게 특별히 최적화된다는 의미입니다.), 따라서 특정 지침 덕분에 프로세서가 제공 할 수있는 모든 전력을 방출하고 방출합니다.
보다 기술적 인 세부 사항에서 이러한 특정 지침은 마더 보드의 칩셋으로 알려진 것과 밀접하게 연결되어 있습니다. 이는 인텔이 프로세서와 마더 보드를 업그레이드 할 때 큰 골칫거리입니다.
당신은 당신의 힘에 놀랄 것입니다 Amd 원자 x2 또는 당신 인텔 코어 인사이드, 코어 듀오 2, i3등 이전 PC에서. 이제 Linux 세계에서 유명한 커널 (모든 운영 체제의 핵심)을 컴파일하는 것에 대해 왜 많은 이야기가 있는지 이해하십니까? 전체 시스템 (그래픽 환경 (Gnome, Kde 등), 커널, 특히 PC에서 일반적으로 사용되는 프로그램 (Firefox, Vlc, Chrome, Wine 등))을 모든 속도와 최적화 수준으로 컴파일한다고 상상해보십시오.
특히 여러분의 컴퓨터에 최적화 된 코드를 얻기위한이 컴파일 원칙은 Gentoo 및 파생물과 같은 배포판에서 사용하는 것입니다 (지금은 언급하지 않겠습니다. 저는 Gnome 3, 커널 및 기타 프로그램을 컴파일 할 때 Fedora minimal을 사용합니다) 시스템, 업데이트 및 프로그램은 항상 컴파일됩니다.
컴파일의 단점 :
나는 이미 모든 장점을 설명했지만 우주의 모든 것과 마찬가지로 반대가 있습니다.
컴파일 케이스에서는 다음과 같습니다.
- 이 작업에 필요한 시간 (i7 4790K를 사용하는 Firefox (전압이 매우 나쁘기 때문에 오버 클럭이 없음)은 3 분, Gnome-Control-Center를 사용하는 Gnome Shell (바는 더 이상 없음)은 약 2 분이 걸렸습니다. 페도라에서 같은 시간에. 그러나 덜 강력한 프로세서가있는 머신에서는 이번에는 불균형 적으로 길 수 있습니다).
- 프로세서는 모든 코어를 최대로 사용하여 전력을 100 % 사용하므로 소비와 열이 급증하므로 (오버 클럭이 있거나 특히 노트북 인 경우이 점을 고려하십시오) 메이트 나 커피를 준비하는 것이 편리합니다. 행사를 위해.
- 컴파일시 오류가 발생하지 않도록 프로그램을 사용하는 라이브러리 (도구)가 누락되었을 수 있습니다. 일반적으로 모든 배포판에는이를 방지하기위한 패키지 또는 세트가 있습니다 (커널이 프로세스 중에 프로세서와 통신 할 수 있도록하는 다양한 라이브러리 및 기타 항목으로 가득 차 있습니다).
어떻게 컴파일 할 수 있습니까?
여기서는 커널이 아닌 정상적인 사용을 위해 프로그램을 컴파일하는 것에 대해 이야기하고 있습니다.
aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
debian-policy를 넣었지만 배포판이 Debian이 아니고 그러한 패키지가 없다는 오류가 발생하면 무시하십시오. 이 시스템을 오랫동안 사용하지 않았 음을 분명히해야하므로 패키지가 더 이상 저장소에 없어도 문제가되지 않습니다.
Fedora의 경우 :
sudo yum -y 커널 헤더 설치커널 개발sudo yum groupinstall "개발 도구"sudo yum groupinstall "개발 라이브러리"
여기서 저는 Arch (배포판을 잘 모릅니다)와 OpenSuse를 사용하는 사람들에게 사과해야합니다. 올바른 컴파일을 수행하기 위해 이러한 배포판이나 각 패키지를 모르기 때문입니다 (네트워크에있는 내용을 확증하지 않았습니다. 그래서 그 두 사람이 작동하는지 모르겠습니다.)
이제 필요한 모든 요구 사항을 갖추 었으므로 터미널을 사용하여 압축을 푼 확장에 따라 컴파일하려는 프로그램의 소스 코드 만 다운로드하면됩니다 (걱정하지 마십시오. 명령은 그대로 두겠습니다). 폴더 (항상 터미널 사용)로 이동하면 다음과 같은 작업을 수행합니다.
구성 요소 및 기타 항목을 선택하도록 직접 구성 할 수있는 경우 :
./configure
그런 다음 다음을 입력합니다.
make
마지막으로 Linux에 프로그램을 설치하려면 :
make install
터미널을 사용하여 압축을 푸는 명령 (파일이있는 폴더에서 압축이 풀림) :
.Tar 파일 (tar)----------------------------------팩 | tar cvf file.tar / 파일 / * 압축 해제 | tar xvf file.tar 내용보기 | tar tvf file.tar
----------------------------------.tar.gz-.tar.z-.tgz (tar with gzip )---------------------------------팩 및 zip | tar czvf archive.tar.gz / archive / 압축 풀기 및 압축 해제 | tar xzvf file.tar.gz 내용보기 (추출되지 않음) | tar tzvf file.tar.gz
----------------------------------.gz (gzip)----------- ------------------------압축 | gzip -q 파일 (파일이 압축되고 "file.gz"로 이름이 바뀜) Unzip | gzip -d file.gz (파일은 압축을 풀고 "파일"로 둡니다. 참고 : gzip은 디렉토리가 아닌 파일 만 압축합니다.
----------------------------------.bz2 (bzip2)----------- ------------------------압축 | bzip2 파일 | bunzip2 파일 (파일이 압축되고 "file.bz2"로 이름이 바뀜) Unzip | bzip2 -d file.bz2 | bunzip2 file.bz2 (파일은 압축을 풀고 "파일"로 남김) 참고 : bzip2는 디렉토리가 아닌 파일 만 압축합니다.
---------------------------------.tar.bz2 (tar with bzip2)-------- --------------------------압축 | tar -c 파일 | bzip2> file.tar.bz2 압축 해제 | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (tar의 최신 버전) 내용보기 | bzip2 -dc file.tar.bz2 | tar -tv
---------------------------------.zip (zip)------------ -----------------------압축 | zip file.zip / mayo / 아카이브 압축 풀기 | unzip file.zip 내용보기 | 압축 해제 -v file.zip
----------------------------------.rar (rar)----------- ------------------------압축 | rar -a file.rar / may / archives Unzip | rar -x file.rar 내용보기 | rar -v file.rar | rar -l file.rar
그리고 그게 전부입니다. 아르헨티나 부에노스 아이레스에서 인사드립니다. 즐거운 연말 연시와 새해를 맞이하세요! :).