다음 패키지가 다시 보관되었습니다.

다음 패키지가 다시 보관되었습니다.

저는 64비트 Debian Wheezy를 실행하고 있습니다. 최근에 나는 apt-get upgrade이것을 얻습니다:

The following packages have been kept back:
  libsmbclient libtevent0 samba-libs

그것은 나를 미치게 만든다. 나는 어쨌든 삼바를 사용하지 않기 때문에 삼바를 제거했지만 어떤 천재가 Gnome을 삼바에 의존하게 만들었습니다.

# apt-get remove libsmbclient
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  gnome gnome-core gvfs-backends libgnomevfs2-extra libsmbclient mencoder mplayer

해당 패키지를 안전하게 업그레이드하려면 어떻게 해야 합니까?

사용자 정의 항목이 많이 설치되지 않았습니다.

deb http://ftp.pl.debian.org/debian/ wheezy main 
deb-src http://ftp.pl.debian.org/debian/ wheezy main 

deb http://security.debian.org/ wheezy/updates main 
deb-src http://security.debian.org/ wheezy/updates main 

# wheezy-updates, previously known as 'volatile'
deb http://ftp.pl.debian.org/debian/ wheezy-updates main 
deb-src http://ftp.pl.debian.org/debian/ wheezy-updates main 

# wheezy-backports
deb http://ftp.pl.debian.org/debian/ wheezy-backports main contrib non-free

# virtualbox
deb http://download.virtualbox.org/virtualbox/debian/ wheezy contrib

[업데이트]

