Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Thu 23 Oct 2014, 06:21
All times are UTC - 4
 Forum index » Off-Topic Area » Programming
HowTo find which Ubuntu package a library is in?
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [11 Posts]  
Author Message
sunburnt


Joined: 08 Jun 2005
Posts: 5037
Location: Arizona, U.S.A.

PostPosted: Wed 09 Jan 2013, 01:08    Post subject:  HowTo find which Ubuntu package a library is in?  

I`m writing an Ubuntu library downloader in Bash.
I have it parsing the web files for the FTP dirs.

Example: libavcodec.so.52 is needed for Kino and mPlayer.

These are the relevant links from the Ubuntu web page:
Code:
libavcodec52_0.6.2-1ubuntu1_amd64.deb
libavcodec52_0.6.2-1ubuntu1_i386.deb
libavcodec52_0.6.6-0ubuntu0.11.04.1_amd64.deb
libavcodec52_0.6.6-0ubuntu0.11.04.1_i386.deb
libavcodec53_0.7.2-1ubuntu1_amd64.deb


This command shows the real library Puppy has:
Code:
realpath `ldd /root/.usr/bin/mplayer |awk '{print $3}'`

The needed library is: /usr/lib/libavcodec.so.52.72.2

### How to know what package contains the needed library?
This is a problem for finding any dependency.
Back to top
View user's profile Send private message 
postfs1


Joined: 27 Mar 2010
Posts: 831

PostPosted: Thu 10 Jan 2013, 20:46    Post subject:  

Code:
find /mnt/sr0/_Files/GParted/Ubuntu-Karmic_files -type f -exec dpkg-deb --contents {} \; -print|sed -n '/libparted-1.8.so.12/,/.deb/p'|sed '/libparted-1.8.so.12/b;/.deb/b;d' ;

_________________
  • I don't know why laboratories are named a hospitals.
  • The alive personage is like a tea bag with granules of unknown density inside, at that one the packet was made of organic material and was placed in the evaporated liquid or liquid.

Back to top
View user's profile Send private message 
sunburnt


Joined: 08 Jun 2005
Posts: 5037
Location: Arizona, U.S.A.

PostPosted: Thu 10 Jan 2013, 23:27    Post subject:  

postfs1; I see what you`re doing, but I`m not sure how it applies to web.
I suppose if I download an Ubuntu CD and use "find" to generate a list...
A list search is much faster than extracting Deb. files from a CD.

# The perfect thing would be a list of: files and libs. => package.

# I`m really surprised ( and disappointed...) Ubuntu doesn`t have this.
It seems that a file manifest list like this would be part of the Ubuntu CD.

So ldd shows missing libs. and the list shows what packages they`re in.
Then awk could find the package in one command.
Then it`s easy to find and download the packages from a Ubuntu mirror.

I have several Ubuntu files of lists, but none that are: file => package.
One I have is package descriptions, but no package contense is listed,
and it doesn`t contain all of the available packages.
Back to top
View user's profile Send private message 
amigo

Joined: 02 Apr 2007
Posts: 2258

PostPosted: Fri 11 Jan 2013, 03:10    Post subject:  

I think you need to be looking elsewhere for the info. rather than using ldd. When you download and install some deb/ubuntu package, it contains a file called 'control' which will list the other packages needed by the package.

I guess there is a way to do what you want, but the info you get may not be accurate -you may find the wrong version before finding the right one. Only the control file will tell you all the info you need.
Back to top
View user's profile Send private message 
postfs1


Joined: 27 Mar 2010
Posts: 831

PostPosted: Fri 11 Jan 2013, 05:07    Post subject: Re: HowTo find which Ubuntu package a library is in?  

sunburnt wrote:

HowTo find which Ubuntu package a library is in?
...


http://packages.ubuntu.com/en/lucid/ gives such a file:
http://packages.ubuntu.com/en/lucid/allpackages?format=txt.gz


https://launchpad.net/ubuntu/lucid/i386/+builds?build_text=&build_state=built gives such a files:
https://launchpad.net/ubuntu/+source/portmidi/1:200-0ubuntu1.10.04.1/+build/4207230/+files/buildlog_ubuntu-lucid-i386.portmidi_1%3A200-0ubuntu1.10.04.1_BUILDING.txt.gz

_________________
  • I don't know why laboratories are named a hospitals.
  • The alive personage is like a tea bag with granules of unknown density inside, at that one the packet was made of organic material and was placed in the evaporated liquid or liquid.

Back to top
View user's profile Send private message 
sunburnt


