apt-get build-dep에서 소스 패키지를 찾을 수 없습니다

apt-get build-dep에서 소스 패키지를 찾을 수 없습니다

나는 팔로우했다이 가이드Ubuntu 12.04에서 마우스 가운데 버튼 붙여넣기를 비활성화합니다.

기적적으로 작동합니다.

이제 저는 Linux Mint 17에서 동일한 목표를 달성하려고 합니다. 내가 시도할 때

sudo apt-get build-dep libgtk2.0-0

그것은 나에게 다음과 같은 결과를 제공합니다.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

나에게는 apt-get이 어떻게든 "해결" 'libgtk2.0-0'되는 것처럼 보이지만 'gtk+2.0'비슷한 이름을 가진 패키지는 찾지 못합니다.

Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'편집: 이제 프로그램을 컴파일할 수 있지만(내 답변 참조) 여전히 그것이 무엇을 의미하는지 모르겠습니다 . 이에 대한 통찰력을 주시면 대단히 감사하겠습니다. 감사합니다!

답변1

다른 사람들이 이미 지적했듯이 deb …합계의 모든 항목에 대해 일치하는 항목이 있는지 확인하십시오. 나머지 줄은 동일해야 합니다./etc/apt/sources.list/etc/apt/sources.list.d/*deb-src …

deb항목은 바이너리 패키지(즉, 설치 준비 완료)용이고, 이 deb-src항목은 소스 패키지(즉, 컴파일 준비 완료)용입니다. 두 패키지는 매우 다르게 관리되기 때문에 분리됩니다. 바이너리 패키지에는 종속성 추적 메커니즘과 현재 설치 목록이 있는 반면, 소스 패키지는 쉽게 다운로드할 수 있도록 추적만 됩니다. 패키지 저장소를 논의할 때 다음 용어에 유의하십시오.원천서로 관련이 없는 두 가지를 의미합니다. 하나는 패키지가 다운로드된 위치의 소스이고 다른 하나는 바이너리 패키지가 아닌 소스 패키지입니다.

libgtk2.0-0바이너리 패키지의 이름입니다. 이라는 소스 패키지로 구축되었습니다 gtk+2.0. 소스 패키지 이름과 바이너리 패키지 이름이 항상 일치하지 않는 이유는 소스 패키지를 빌드하면 여러 바이너리 패키지가 생성될 수 있기 때문입니다. 예를 들어 gtk+2.014개 패키지의 소스 코드는 두 개의 라이브러리( libgtk2.0, libgail)로 분할되어 해당 패키지를 사용합니다. 라이브러리 빌더( …-dev), 개발자 문서( …-doc), 컴패니언 프로그램( libgtk2.0-bin) 등

(패키지가 설치된 경우) 또는 Source: …의 출력에서 ​​해당 행을 검사하여 바이너리 패키지가 어떤 소스 패키지 이름에 해당하는지 확인할 수 있습니다.dpkg -s BINARY_PACKAGE_NAMEapt-cache show BINARY_PACKAGE_NAME

소스 패키지에서 생성된 바이너리 패키지를 나열할 수 있습니다 aptitude search '?source-package(^SOURCE_PACKAGE_NAME$).

이 명령은 apt-get source소스 코드 패키지를 다운로드합니다. 제공한 인수가 알려진 소스 패키지가 아닌 경우 설치 가능한 바이너리 패키지 데이터베이스에서 이를 찾아 해당 소스 패키지를 다운로드하려고 시도합니다.

이 명령은 apt-get build-dep소스 패키지의 이름을 파생시키는 것과 동일한 방법을 따른 다음 소스 패키지 데이터베이스에서 바이너리 패키지 목록(필드의 목록 Build-Dep:)을 쿼리하고 해당 바이너리 패키지를 설치합니다.

소프트웨어 소스 GUI에는 공식 리포지토리에 대한 "소스 코드로 리포지토리 활성화" 확인란이 있으므로 선택되어 있는지 확인하세요. 타사 저장소를 수동으로 추가하는 경우 deb-srcdeb줄을 모두 추가해야 합니다.

답변2

명령줄 모드

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

Ubuntu 18.04 Docker 이미지에서 테스트되었습니다. 이렇게 변경한 후에는 다음을 성공적으로 수행할 수 있습니다.

sudo apt-get build-dep hello

변경 전에는 다음 오류로 인해 실패했습니다.

E: You must put some 'source' URIs in your sources.list

또한보십시오:https://askubuntu.com/questions/496549/error-you-must-put-some-source-uris-in-your-sources-list/857433#857433

software-properties-gtk옵션 "소스 코드"

GUI에서 다음을 실행할 수 있습니다.

software-properties-gtk

그런 다음 "Ubuntu 소프트웨어" 탭에서 "소스 코드"를 클릭하세요.

여기에 이미지 설명을 입력하세요.

deb-src이로 인해 몇 줄이 추가되었으며 /etc/apt/sources.list이제 할 수 있습니다 sudo apt-get build-dep <package>.

Ubuntu 16.04~18.04에서 테스트되었습니다.

답변3

@steeldriver 덕분에 무엇을 해야할지 알고 있습니다.

방금 내 항목에 다음 링을 추가했습니다 /etc/apt/sources.list.

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

deb-src 저장소에는 컴파일에 필요한 소스 패키지가 포함되어 있습니다(바이너리, 바로 설치 가능한 패키지 아님).

편집: 이것을 추가한 후 해야 할 일sudo apt-get update

관련 정보