내가 시도한 것:

  1. apt-get dist-upgrade- 결과는 동일합니다(패키지는 다시 보관되었습니다).
  2. Used aptitude이지만 제안하는 것은 gnome 및 기타 gnome 관련 패키지를 제거하고 많은 i386 패키지(libs에만 해당)를 설치하는 것입니다.
  3. apt-get install libsmbclient준다libsmbclient : Depends: samba-libs (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed
  4. apt-get install libtevent0을 제공합니다 libtevent0 : Depends: libtalloc2 (>= 2.1.0) but 2.0.7+git20120207-1 is to be installed.
  5. apt-get install samba-libs준다samba-libs : Depends: samba-dsdb-modules (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed

[업데이트 2]

이 문제의 원인은 백포트 저장소 어딘가에 있는 것 같습니다. 한번은 Bumblebee와 DVD 리핑 작업을 실험하고 있었는데 백포트에서 뭔가를 설치해야 했던 기억이 납니다. 더 이상 필요하지 않습니다. 어쨌든 내 하드웨어에서는 Bumblebee가 실패했고 결국 Windows에서는 DVD가 찢어졌습니다.

이제 나는 이것을 얻었고 aptitude search '~S ~i ~Abackports'이것을 얻었습니다:

i   initramfs-tools                   - generic modular initramfs generator
i A libavutil53                       - Libav utility library
i   libldb1                           - LDAP-like embedded database - shared library
i A libnettle4                        - low level cryptographic library (symmetric and one-way cryptos)
i A libntdb1                          - New Trivial Database - shared library
i A libopus0                          - Opus codec runtime library
i   libswscale2                       - Libav video scaling library
i A libtdb1                           - Trivial Database - shared library
i A libwbclient0                      - Samba winbind client library
i A python-talloc                     - hierarchical pool based memory allocator - Python bindings
i   samba-common                      - common files used by both the Samba server and client

나는 이 패키지를 다운그레이드해야 한다고 생각합니다. 그러면 모든 것이 괜찮을 것입니다. 내가 맞나요? 어떻게 해야 하나요?

[업데이트 3]

백포트 저장소에서 해당 패키지를 제거하거나 다운그레이드하려고 시도했지만 부분적으로만 수행했습니다.

다운그레이드하고 싶었을 때 libntdb1안정적인 저장소에 존재하지 않는다는 것을 깨달았습니다. 내가 그것을 제거하려고 시도했을 때 - 다시 apt도 그놈을 제거하고 싶었습니다. 내가 그랬을 때 apt-cache rdepends libntdb1역 의존성만이 samba-libs. 안정적인 저장소에도 없고 samba-libs제거할 수도 없습니다. 그 이유는 다시 한 번 그놈과 많은 항목을 제거하려고 시도하기 때문입니다. 대체 무슨 일이 일어나고 있는거야? samba-libs내가 할 때는 나열되지 않습니다 aptitude search '~S ~i ~Abackports'. 이 일을 제거하는 방법?

또한 다운그레이드를 시도했지만 두 경우 모두 그놈을 제거하고 싶었 기 때문에 다운 libldb1그레이드 libwbclient0할 수 없었습니다 . apt왜?

이제 다음과 같이 나열된 백포트 저장소의 세 가지 패키지가 만들어졌습니다 aptitude search '~S ~i ~Abackports'.

i   libldb1              - LDAP-like embedded database - shared library
i A libntdb1             - New Trivial Database - shared library
i A libwbclient0         - Samba winbind client library

그리고 samba-libs이는 분명히 백포트에서도 제공되지만 다음과 같이 나열되지 않습니다.aptitude search '~S ~i ~Abackports'

답변1

다음을 사용하여 deb 패키지를 특정 저장소로 다운그레이드할 수 있습니다 apt.

# apt-get install libsmbclient/wheezy libtevent0/wheezy samba/wheezy
  • "[package]/wheezy" 구조는 사용자가 wheezy 저장소에서 패키지를 원한다는 것을 의미합니다.오직최신 것은 아닙니다.
  • 지정하는 것이 중요합니다.모두원하는 패키지를 한 번에 사용하면 apt종속성을 올바르게 해결하고 다른 wheezy 패키지를 가져올 수 있습니다.

apt보관하고 싶은 중요한 패키지를 삭제하라는 메시지가 표시되지 않으면 그대로 두는 것이 좋습니다 . 종속성 문제에 대한 몇 가지 경고가 있지만 치명적이지 않은 한 해당 경고를 무시해도 안전합니다.

다운그레이드가 성공한 후에는 libtevent0, libldb1 등과 같은 라이브러리가 더 이상 필요하지 않습니다. apt-get --purge autoremove및/또는 deborphan(설치된 경우)을 사용하여 시스템에서 유용하지 않은 고아 패키지를 찾고 정리할 수 있습니다.

(내 이전 답변은 무효화되고 곧 삭제될 예정입니다. 어쨌든 올바르지 않습니다. 로 다운그레이드할 수 있습니다 apt.)

답변2

나는 aptitude의 대화형 패키지 솔버를 사용합니다.

달리다 sudo aptitude. 그런 다음 U(대문자 u)를 입력하여 모든 것을 업그레이드하겠다고 말합니다. 갈등이 있음을 알리고, 이를 해결하기 위한 제안을 하게 됩니다. 사용하여 e대화형 솔버에 들어간 다음 .(점)과 ,(쉼표)를 사용하여 찾을 다른 솔루션을 반복한 다음 !솔루션 중 하나를 적용합니다.

또한 솔루션의 일부(예: 그놈 제거를 제안하는 곳)로 이동하여 더 나은 솔루션을 찾는 데 도움을 줄 수 있으며 해당 항목을 수락( 사용 A)하거나 거부( 사용 R) 하겠다고 알릴 수도 있습니다. 그것은 그것을 한다.

답변3

가장 빠르고 쉬운 솔루션:

각 패키지를 개별적으로 설치해야 합니다.

이것 좀 봐수퍼유저해결책: 적절한 패키지 보관 솔루션

경고: 실행되지 않습니다 sudo apt-get dist-upgrade설치해야 하는 패키지를 완전히 설치한 후까지. 그 후에, 그리고 그 후에만 sudo apt-get update&를 실행할 수 있습니까?sudo apt-get dist-upgrade

답변4

터미널을 열고 다음을 입력하세요.

apt-cache rdepends packagename

교체하고패키지 이름제거하려는 패키지를 사용하면 제거하려는 패키지가 필요한 패키지가 나열됩니다. 먼저 해당 패키지를 제거한 다음 실제 패키지를 제거해 보세요.

관련 정보