깨진 패키지를 무시하도록 적성


9

Karmic의 Lucid에서 Amsynth를 설치했습니다.

dpkg --force-depends-version -i amsynth_1.2.2-1_i386.deb

Lucid 버전을 설치하는 이유는 Karmic 버전이 3 살이고 내 컴퓨터에서 충돌하기 때문입니다. Lucid Amsynth 패키지는 Karmic보다 최신 버전의 libatk1 및 libjack0에 의존하지만 위험을 감수하고 Amsynth가 제대로 실행되는 것으로 나타났습니다.

그러나 적성은 업그레이드 할 때마다 Amsynth를 제거하려고 시도합니다. 나는 그것을 막을 수 있었지만 이제 적성이 중단되었다고 생각합니다. 손상된 패키지를 무시하고 계속 수행 할 적성을 어떻게 알 수 있습니까?


지금은 방금 제거했습니다. 다시 필요할 때마다 다시 설치하면 너무 오래 걸리지 않습니다. 다시 컴파일하기에 충분히 버그가 있습니다.

최신 릴리스의 제품이 필요하고 최신 라이브러리가 필요한 경우 일반적으로 패키지를 가져 오거나 소스 패키지를 다운로드하여 시스템에서 다시 빌드하십시오. 그러나 타사 패키지를 사용하려고 시도했지만 해킹이 필요합니다.
Jan Hudec

답변:


7

deb-file 및 dpkg를 통해 프로그램을 설치 한 경우 설치된 .deb 파일의 종속성을 수동으로 변경할 수도 있습니다. 나는이 극단적 인 척도로 한 번 운전했다 ...

ar x foo.deb
vim control.tar.xz  # see below
ar r foo.deb control.tar.xz
dpkg -i foo.deb

dpkg는 더 이상 foo의 종속성에 대해 알지 못합니다. vim에서 ./control을 선택해야합니다 (vim을 사용하여 압축 파일을 읽습니다-압축을 풀고 다른 편집기를 사용하고 원하는 경우 다시 압축하십시오).

Depends: foo bar

1
dpkg-deb대신 을 사용 하는 것이 좋습니다 ar. ar나중에 변경 될 수있는 dpkg 구현 세부 사항입니다.
jmtd

고마워,이 솔루션은 나를 위해 일했지만 apt-get 업그레이드를 할 때 "다음 패키지가 다시 유지되었습니다 : numptyphysics : i386"(apt-get dist-upgrade는 아무 말도하지 않습니다)라는 메시지가 나타납니다. 이 메시지는 정상입니까? 제거 할 수 없습니까?
baptx

7

Ubuntuforums 에는 해킹 된 솔루션이 있습니다 . ~ quack의 솔루션은 더 좋지만 더 많은 작업이 필요합니다.

나는 이것에 대해 구글에서 아무것도 찾을 수 없었고, 자신의 '더미 패키지'(컴파일 된 패키지를 제거하지 않고는 불가능하다. 이미 도구가있을만큼 운이 없다면) 불가능하지만 내 하드 드라이브를 검색하면 나에게 주었다. 결국 대답!

알고 싶은 사람이라면 시냅틱 / 적성 / apt-get 패키지를 제거하지 않고 "파괴"하는 방법이 있습니다.

우선, 설치 한 패키지와 그 패키지에 의존하여 패키지의 상태를 확인하십시오. 저장소에없는 오래된 패키지에 따라 사과를 강제로 설치했다고 가정 해보십시오.

터미널 유형 코드에서 :

sudo gedit /var/lib/dpkg/status

다음과 같은 것을 찾을 때까지 사과에서 파일을 검색하십시오.

암호:

Package: apples
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 316
Maintainer:
Architecture: i386
Source: applesauce
Version: 1.0.10-1
Depends: packageA, packageB, obsolete
Description: Apples on your desktop!

Depends : 행에서 쓸모없는 것을 제거하고 파일을 저장하면 완료됩니다. 이것이 일부 사람들을 돕기를 바랍니다.


ick. 좋은 발견이지만 패키지 관리자에게 거짓말을하는 팬은 아닙니다 (기본적으로 해킹이하는 일입니다). APT를 전혀 사용하지 않는 것이 좋을 것입니다. 따라서 자신의 패키지를 컴파일하는 것이 좋은 이유입니다. 종속성이 깨지지 않고 패키지 관리자에게 거짓말이 없습니다.
quack quixote

패키지 관리자에 거짓말하는 데 아무런 문제가 없습니다. 특히 몇 달 안에 OS를 다시 설치하기 때문에 스레드에서 참조되는 파일을 찾을 수 없습니다.

기묘한. 거기 있어야합니다. "cd / var / lib / dpkg"를 수행 한 다음 "sudo nano status"를 시도하십시오.
Iain

1
링크가 더 이상 작동하지 않습니다. 이것이 바로 링크 전용 답변이 여기에 뿌려지는 정확한 이유입니다. 여기에 설명하면 정답입니다.
Jan Hudec

이것이 영구적인지 아닌지는 모르지만, 더 이상 사용할 수없는 Java 버전에 의존성이 강한 패키지를 설치하는 것은 괜찮은 수정처럼 보입니다.
krispy

2

aptitude의 환경 설정 섹션 (메뉴로 이동하려면 Ctrl-T, 옵션 아래)에서 "종속성 처리" 섹션에서 "설치 또는 제거하기 전에 손상된 패키지를 자동으로 수정 하십시오 " 라는 옵션의 선택을 취소하십시오 . 따라서 다른 패키지를 변경할 때마다 패키지 수정 시도가 중단됩니다.

보다 영구적 인 수정 사항으로, 설치 한 Lucid Amsynth 패키지의 소스 패키지와 libatk1libjack0의 소스 패키지를 가져 와서 직접 업데이트 된 패키지를 빌드해야합니다. 해당 라이브러리를 사용하는 다른 항목에 따라 다른 패키지도 업데이트해야 할 수도 있지만 그 패키지만으로도 벗어날 수 있습니다. (이것은 본질적으로 해당 패키지를 Lucid에서 Karmic 으로 백 포트 하는 것입니다. Karmic-backports 리포지토리 또는 PPA를 확인하여 다른 사람이 이미이 작업을 수행했는지 확인하십시오. 새 패키지가 작동하는 경우 다른 사람이 사용할 수 있도록 Karmic-backports로 보내십시오. )


감사합니다. 첫 번째 제안을 시도했지만 차이가없는 것 같습니다. 업데이트는 중단됩니다. 또한 Lucid 패키지를 설치하기 전에 컴파일을 시도했지만 운이 없었습니다. 나중에 다시 시도 할 수 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.