소스 코드를 얻은 다음`sudo make install`을 실행하여 프로그램을 설치했습니다. 'apt-get'을 어떻게 알 수 있습니까?


46

나는 (예를 들어, 전화를 프로그램을 설치 한 progA소스 코드에서 구축 한 다음 마지막으로 호출하여) sudo make installsudo ldconfig.

그러나, 보인다 apt-get설치할 때 때문에, 메모를 못 잊는 progB에 의존하는, progA, apt-get나는 또한 설치하는 것이 좋습니다 progA. 왜 이런 일이며 어떻게해야합니까?


progB수동으로 설치 해야 한다고 생각합니다 .
Parto

11
작성한 '사용자 정의'버전이 패키지와 동일하다고 가정 할 수는 없습니다. 바로 가기 (권장하지 않음)는 실제 패키지를 설치 한 다음 바이너리를 'special'로 덮어 쓰는 것입니다. 구체적이지 않기 때문에 더 이상의 조언을 제공 할 수 없습니다.
david6

6
이러지 마 패키지 관리를 통해 소프트웨어를 관리하는 소프트웨어와 항상 별도로 관리하십시오.
Reinier Post

답변:


56

TL; DR checkinstall 은 당신의 친구입니다 ;)

sudo apt-get install checkinstall

sudo make install패키지 관리자를 사용한 설치 후에는 이 설치에 대해 전혀 알지 못합니다. 그러나 우분투 리포지토리 또는 PPA에서 동일한 이름의 패키지에 대해 모두 알고 있습니다.

패키지 관리자가이 버전을에 대한 올바른 종속성으로 승인하는지 확인하려면 저장소에서 버전으로 사용 sudo checkinstall하지 않고 sudo make install상위 버전을 사용하십시오 ProgB.


추가 정보 :

checkinstallmake install패키지를 빌드하는 방법을 파악하기 위해 명령이 수행하는 작업을 따르기 때문에 정말 훌륭 합니다.

즉,를 사용하여 프로그램을 설치 한 make install다음 죄를 회개하려면 다음 sudo checkinstall -D make install과 같이해야합니다.

  1. 따라 make install그것이 무엇을 알아낼

  2. make install* .deb 패키지 양식을 제외한 copy-cat

  3. 패키지에서 설치 (정확히 make install1 번 주어진 위치에 있음)를 제외 하고 홈 디렉토리에 넣은 파일을 포함하기 위해 YES를 선택 apt-get하는 한 파일을 어디에 두 었는지 정확하게 덮어 씁니다. 패키지에서- 프로세스 중 몇 가지 옵션을 사용 하면 선택할 수 있습니다 (물론 선택 사항이 있으므로 사례별로 연습 할 수 있습니다)make installmake installcheckinstall

보너스 : 지금까지 설명한 프로세스 에 따라 지원 하지 않는 ode를 사용하여 설치된 패키지를 제거 ( progA다시 호출) 할 수도 있습니다make installmake uninstallcheckinstall .

dpkg -r progA

18
와우 checkinstall-세계는 이것에 대해 알아야합니다!

어제 구현하려는 시도 와이 메타 질문의 권장 사항을 기반으로 답변에 세부 사항 을 추가했습니다. 추가로 자유롭게 편집하십시오!

어떤 세부 사항을 의미합니까?
AB

아, 나는 그들이 편집 검토에 있기 때문에 아직 나타나지 않았다고 생각합니다. 메타 질문에 대한 링크를 클릭하면 그들이 무엇인지 볼 수 있습니다 (원래, 나는 질문 본문에 넣었지만 권장 답변은 허용 된 답변 본문에 넣어야한다는 것입니다).

패키지 문서 디렉토리 ./doc-pak가 없습니다. 기본 패키지 문서 세트를 만들어야합니까?
n8chz

13

세 가지 옵션 :

  1. 다음에 대한 가짜 패키지 만들기 progA: 설치된 패키지 버전을 가짜로 만드는 방법? TeXlive에 대한 광범위한 예가 있습니다.

  2. 패키지 작성 에 대한을 progA그것이이있는 경우 쉽게 checkinstall: 옵션을 어떻게 적절한 종속성을 속여을?

  3. progB소스에서 빌드하십시오 .


1
4. progA컴파일 한 버전을 제거하고 버전을 설치하십시오 apt-get. 5. apt-get컴파일 된 버전 위에 패키지를 설치하고 최선을 다하십시오.
jwodder

1

uupdatefrom을 사용 devscripts하고 원본이 이전에 빌드 된 것처럼 패키지를 빌드하는 것이 좋습니다 .

필수 패키지 설치

$ sudo apt-get install build-essential devscripts

공식 저장소에서 이전 패키지를 다운로드하고 ( MediaWiki예로 사용 ) 업스트림에서 새 타르볼을 다운로드하십시오 .

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz

uupdate업스트림 타르볼과 기존 소스에서 새 소스 폴더를 생성하기 위해 실행debian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.26.0.tar.gz 1.26.0
$ cd ../mediawiki-1.26.0

이제 debian/controletc 파일 을 변경해야하는지 확인해야 합니다. 완료되면 deb 패키지를 빌드하고 설치할 수 있습니다

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.