프로그램 컴파일하기 :: 이전 프로그램으로 무엇을 해야 할까요?

프로그램 컴파일하기 :: 이전 프로그램으로 무엇을 해야 할까요?

저는 오픈 소스 개발의 세계에 뛰어들려고 하는데 다음과 같은 질문이 있습니다.

저는 최신 버전을 컴파일하고 싶을 때마다 주로 tar 볼을 다운로드해서 컴파일합니다. 그러나 결국에는 동일한 소프트웨어의 두 가지 버전이 생성됩니다. 하나는 sudo apt를 통해, 다른 하나는 컴파일을 통해 수행됩니다. 이 문제를 어떻게 처리합니까?

sudo apt'ed 버전을 삭제하고 개발 버전을 유지해야 합니까, 아니면 둘 다 그대로 유지해야 합니까?

또한 어리석은 질문이라는 것을 알지만 내 코드가 최신인지 어떻게 확인할 수 있나요? 매일 나이틀리 빌드를 다운로드(또는 체크아웃)하고 컴파일해야 합니까?매일?

답변1

다양한 버전을 처리하는 방법은 귀하에게 달려 있습니다. 어떤 종류의 소프트웨어인지에 따라 다릅니다.

예, 직접 컴파일하고 소프트웨어를 선택하는 경우 수동으로 최신 상태를 유지해야 합니다. 이는 새로운 소스를 다운로드하고 적용하는 것을 의미합니다. 프로그램이 컴파일된 언어로 작성된 경우 소스를 변경한 후 해당 프로그램을 다시 컴파일해야 합니다.

그러나 apt-get 버전과 자체 컴파일된 버전 중에서 선택할 필요는 없습니다. 어쨌든 소프트웨어를 설치하기 전에 소프트웨어를 패키징하고 설치해야 합니다. 당신은 확실히 얻고 배우고 싶을 것입니다 checkinstall. 사용하기가 매우 쉽습니다. 대신에 sudo make install, 당신은 할 것입니다 sudo checkinstall. 그런 다음 패키지에 대한 양식을 작성하라는 메시지가 표시되고 해당 패키지가 설치됩니다.

이것은 약간의 노력이 필요한 것처럼 들릴 수 있습니다. 그리고 그렇습니다. 그러나 이를 근본적으로 개선할 수 있는 방법이 있습니다.

  1. 코드의 로컬 분기를 유지하십시오.
  2. 업스트림에서 마지막으로 가져온 이후에 발생한 변경 사항만 다운로드하세요.
  3. deb 패키징 정보가 아직 없는 경우 브랜치에 추가하세요. 이렇게 하면 쉽게 최신 상태로 유지할 수 있습니다.
  4. 포크가 얼마나 급진적인 단계인지 정확히 이해하기 위해 휴식을 취하십시오. 브랜치와 업스트림 트렁크 간의 변경 사항이 클수록 수동으로 수행해야 하는 작업도 더 많아집니다.
  5. 위 작업을 자동화하는 스크립트를 작성하세요.
  6. 자신과 다른 사람이 컴파일된 소프트웨어를 더 쉽게 설치하고 사용할 수 있도록 PPA를 보관하십시오.

Launchpad는 위의 작업을 수행할 수 있으므로 최소한의 노력으로 일일 저장소를 얻을 수 있습니다. 이를 빌드 레시피라고 합니다. 여전히 업스트림 트렁크에서 분기하고 자신의 트렁크와 병합한 다음 새 트렁크를 Launchpad로 푸시해야 합니다. 어떤 경우에도 업스트림 코드 변경 사항을 검토하고 싶기 때문에 이는 좋습니다.

따라서 이를 위해서는 더 많은 학습이 필요하지만 일단 올바르게 설정되면 매일의 작업량을 줄일 수 있습니다. 제대로 배우기 위해 시간을 투자하는 것은 정말 가치 있는 일입니다. 실제로 익숙해지는 데 몇 주가 걸리더라도 그렇게 해야 합니다.

관련 정보