Ситуация такая, я делал apt-get dist-upgrade, но делал через ssh, отвлёкся достаточно надолго, чтобы ssh оборвал соединение, пока apt-get ждал от меня подсказок насчёт конфигурирования чего-то там установленного. Когда я присоединился вновь, apt отказывался работать из-за lock-файлов. Мне почему-то подумалось сразу, что не стоит их удалять, но гугл бодро заявлял, что надо удалить и всё будет чики-пуки. Разве что dpkg --configure -a надо будет сделать после этого. Сказано сделано, но dpkg --configure -a говорит, что:
# dpkg --configure -a dpkg: dependency problems prevent configuration of locales: locales depends on glibc-2.13-1; however: Package glibc-2.13-1 is not installed. dpkg: error processing locales (--configure): dependency problems - leaving unconfigured Errors were encountered while processing: locales
И я теперь хрен знает что делать:
# apt-get dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done You might want to run 'apt-get -f install' to correct these. The following packages have unmet dependencies: libc6 : Depends: libc-bin (= 2.11.3-4) but 2.13-38 is installed Recommends: libc6-i686 but it is not installed locales : Depends: glibc-2.13-1 but it is not installable E: Unmet dependencies. Try using -f.
Окей, пробуем -f: (сорри, дальше без форматирования, мне не справится с этим редактором)
# apt-get -f dist-upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
Correcting dependencies… Done
Calculating upgrade… Done
The following packages will be REMOVED:
adduser apache2-utils apt apt-utils aptitude base-files base-passwd bash bc bind9 bind9-host bind9utils binutils boinc boinc-client boinc-manager bsdmainutils bsdutils build-essential bzip2 ca-certificates
comerr-dev coreutils cpio cpp cpp-4.4 cron dash db4.8-util dbus debconf debconf-i18n debian-archive-keyring debianutils defoma diffutils dmidecode dnsutils dovecot-common dovecot-imapd dpkg dpkg-dev
e2fslibs e2fsprogs emacs emacs23 emacs23-bin-common emacs23-common emacsen-common fakeroot file findutils fontconfig fontconfig-config g++ g++-4.4 gcc gcc-4.4 gconf2-common gnupg gpgv grep groff-base gzip
hostname iftop ifupdown info initscripts insserv install-info iproute iptables iputils-ping isc-dhcp-client isc-dhcp-common krb5-multidev less libacl1 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libanthy0 libapr1 libaprutil1 libasound2 libatk1.0-0 libatk1.0-data libattr1 libavahi-client3 libavahi-common3 libbind9-60 libblkid1 libboost-iostreams1.42.0 libbsd0 libbz2-1.0
libc-dev-bin libc6 libc6-dev libcairo2 libcap2 libcomerr2 libcroco3 libcups2 libcurl3 libcurl4-openssl-dev libcwidget3 libdatrie1 libdb4.7 libdb4.8 libdbus-1-3 libdbus-glib-1-2 libdns69 libdpkg-perl
libdrm-intel1 libdrm-radeon1 libdrm2 libedit2 libept1 libexpat1 libfont-freetype-perl libfontconfig1 libfontenc1 libfreetype6 libfribidi0 libgcc1 libgconf2-4 libgcrypt11 libgd2-noxpm libgdbm3 libgeoip1
libgif4 libgl1-mesa-dri libgl1-mesa-glx libglib2.0-0 libglib2.0-data libglu1-mesa libgmp3c2 libgnutls26 libgomp1 libgpg-error0 libgpm2 libgsf-1-114 libgssapi-krb5-2 libgssrpc4 libgtk2.0-0 libgtk2.0-bin
libice6 libidl0 libidn11 libidn11-dev libisc62 libisccc60 libisccfg62 libjasper1 libjpeg62 libk5crypto3 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkeyutils1 libkrb5-3 libkrb5-dev libkrb5support0
libldap-2.4-2 libldap2-dev liblocale-gettext-perl liblockfile1 liblwres60 liblzma2 libm17n-0 libmagic1 libmpfr4 libmysqlclient16 libncurses5 libncurses5-dev libncursesw5 libnewt0.52 libnfnetlink0 libnl1
liborbit2 libossp-uuid16 libotf0 libpam-modules libpam-pgsql libpam-runtime libpam0g libpango1.0-0 libpango1.0-common libpcap0.8 libpcre3 libpixman-1-0 libpng12-0 libpopt0 libpq5 libreadline6 librsvg2-2
libsasl2-2 libsasl2-modules libsasl2-modules-sql libselinux1 libsepol1 libsigc++-1.2-5c2 libsigc++-1.2-dev libsigc++-2.0-0c2a libsigc++-2.0-dev libsigc++-dev libsigc++0c2 libslang2 libsm6 libsqlite0
libsqlite3-0 libss2 libssh2-1 libssh2-1-dev libssl-dev libssl0.9.8 libstdc++6 libstdc++6-4.4-dev libtasn1-3 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libthai0 libtiff4 libtimedate-perl
libtorrent11 libudev0 libusb-0.1-4 libuuid1 libwrap0 libwxbase2.8-0 libwxgtk2.8-0 libx11-6 libxapian22 libxau6 libxcb-render-util0 libxcb-render0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6
libxext6 libxfixes3 libxfont1 libxft2 libxi6 libxinerama1 libxml2 libxmlrpc-c3 libxmuu1 libxpm4 libxrandr2 libxrender1 libxslt1.1 libxt6 libxxf86vm1 locales login logrotate lsb-base lsb-release m17n-contrib
m17n-db make man-db mawk module-init-tools mount ncurses-bin net-tools netbase netcat-traditional openssh-blacklist openssh-blacklist-extra openssh-client openssh-server openssl passwd patch perl perl-base
perl-modules pkg-config postfix postfix-pgsql postgresql postgresql-8.4 postgresql-client-8.4 postgresql-common postgresql-contrib postgresql-contrib-8.4 procps python python-minimal python-support
python2.6 python2.6-minimal quota readline-common rsyslog rtorrent sasl2-bin sed sgml-base shared-mime-info squid ssh ssl-cert sysv-rc sysvinit sysvinit-utils tar tasksel tasksel-data tcpd traceroute tzdata
ucf udev util-linux vim-common vim-tiny wget whiptail whois x11-common xauth xfonts-encodings xfonts-utils xml-core xz-utils zlib1g zlib1g-dev
The following packages will be upgraded:
linux-libc-dev
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
apt libc6 (due to apt) libgcc1 (due to apt) libstdc++6 (due to apt) zlib1g (due to apt) debian-archive-keyring (due to apt) gnupg (due to apt) base-files base-passwd bash debianutils (due to bash) dash (due
to bash) libncurses5 (due to bash) bsdutils coreutils libacl1 (due to coreutils) libattr1 (due to coreutils) libselinux1 (due to coreutils) dpkg (due to dash) diffutils libbz2-1.0 (due to dpkg) xz-utils
(due to dpkg) e2fsprogs e2fslibs (due to e2fsprogs) libblkid1 (due to e2fsprogs) libcomerr2 (due to e2fsprogs) libss2 (due to e2fsprogs) libuuid1 (due to e2fsprogs) util-linux (due to e2fsprogs) findutils
install-info (due to findutils) grep gzip hostname login libpam0g (due to login) libpam-runtime (due to login) libpam-modules (due to login) mount libsepol1 (due to mount) ncurses-bin perl-base sed sysvinit
initscripts (due to sysvinit) sysv-rc (due to sysvinit) sysvinit-utils (due to sysvinit) tar lsb-base (due to util-linux) tzdata (due to util-linux) debconf (due to util-linux) libslang2 (due to util-linux)
1 upgraded, 0 newly installed, 335 to remove and 0 not upgraded.
2 not fully installed or removed.
Need to get 855 kB of archives.
After this operation, 577 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] ^C
Это явно не то, что стоит делать, так ведь? Пробую даунгрейдить libc-bin:
# apt-get install libc-bin=2.11.3-4
Reading package lists… Done
Building dependency tree
Reading state information… Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
locales : Depends: glibc-2.13-1 but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
apt-get -f install опять же предлагает в качестве решения проблемы удаление системы. И чёт как-то у меня идей больше не осталось. Как вылечить систему? Или всё же, единственный способ вылечить — это прибить к чертям?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Я несколько раз побеждал подобные ситуации, но на это уходили мучительные часы «попакетной» возни. И, честно говоря, универсального решения в голове не сложилось — всякий раз действовал методом проб и ошибок, изучая конкретные проблемы/конфликты зависимостей и неудостановленных/недоконфигурированных пакетов… Однако хочу обнадёжить, что успеха добивался во всех случаях.
Судя по первым листингам… здесь бы начал с ручной установки пакетов locales, libc6, libc-bin, glibc-2.13-1 — можно прямо вручную (dpkg -i) из .deb’ов, находящихся в /var/cache/apt.
kk. Я попробую. Стрёмно немного вручную дёргать libc, тем более не понимая деталей работы apt, но поскольку другого метода не видно, придётся заняться именно этим.
Да, сработало. Всё не так просто оказалось, там ещё /var/cache/debconf/config.dat оказался залочен, но прибив несколько процессов я его разлочил. Поставил старый libc-bin, после этого apt-get install -f предложил починить всё удалив postgresql и чего-то там переустановив. Это уже вполне приемлимое решение, поэтому locales я не трогал.
Я поражаюсь тому, какое количество советчиков относительно дебиана, которые сами не знают что советуют. Просто начинают предлагать какие-то рандомные телодвижения. Например почистить кеш. Или ещё что-нибудь совершенно бесполезное предлагать начинают. Всё ж популяризация линукса — зло.
Да, а мораль сей басни такова: если уж apt-get такой неатомарный и интерактивный, то надо пользоваться screen. Ибо нефиг.