Author |
Message |
stemsee
Joined: 27 Jun 2013 Posts: 2139 Location: In The Way
|
Posted: Mon 23 Jun 2014, 05:13 Post subject:
SOlVED ! Synaptic / apt-get / dpkg 'libc6' problems Subject description: How to fool them into beleiving the libc6 version it wants to upgrade, has been upgraded! |
|
Or how to edit the installed version's entry to reflect the desired version entry!
Of course it is all libc6 related. The correct version i installed manually! There is a difference in the naming! It complains about ld being in /lib and asks to move it .. where would it be on a normal linux and which files should I link to from where to where?
I have scoured the net and tried all the usual things 'apt-get -f instal' 'apt-get --configure -a', echo hold libc6 | dpkg --set-selections, apt-mark hold libc6, and others! Synaptic 'lock' package, prefer installed version, upgrade = ask always, - synaptic wants to uninstall itself and apt and all related depends including busybox, bash etc!
Last edited by stemsee on Sat 12 Jul 2014, 06:17; edited 1 time in total
|
Back to top
|
|
 |
jamesbond
Joined: 26 Feb 2007 Posts: 3146 Location: The Blue Marble
|
Posted: Tue 24 Jun 2014, 07:52 Post subject:
|
|
Quote: | echo hold libc6 | dpkg --set-selections |
That doesn't work for you? Supposedly it's the very basic of holding packages. Perhaps you can ask saintless for advice?
_________________ Fatdog64, Slacko and Puppeee user. Puppy user since 2.13.
Contributed Fatdog64 packages thread.
|
Back to top
|
|
 |
saintless

Joined: 11 Jun 2011 Posts: 3882 Location: Bulgaria
|
Posted: Tue 24 Jun 2014, 09:51 Post subject:
|
|
Hi, Stemsee.
I'm not sure if this is what you need but if you have debian Synaptic and dpkg you should have /var/lib/dpkg/available and /var/lib/dpkg/status files. This is the information that dpkg reads.
Type in terminal:
Code: | root@debian:~# dpkg --list libc6
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii libc6:i386 2.13-38 i386 Embedded GNU C Library: Shared li
|
Open both files avilable and status with text editor and find the section Package: libc6
Code: | Package: libc6
Status: install ok installed
Priority: required
Section: libs
Installed-Size: 8546
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Architecture: i386
Multi-Arch: same
Source: eglibc
Version: 2.13-38
Replaces: libc6-i386
Provides: glibc-2.13-1
Depends: libc-bin (= 2.13-38), libgcc1
Recommends: libc6-i686
Suggests: glibc-doc, debconf | debconf-2.0, locales
Breaks: locales (<< 2.13), locales-all (<< 2.13), nscd (<< 2.13)
Conflicts: prelink (<= 0.0.20090311-1), tzdata (<< 2007k-1), tzdata-etch
Conffiles:
/etc/ld.so.conf.d/i486-linux-gnu.conf de72af11e0f4e741c2cca3e0e87b7af4
Description: Embedded GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs on
the system. This package includes shared versions of the standard C library
and the standard math library, as well as many others.
Homepage: http://www.eglibc.org |
Change Version: 2.13-38 to 3.13-38 for example (the number could be even non-existing package version) and check again:
Code: | root@debian:~# dpkg --list libc6
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii libc6:i386 3.13-38 i386 Embedded GNU C Library: Shared li
|
Rin apt-get update and apt-get -f install and apt-get install libc6 and dpkg --configure -a to make sure all is OK:
Code: | root@debian:~# apt-get update
......................................................
root@debian:~# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 25 not upgraded.
root@debian:~# apt-get install libc6
Reading package lists... Done
Building dependency tree
Reading state information... Done
libc6 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 25 not upgraded.
root@debian:~# dpkg --configure -a
root@debian:~#
|
|
Back to top
|
|
 |
stemsee
Joined: 27 Jun 2013 Posts: 2139 Location: In The Way
|
Posted: Tue 24 Jun 2014, 14:38 Post subject:
|
|
jamesbond wrote: | echo hold libc6 | dpkg --set-selections
That doesn't work for you? Supposedly it's the very basic of holding packages. Perhaps you can ask saintless for advice? |
It holds the package but doesn't solve the reflexive dependency problem!
I did have it all working and installing at one point and if I had locked the version of libc6 then it might have been ok. However I didn't.
I am trying saintless' solution now!
|
Back to top
|
|
 |