Joined: 08 Jun 2005
Posts: 5037
Location: Arizona, U.S.A.

PostPosted: Fri 11 Jan 2013, 16:50    Post subject:  

postfs1; I have the first link`s file. But none of them list package contents.

amigo; I have many Ubuntu app. .deb packages, none have a "control" file.

This should ( but doesn`t ) give control info.: dpkg-deb -e ( .deb file )
I can only assume it doesn`t work because the packages don`t have a control file.
Code:
Usage: dpkg-deb [<option> ...] <command>
Commands:
  -b|--build <directory> [<deb>]   Build an archive.
  -c|--contents <deb>              List contents.
  -I|--info <deb> [<cfile> ...]    Show info to stdout.
  -W|--show <deb>                  Show information on package(s)
  -f|--field <deb> [<cfield> ...]  Show field(s) to stdout.
  -e|--control <deb> [<directory>] Extract control info.
  -x|--extract <deb> <directory>   Extract files.
  -X|--vextract <deb> <directory>  Extract & list files.


This shows info.: dpkg-deb -I ( .deb file )
But then you have to get the correct links for the deps. listed.

Any method of getting contents probably won`t guarantee the correct lib.
ldd will show the correct lib., but not the package that has it.

The only other way is to parse the apps. web page for it`s dep. links.
And that has been made rather difficult to do also.

What`s apparent is that Debian and Ubuntu made it difficult to do this.
.

Last edited by sunburnt on Fri 11 Jan 2013, 19:46; edited 1 time in total
Back to top
View user's profile Send private message 
pemasu


Joined: 08 Jul 2009
Posts: 5463
Location: Finland

PostPosted: Fri 11 Jan 2013, 17:47    Post subject:  

This in Precise Puppy based Upup Precise:
dpkg-deb -e /mnt/sda6/woof-january/woof-out_x86_x86_ubuntu_precise/packages-deb-precise/autoconf_2.68-1ubuntu2_all.deb /root/testing

# ls /root/testing
conffiles control md5sums

control file content:
Version: 2.68-1ubuntu2
Architecture: all
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Installed-Size: 1858
Depends: perl (>> 5.005), m4 (>= 1.4.13), debianutils (>= 1.Cool
Recommends: automake | automaken
Suggests: autoconf2.13, autoconf-archive, gnu-standards, autoconf-doc, libtool, gettext
Conflicts: autoconf2.13 (<< 2.13-47), gettext (<< 0.10.39), pkg-config (<< 0.25-1.1)
Section: devel
Priority: optional
Multi-Arch: foreign
Homepage: http://www.gnu.org/software/autoconf
Description: automatic configure script builder
The standard for FSF source packages. This is only useful if you
write your own programs or if you extensively modify other people's
programs.
.
For an extensive library of additional Autoconf macros, install the
`autoconf-archive' package.
.
The Debian project regards the full documentation for autoconf to be
non-free, so it is not included in Debian. Nevertheless, the
non-free distribution that accompanies Debian includes the manual in
its `autoconf-doc' package.
.
This version of autoconf is not compatible with scripts meant for
Autoconf 2.13 or earlier. If you need support for such scripts,
you must also install the autoconf2.13 package.
Original-Maintainer: Ben Pfaff <pfaffben@debian.org>
Back to top
View user's profile Send private message 
sunburnt


Joined: 08 Jun 2005
Posts: 5037
Location: Arizona, U.S.A.

PostPosted: Fri 11 Jan 2013, 18:51    Post subject:  

pemasu; That looks like the description file I have.
This give the same description:
Code:
dpkg-deb -I /mnt/sda3/ubuntu_bin/xtightvncviewer_1.3.9-6.2ubuntu2_i386.deb
 new debian package, version 2.0.
 size 57996 bytes: control archive= 1526 bytes.
      32 bytes,     1 lines      conffiles           
    1426 bytes,    30 lines      control             
     355 bytes,     5 lines      md5sums             
     601 bytes,    25 lines   *  postinst             #!/bin/sh
     160 bytes,     5 lines   *  postrm               #!/bin/sh
     146 bytes,    13 lines   *  prerm                #!/bin/sh
 Package: xtightvncviewer
 Source: tightvnc
 Version: 1.3.9-6.2ubuntu2
 Architecture: i386
 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 Installed-Size: 171
 Depends: libc6 (>= 2.4), libjpeg8 (>= 8c), libx11-6, libxaw7, libxext6, libxmu6, libxt6, zlib1g (>= 1:1.1.4)
 Recommends: xfonts-base
 Suggests: tightvncserver, ssh
 Provides: vnc-viewer, vncviewer
 Section: x11

The "Depends:" line lists deps., but it doesn`t have links for download.
As amigo said, the dep. info. doesn`t guarantee you`ll get the right lib.

