
저는 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
[업데이트]
내가 시도한 것:
apt-get dist-upgrade
- 결과는 동일합니다(패키지는 다시 보관되었습니다).- Used
aptitude
이지만 제안하는 것은 gnome 및 기타 gnome 관련 패키지를 제거하고 많은 i386 패키지(libs에만 해당)를 설치하는 것입니다. apt-get install libsmbclient
준다libsmbclient : Depends: samba-libs (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed
apt-get install libtevent0
을 제공합니다libtevent0 : Depends: libtalloc2 (>= 2.1.0) but 2.0.7+git20120207-1 is to be installed
.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
교체하고패키지 이름제거하려는 패키지를 사용하면 제거하려는 패키지가 필요한 패키지가 나열됩니다. 먼저 해당 패키지를 제거한 다음 실제 패키지를 제거해 보세요.