stemsee
Joined: 27 Jun 2013 Posts: 2139 Location: In The Way
|
Posted: Tue 24 Jun 2014, 17:27 Post subject:
|
|
@Saintless
Thanks very much. Your knowledge put me on the right track. In fact I had three packages to juggle, libgcc1, libc6 (libc6-i686) and multi-arch. I changed version as stated and also 'Status: install ok installed' for those and subsequent packages synaptic insisted on installing. It is trying to reinstall everything that is already installed but not listed in status , I think. Trial and error I guess. Is there a way to rebuild status file from already installed packages? Without re-installing everything? Cheers.
Edit: Status file is 11000 lines long now ... that'll do !
|
Back to top
|
|
 |
saintless

Joined: 11 Jun 2011 Posts: 3882 Location: Bulgaria
|
Posted: Wed 25 Jun 2014, 02:17 Post subject:
|
|
stemsee wrote: | Trial and error I guess. Is there a way to rebuild status file from already installed packages? Without re-installing everything? |
Maybe something from here will help you:
fredx181 wrote: | Meanwhile I did some searching and found the below on Ubuntu forum.
Code: | for pkg in `dpkg --get-selections | awk '{print $1}' | egrep -v '(mysql|mythtv)'` ; do apt-get -y --force-yes install --reinstall $pkg -d ; done |
It will download-only every package that is installed. |
http://murga-linux.com/puppy/viewtopic.php?p=768243#768243
And restore status file script but it needs also proper /var/lib/dpkg/available file and proper /var/lib/dpkg/info content. If they are broken it will not work. Also some changes has to be made because the script is modified to work for separate squashfs to update dpkg database for DebianDog with the files from separate squashfs module:
http://murga-linux.com/puppy/viewtopic.php?p=776600#776600
Make sure to remove the config files first left in the system by running the command given here:
http://murga-linux.com/puppy/viewtopic.php?p=777176#777176
Hope it will save you some works.
_________________ Farewell, Nooby, you will be missed...
|
Back to top
|
|
 |
stemsee
Joined: 27 Jun 2013 Posts: 2139 Location: In The Way
|
Posted: Wed 25 Jun 2014, 03:11 Post subject:
|
|
@saintless
I am going to experiment with what you have provided! I can hear you - "Been there, done that ... too!". Masterful.
However I let synaptic re-install as much as it wanted to until it settled down to 'normal' behaviour. I continuously edited status file because of half-configured, or unpacked, or not-insalled statuses, as those packages were installed underneath already. I am pretty sure that status must be fully rebuilt or minor problems arise when uninstalling programs as well as re/installing others.
Thanks again!
|
Back to top
|
|
 |
stemsee
Joined: 27 Jun 2013 Posts: 2139 Location: In The Way
|
Posted: Wed 25 Jun 2014, 05:42 Post subject:
|
|
[quote="saintless"]
fredx181 wrote: | Meanwhile I did some searching and found the below on Ubuntu forum.
Code: | for pkg in `dpkg --get-selections | awk '{print $1}' | egrep -v '(mysql|mythtv)'` ; do apt-get -y --force-yes install --reinstall $pkg -d ; done |
It will download-only every package that is installed. |
Actually this downloads only what has been installed with synaptic/apt!
Edit: by removing '-d' the code will install everything too, and generate a new status file. I did this but some pinstall errors and deb-conf Status install ok half-configured. Cannot be fooled by changing haalf-configured to installed. How to manually configure deb-conf package?
|
Back to top
|
|
 |
saintless

Joined: 11 Jun 2011 Posts: 3882 Location: Bulgaria
|
Posted: Thu 26 Jun 2014, 06:16 Post subject:
|
|
stemsee wrote: | How to manually configure deb-conf package? |
This should configure all packages automatically:
Code: | dpkg --configure -a |
You can try also for half-configured packages:
Code: | apt-get purge package-name |
Code: | apt-get install package-name |
or if apt-get refuses to install;
Code: | dpkg -i path-to-package-name |
Status file can not be restored proper if there is a problem in /var/lib/dpkg/info directory and /var/lib/dpkg/available file.
If Debian method for fixing dpkg problems does not work this means also something in debian structure and debian scripts is broken or replaced with puppy script versions.
_________________ Farewell, Nooby, you will be missed...
|
Back to top
|
|
 |
stemsee
Joined: 27 Jun 2013 Posts: 2139 Location: In The Way
|
Posted: Thu 26 Jun 2014, 07:57 Post subject:
|
|
Aha!
I have dpkg-configure missing, and conf-module too, also some other related stuff! I also found that my chroot rox goes all the way up to my non-chroot root, and there is a lot of crossover! I installed in the chroot and the packages appeared in the running distro!
Ok! Everything is working, much better now!
|
Back to top
|
|
 |
|