소스를 DEB 패키지로 컴파일


34

컴파일 된 소프트웨어를 설치하고 제거하는 데 항상 문제가 있었으므로 설치 / 제거가 용이하도록 소스에서 .deb 패키지로 소프트웨어를 빌드하기로 결정했습니다.

최종 사용자 로서 소스를 .deb 패키지에 쉽고 빠르게 구축 할 수있는 방법을 알고 싶습니다 .

나는 시도했다 :

  • 나를 위해 작동하지 않는 ubucompilator
  • 이 가이드 방법 이지만 너무 길었습니다.

1
Ubucompilator는 흥미로운 프로젝트이며 지금까지의 노력에 박수를 보냅니다. 그러나 검색 한대로 4 ~ 5 개의 하위 수준 명령에 대한 GUI 프런트 엔드 만 제공합니다. 그리고 아니요. 적절한 '.deb'패키지를 쉽게 만드는 데 사용할 수 없습니다.
david6

답변:


47

checkinstall은 달성하려는 작업을 수행합니다. 어떤 파일이 설치되는지 모니터링하고 .deb 패키지에 넣은 다음 설치 및 제거 할 수 있습니다.

함께 설치

apt-get install checkinstall

그런 다음 소스 절차에서 일반 설치를 수행하여 'sudo make install'을 'sudo checkinstall'로 바꿉니다.

  ./configure
  make
  sudo checkinstall

참조 : https://help.ubuntu.com/community/CheckInstall


9

우리는 새로운 패키지에 관한 섹션 이있는 정말 좋은 패키징 안내서를 가지고 있습니다.


1
누군가에게 필요한 모든 정보가 들어 있으므로이 링크를 사용하는 것이 좋습니다. 또한 특정 질문이 있으면 도움을 줄 수는 있지만 소스에서 데비안 패키지를 만드는 전체 절차를 설명하지는 않습니다.
토마스 워드

@ppumkin : 업데이트되었습니다.
tumbleweed

6

make checkinstall여러 번 이 명령을 사용하여 .deb한 서버에서 다른 서버에 설치할 패키지 를 작성했습니다 . 베타 버전을 설치하는 가장 빠른 방법입니다. 작동하지만주의해서 사용해야합니다. .deb패키지 의 많은 기능을 이해하지 못하는 사용자에게는 함정이 있습니다 .

동일한 가정용 앱을 사용하는 20 대의 서버가 있습니다. 각 호스트에 빌드 지원 및 컴파일러를 추가하는 것은 그리 어렵지 않습니다.

새 버전을 20 번 다운로드하고 컴파일하는 명령을 입력하면 시간이 많이 걸립니다. 대안은 작업을 수행 할 스크립트를 업로드 한 다음 스크립트를 실행하는 것입니다. 그러나로 .deb만든 파일을 사용하여 응용 프로그램을 업데이트하는 것이 더 쉬운 경우가 많습니다 checkinstall.


0

임의의 소프트웨어 코드를 .deb에 패키징하는 작업은 소프트웨어가 이미 그 형태로 제공되지 않은 경우, 특히 설치와 비교할 때와 비교할 때 상당히 복잡합니다. 일을 더 단순하게하려면 잘못된 방향으로 가고 있다고 생각합니다.

나는 당신이 그것을 할 수 없다고 말하는 것이 아닙니다. 데비안 개발자들은 그것을 많이합니다. 그러나 원하는 것을하는 가장 간단한 방법은 아닙니다.

소스 "작동"에서 소프트웨어를 컴파일하고 설치하는 방법을 배우는 데 더 집중해야 할 수도 있습니다. 귀하가 선호하는 것은 자신이 설치 한 모든 것이 / usr / local에 있어야한다는 것입니다


sugestion 주셔서 감사하지만 소프트웨어 컴파일에 대해 이미 알고 있습니다. 내 시스템에 컴파일 된 많은 소프트웨어가 있습니다. 내가 힘든 것을 발견하는 것은 업그레이드하거나 제거하는 것입니다. 그래서 나는 deb 파일이 더 편리 할 것이지만
Ashu

deb 패키지가 원활하게 업그레이드 또는 제거 될 수있는 이유는 누군가가 각 패키지에 대해이 작업을 수행하는 스크립트를 작성했기 때문입니다. 또한 dpkg가 어떤 파일인지 확인하는 데 사용할 수있는 다른 많은 설명 메타 데이터를 추가해야했습니다. 당신은 당신을 위해 일을 잘라낼 것입니다.
thomasrutter

1
실제로 플로이드의 대답을 따르십시오. 그것이 실제로 말하는 것처럼 실제로 전체적으로 더 나은 솔루션처럼 보입니다!
thomasrutter

예. 플로이드의 솔루션은 훌륭합니다. 특히 지금은 매우 성숙합니다. 이제는 수많은 서버에서 소스를 구축 할 필요가 없습니다. :)
Jack_Hu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.