it-swarm-ko.tech

소스에서 프로그램을 컴파일하고 설치하는 방법

이것은 Linux의 즐거움을 정말로 제한하는 문제입니다. 응용 프로그램이 저장소에 없거나 설치 프로그램 스크립트가없는 경우 소스에서 응용 프로그램을 설치하는 위치와 방법이 정말 어려워집니다.

Windows와 비교하면 쉽습니다. 마법사의 모든 작업을 수행하는 설치 관리자 응용 프로그램을 사용해야합니다. 리눅스에서는 ... 별로는 아닙니다.

그렇다면 이것에 대한 팁이나 지침이 있거나 소스에서 Linux 프로그램을 설치하는 방법, 이유 및 위치를 명시 적으로 설명하는 웹 사이트가 있습니까?

42
Nitrodist

일반적으로 프로젝트에는 빌드 및 설치 방법에 대한 지침이있는 웹 사이트가 있습니다. 먼저 구글.

대부분의 경우 다음 중 하나를 수행합니다.

  1. 특정 소스 코드 버전의 릴리스 인 tarball (tar.gz 또는 tar.bz2 파일)을 다운로드하십시오.
  2. Gzip으로 압축 된 tarball의 경우 tar zxvf myapp.tar.gz 또는 bzipped tarball의 경우 tar jxvf myapp.tar.bz2와 같은 명령으로 tarball을 추출하십시오.
  3. 위에서 만든 디렉토리로 cd
  4. ./configure && make && Sudo make install를 실행하십시오.

또는:

  1. Git 또는 svn을 사용하거나 공식 소스 저장소에서 최신 소스 코드를 가져옵니다.
  2. 위에서 만든 디렉토리로 cd
  3. ./autogen.sh && make && Sudo make install를 실행하십시오.

Configure와 autogen.sh는 소프트웨어 설치 위치를 지정하기 위해 --prefix 인수를 허용합니다. 소프트웨어를 어디에 설치해야합니까? 사용자 정의 빌드 소프트웨어를 설치하기 가장 좋은 곳에서 조언을 구하십시오.

24
Sandy

소스에서 패키지를 컴파일하고 모든 패키지 종속성, 플래그 등을 처리하는 패키지 관리자가 있다고 덧붙이고 싶습니다.

BSD 시스템에서는 ports입니다 : Ports Collection 사용

데비안에서는 apt-get 패키지 관리자도 소스에서 설치할 수 있습니다 : APT HOWTO : 소스 패키지로 작업하기 (우분투, 리눅스 민트 및 데비안 기반의 다른 것들도 마찬가지입니다)

젠투 배포판은 portage 패키지 관리자를 사용합니다.이 패키지 관리자는 소스에서만 전체 시스템을 컴파일합니다 : Portage Introduction .

슬랙웨어는 패키지를 컴파일 할 수 있지만 거기에 패키지 관리자가 있는지 모르겠습니다 .. =)

어쨌든 당신은 항상 위에서 언급 한 Sandy와 같이 수동으로 패키지를 컴파일 할 수 있습니다 =) 또한 apt-get 또는 portage 다른 배포판의 패키지 관리자 ...

4
holms

설치하려는 특정 프로그램이나 응용 프로그램과 함께 제공되는 설명서를 읽는 것이 가장 좋습니다. 일반적으로 tarballs (보통 다운로드 할 수있는 응용 프로그램 소스 아카이브) 안에 readmes/README가 있거나 해당 응용 프로그램을 설치하는 기본 방법이 무엇인지 읽고 배울 수있는 INSTALL 파일이 있습니다. 한마디로 RTFM;)

2
reiche

FreeBSD에서 포트 콜렉션 사용에 대한 요약 :

포트 찾기

포트는 범주별로 구성되므로 포트가 어떤 범주인지 모르면 먼저 포트를 찾아야합니다.

cd /usr/ports
make search name=myport

때로는 그런 식으로 너무 많은 항목이 있습니다. 나는 개인적으로 선호합니다 :

find /usr/ports -name myport* -print -depth 2

