SOlVED ! Synaptic / apt-get / dpkg 'libc6' problems

Under development: PCMCIA, wireless, etc.
Post Reply
Message
Author
stemsee

SOlVED ! Synaptic / apt-get / dpkg 'libc6' problems

#1 Post by stemsee »

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, 10:17, edited 1 time in total.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#2 Post by jamesbond »

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 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
saintless
Posts: 3862
Joined: Sat 11 Jun 2011, 13:43
Location: Bulgaria

#3 Post by saintless »

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: Select all

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: Select all

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: Select all

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: Select all

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:~# 

stemsee

#4 Post by stemsee »

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!

stemsee

#5 Post by stemsee »

@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 ! :lol:

User avatar
saintless
Posts: 3862
Joined: Sat 11 Jun 2011, 13:43
Location: Bulgaria

#6 Post by saintless »

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: Select all

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. ... 243#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. ... 600#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. ... 176#777176
Hope it will save you some works.

stemsee

#7 Post by stemsee »

@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!

stemsee

#8 Post by stemsee »

saintless wrote:
fredx181 wrote:Meanwhile I did some searching and found the below on Ubuntu forum.

Code: Select all

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?

User avatar
saintless
Posts: 3862
Joined: Sat 11 Jun 2011, 13:43
Location: Bulgaria

#9 Post by saintless »

stemsee wrote:How to manually configure deb-conf package?
This should configure all packages automatically:

Code: Select all

dpkg --configure -a
You can try also for half-configured packages:

Code: Select all

apt-get purge package-name

Code: Select all

apt-get install package-name
or if apt-get refuses to install;

Code: Select all

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.

stemsee

#10 Post by stemsee »

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!

Post Reply