### If you can show me how to get the actual package and file name from this info.

So far the only reliable method would be the Ubuntu web site`s pages.
Like this deps. section of an app`s. web page:
Code:
    avidemux-common
        a free video editor - Internationalization files

# Depends:
    libatk1.0-0 (>= 1.12.4)
        ATK accessibility toolkit
    libavidemux0 (>= 1:2.5.4)
        a free video editor - shared libraries
    libc6 (>= 2.14) [amd64]
        Embedded GNU C Library: Shared libraries
        also a virtual package provided by libc6-udeb
    libc6 (>= 2.4) [i386]
    libcairo2 (>= 1.2.4)
        The Cairo 2D vector graphics library
    libgcc1 (>= 1:4.1.1)
        GCC support library
    libgdk-pixbuf2.0-0 (>= 2.22.0)
        GDK Pixbuf library
    libglib2.0-0 (>= 2.14.0)
        GLib library of C routines
    libgtk2.0-0 (>= 2.24.0)
        GTK+ graphical user interface library
    libsdl1.2debian (>= 1.2.10-1)
        Simple DirectMedia Layer
    libstdc++6 (>= 4.6)
        GNU Standard C++ Library v3
    libvpx1 (>= 1.0.0)
        VP8 video codec (shared library)
    libx11-6
        X11 client-side library
    libxext6
        X11 miscellaneous extension library
    libxml2 (>= 2.7.4)
        GNOME XML library
    libxv1
        X11 Video extension library

# Recommends:
    avidemux-plugins-gtk
        a free video editor - GTK plugins

So follow the links, page to page to get a mirror`s: /SubDir./Package.deb
.
Back to top
View user's profile Send private message 
amigo

Joined: 02 Apr 2007
Posts: 2258

PostPosted: Thu 17 Jan 2013, 16:13    Post subject:  

You are using dpkg, so it should find the right package with just the name -if you have the repos configured correctly. If you are installing packages from contribs repo, then that will have to in the repos configuration. If a package needs updates of normal packages, then the updates should be in the same repo as the original extra/updated program.

Are we having fun yet, working with dependency-management? If not, try coming up with a better system than debian/dpkg. The only more-complete system would be what nix OS is doing -by providing multi-version capability for everything. A real nightmare for the devs!

Sorry if I'm being hard -it's been below freezing for days here and I am getting grumpy and ornery...
Back to top
View user's profile Send private message 
pemasu


Joined: 08 Jul 2009
Posts: 5463
Location: Finland

PostPosted: Thu 17 Jan 2013, 17:01    Post subject:  

Quote:
-it's been below freezing for days here and I am getting grumpy and ornery...

T-shirt weather here: Just - 25 c atm.
Back to top
View user's profile Send private message 
sunburnt


Joined: 08 Jun 2005
Posts: 5037
Location: Arizona, U.S.A.

PostPosted: Thu 17 Jan 2013, 17:30    Post subject:  

pemasu; That`s a little chilly! The southwest U.S. here got Alaska`s weather, and Alaskan`s are wearing sweaters I hear ( warmish ). Confused

amigo; No need to apologize, I remember how cold it was in Pennsylvania. And I remember how quickly you get use to the warmth here in the desert.
Tuesday night it actually got down to 27F ( ~ -2C ), the lowest it`s been. Any desert has greater temperature extremes than moist areas.
When the sun goes down the temp. can drop 10F to 20F in an hour.

If dpkg requires lots of configuration, then it`s no better than parsing web pages. Providing mirror URLs is easy, but I`m still not sure about using it.

About 2 to 3 web pages need to be parsed for the links to the dep. page. Then loop to check the dep. list for installed libs. or if it`s on a local drive.

I have an option to warehouse libs. in the AppPkg build dir. to keep from downloading libs. repeatedly in making AppPkgs.
At this point why not include it in the lib. path ( ld.so.conf ) so eventually no more downloading of libs. needs to be done.
That is, until the next major upgrade when you dump the whole mess and start downloading the next batch of newer libs.

### dpkg is the best way to manage this, but is it the easiest?
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [11 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Off-Topic Area » Programming
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0995s ][ Queries: 12 (0.0150s) ][ GZIP on ]