여러 버전의 포트가 사용 가능한 경우가 많으므로 검색시 *를 사용하십시오. 심도 인수는 반환 결과가 원하지 않는 일치 항목으로 불필요하게 어수선 해지지 않도록합니다.

구성

종종 일부 구성을 원할 것입니다. Apache 및 Postgres와 같은 소프트웨어에는 실제로 필요합니다. 명령 행, 환경 및 구성 파일 작성의 세 가지 주요 선택 사항이 있습니다. 명령 행을 시작하려면 다음을 수행하십시오.

make showconfig

기본 구성 옵션이 표시됩니다. 기본값을 좋아한다면 컴파일하고 설치할 준비가 된 것입니다. 그렇지 않은 경우

make config

원하는 옵션을 선택할 수있는 대화 상자가 나타납니다. (선택한 옵션으로 포트를 구성하는 make configure와 이것과 혼동하지 마십시오!) 이것은 충분하지만 Apache와 같은 일부 소프트웨어의 경우 복잡한 구성이 종종 있습니다. 간단한 대화는 처리되지 않습니다. 이를 위해, Makefile (들)도 살펴보아야합니다. Makefile (들)은 때때로 당신에게 더 많은 정보를 제공 할 make를위한 추가 대상을 제공합니다. Apache 예제를 계속하려면

make show-modules
make show-options
make show-categories

선택한 모듈, 스레드 옵션 등을 설정하는 방법에 대한 정보를 제공합니다. 포트의 기본값이 대부분 괜찮고 몇 가지 사항 만 변경하려는 경우 환경 변수와 같은 key = value 쌍을 전달할 수도 있습니다.

make MYVBL1=MYVAL1 ... install clean

또한 -D 옵션을 통해 스위치 옵션을 설정할 수 있습니다.

make -D MYVAR -D MYOTHERVAR ... install clean

그러나 복잡한 구성의 경우 명령 행이 제대로 작동하지 않으며 처음 두 방법 중 어느 것도 효과적이지 않습니다. 이 경우 구성 파일을 만들어 __MAKE_CONF 변수를 사용하여 make에 전달할 수 있습니다. FreeBSD는 기본 설정 파일 인 /etc/make.conf를 가지고 있으며 일반적으로 이전에 설치된 포트 및 기타 시스템 설정에 대한 정보를 포함합니다. 시작하려면 포트 옵션을 사용하여 파일을 작성하고 ~/myport.mk라고 부르고 해당 파일을 /etc/make.conf와 결합하십시오.

cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf

그런 다음 구성을 다시 확인할 수 있습니다.

make showconfig __MAKE_CONF=~/make.port.conf

그리고 모든 것이 좋아 보인다면 :

make install clean __MAKE_CONF=~/make.myport.conf

조심해! make configure 또는 전체 또는 일부 설치 후에 구성 설정을 조정해야하는 경우 반드시 구성을 먼저 지워야합니다 :

make rmconfig

그렇지 않으면 포트 서브 시스템, 포트의 make 기본값 및 원하는 구성간에 예기치 않은 상호 작용이 발생합니다.

요약하면 많은 것이지만 구성의 복잡성은 주로 포트가 아니라 앱에 관한 것입니다. 예를 들어 Bash는 실제로 옵션이 없습니다.

설치

이것은 쉬운 부분입니다.

make install clean

또는 당신은 할 수 있습니다

make build
make install
make clean

더 많은 타이핑입니다.

거의 다됐다. 종속성 및 구성 옵션을 반복적으로 나열하고 패치로 업데이트하는 등의 작업이 더 많이있을 수 있습니다. 여기에서는 HandbookPorts 섹션, 포트 하위 시스템의 매뉴얼 페이지 (추가 make 대상에 대한 유용한 정보) 및 make 매뉴얼 페이지를 참조합니다. .

1
gvkv

최근 패키지 관리자 외부의 소스에서 설치할 때 "Checkinstall"을 사용하기 시작했습니다. 타사 tarball에서 "패키지"를 빌드 한 다음 패키지 관리자 도구를 통해 설치 및 관리 (및 제거) 할 수 있습니다.

이 기사를 확인하십시오- http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh