apt-get 소스가 요청한 패키지를 가져오도록 어떻게 강제합니까?

apt-get 소스가 요청한 패키지를 가져오도록 어떻게 강제합니까?
$ apt-get source libtiff4
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'tiff3' as source package instead of 'libtiff4'
E: Unable to find a source package for tiff3

-f를 추가하면 동작이 변경되지 않습니다. 이 문제의 원인은 무엇이며, 원하는 패키지를 강제로 다운로드하려면 어떻게 해야 합니까?

검색에 따르면 tiff3에 대한 아이디어를 어디서 얻었는지조차 알 수 없습니다.

$ apt-cache search libtiff
libtiff-doc - TIFF manipulation and conversion documentation
libtiff-tools - TIFF manipulation and conversion tools
libtiff5 - Tag Image File Format (TIFF) library
libtiff5-alt-dev - Tag Image File Format library (TIFF), alternative development files
libtiff5-dev - Tag Image File Format library (TIFF), development files
libtiffxx5 - Tag Image File Format (TIFF) library -- C++ interface
gem-plugin-tiff - Graphics Environment for Multimedia - TIFF support
libtiff-opengl - TIFF manipulation and conversion tools
libtiff4 - Tag Image File Format (TIFF) library (old version)
libtiff4-dev - Tag Image File Format (TIFF) library (old version), development files
libtiffxx0c2 - Tag Image File Format (TIFF) library (old version) -- C++ interface
pngtools - series of tools for PNG (Portable Network Graphics) images
python-libtiff - wrapper to the libtiff library to Python using ctypes

답변1

바이너리 패키지와 해당 소스 패키지 사이에는 1:1 관계가 없습니다. 그 이유는 다음과 같습니다.

  • 어떤 경우에는 단일 소스에서 여러 바이너리 패키지가 파생됩니다.
  • 이름은 바이너리 패키지의 버전을 반영하기 위해 약간 다릅니다.
  • 일부 패키지에는 바이너리가 직접 포함되지 않고 대신 설치해야 하는 종속성 패키지만 지정됩니다.

귀하의 특정 문제를 재현할 수 없습니다. 최신 버전의 Ubuntu가 설치되어 있기 때문일 수 있습니다. 다음은 유사한 라이브러리와 관련된 유사한 문제에 대한 연습입니다(제 예제의 모든 항목은 이미 설치되어 있지만 매핑 및 종속성에 대해 표시된 정보는 여전히 관련이 있습니다). 이는 이러한 유형의 문제를 처리하는 방법에 대한 좋은 힌트를 제공합니다.

다음 패키지를 성공적으로 설치했습니다 libjpeg8.

$ sudo apt-get install libjpeg8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libjpeg8 is already the newest version.

소스를 얻으려고 시도했지만 접미사가 있는 항목으로 다시 매핑되었습니다 -empty.

$ apt-get source libjpeg8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'libjpeg8-empty' as source package instead of 'libjpeg8'
Skipping unpack of already unpacked source in libjpeg8-empty-8c

원하는 패키지의 종속성을 나열하고 다음을 확인합니다 libjpeg-turbo8.

$ apt-cache depends libjpeg8
libjpeg8
  Depends: libjpeg-turbo8
  Replaces: libjpeg8:i386
  Breaks: libjpeg8:i386

의 소스를 설치 libjpeg-turbo8하고 필요한 소스를 얻습니다.

$ apt-get source libjpeg-turbo8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'libjpeg-turbo' as source package instead of 'libjpeg-turbo8'
Skipping unpack of already unpacked source in libjpeg-turbo-1.3.0

답변2

"소프트웨어 및 업데이트"에 "소스 코드" 항목 확인이 표시되어 있는지 확인하세요.

소프트웨어 및 업데이트 스크린샷

그렇지 않은 경우 확인 표시를 하고 터미널을 열고 다음을 수행하십시오.

sudo apt-get update

(패키지 목록이 아닌 경우 확인 표시를 한 후 패키지 목록을 다시 로드하라는 대화 상자가 나타나면 이 작업을 수행할 필요가 없을 것입니다.) 그런 다음 다음을 수행합니다.

apt-get source libtiff4-dev

libtiff4의 소스 코드를 가져옵니다.

관련 정보