소스에서 프로그램을 컴파일하고 설치하는 방법 작업을 수행하는 설치 관리자

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

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

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



답변

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

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

  1. 특정 소스 코드 버전의 릴리스 인 tarball (tar.gz 또는 tar.bz2 파일)을 다운로드하십시오.
  2. 같은 명령으로 타르볼의 압축을 풉니 다 tar zxvf myapp.tar.gzgzip으로 압축 된 타르볼 또는 tar jxvf myapp.tar.bz2bzip으로 압축 된 타르볼을 위해
  3. 위에서 만든 디렉토리로 cd
  4. 운영 ./configure && make && sudo make install

또는:

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

configure와 autogen.sh는 소프트웨어 설치 위치를 지정하기 위해 –prefix 인수를 허용합니다. 나는 밖으로 확인하는 것이 좋습니다 나는 나 자신을 컴파일 소프트웨어를 넣어야 어디? 맞춤형 소프트웨어를 설치하기 가장 좋은 장소에 대한 조언.


답변

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

BSD 시스템에서 ports: Ports Collection 사용하기

데비안에서 apt-get패키지 관리자가 너무 소스에서 설치할 수 있습니다 APT HOWTO를 : 소스 패키지 작업 (동일 우분투, 리눅스 민트 데비안을 기반으로 다른 모든 것들에 간다)

젠투 배포본은 portage패키지 관리자를 사용하는데,이 패키지 관리자는 소스에서만 전체 시스템을 컴파일합니다 : 포티지 소개 .

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

어쨌든 위에서 언급 한 Sandy와 같이 항상 수동으로 패키지를 컴파일 할 수 있습니다 =) 또한 다른 배포판에서 패키지 관리자 를 사용 apt-get하거나 사용할 수 있어야합니다 portage


답변

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


답변

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 (들)은 때때로 당신에게 더 많은 정보를 줄 수있는 추가 대상을 제공 할 것입니다. 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__MAKE_CONF 변수 를 사용하여 전달할 수 있습니다. 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

더 많은 타이핑입니다.

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


답변

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

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