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


16

우분투 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'의미 인지 알지 못합니다 . 이것에 대한 통찰력은 감사 할 것입니다!


deb-src/etc/apt/sources.list에서 관련 리포지토리 를 활성화 했습니까 ?
스틸 드라이버

답변:


18

다른 사람들이 이미 언급했듯이 및의 모든 deb …항목에 대해 일치하는 항목 이 있는지 확인하십시오 . 나머지 줄은 동일해야합니다. 항목은 (즉, 설치 준비) 바이너리 패키지입니다 (컴파일 즉 준비) 소스 패키지입니다. 두 종류의 소스가 분리되는 이유는 소스가 매우 다르게 관리되기 때문입니다. 바이너리 패키지에는 종속성 추적 메커니즘과 현재 설치된 목록이 있고 소스 패키지는 추적 만 가능하므로 편리하게 다운로드 할 수 있습니다. 패키지 리포지토리를 논의 할 때 소스 라는 단어 는 패키지를 다운로드 할 위치와 같은 소스와 바이너리 패키지와 반대되는 소스 패키지 라는 두 가지 관련이없는 것을 의미합니다./etc/apt/sources.list/etc/apt/sources.list.d/*deb-src …debdeb-src

libgtk2.0-0이진 패키지의 이름입니다. 라는 소스 패키지에서 빌드됩니다 gtk+2.0. 소스와 바이너리 패키지 이름이 항상 일치하지 않는 이유는 소스 패키지를 빌드하면 여러 바이너리 패키지를 생성 할 수 있기 때문입니다. 예를 들어, gtk+2.0두 개의 라이브러리 ( libgtk2.0, libgail ), corresponding packages to build programs using these libraries (… -dev ), documentation for developers (… -doc ), companion programs (libgtk2.0- bin`) 로 분할 된 14 개 패키지의 소스입니다 .

(패키지가 설치된 경우) 또는 Source: …의 출력 에서 행 을 확인하여 이진 패키지에 해당하는 소스 패키지의 이름을 볼 수 있습니다 . 소스 패키지에서 생성 한 이진 패키지를로 표시 할 수 있습니다 .dpkg -s BINARY_PACKAGE_NAMEapt-cache show BINARY_PACKAGE_NAMEaptitude search '?source-package(^SOURCE_PACKAGE_NAME$)

이 명령 apt-get source은 소스 패키지를 다운로드합니다. 알려진 소스 패키지가 아닌 인수를 제공하면 설치 가능한 바이너리 패키지의 데이터베이스에서 해당 패키지를 찾아 해당 소스 패키지를 다운로드하려고 시도합니다. 이 명령 apt-get build-dep은 소스 패키지 이름을 추론하기 위해 동일한 접근 방식을 따른 다음 소스 패키지 데이터베이스를 쿼리하여 이진 패키지 목록 ( Build-Dep:필드 의 목록 )을 가져 와서 이진 패키지를 설치합니다.

소프트웨어 소스 GUI에는 공식 리포지토리에 대해 "소스 코드로 리포지토리 활성화"확인란이 있습니다. 체크 표시가되어 있는지 확인하십시오. 써드 파티 저장소를 수동으로 추가하는 경우 deb-srcdeb라인을 모두 추가해야합니다 .


6

@steeldriver 덕분에 어떻게해야할지 알아 냈습니다.

내 다음에 링을 추가해야했습니다 /etc/apt/sources.list.

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

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

편집 : 이것을 추가 한 후 실행해야합니다 sudo apt-get update


5

CLI 방법

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

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

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

software-properties-gtk

그런 다음 "Ubuntu Software"탭에서 "Source code"를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

이것은 deb-src아래 에 몇 줄 을 추가 /etc/apt/sources.list했으며 이제는 할 수 있습니다 sudo apt-get build-dep <package>.

우분투 16.04에서 18.04에서 테스트되었습니다.

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