Hi, I’m having trouble understanding the principles behind OpenSuse package and repository management. Here is a concrete example:
I want to install the 32bit version of glibc. (using zypper) Naturally I write ‘wp glibc’ to see what’s available. Output:
S | Name | Type | Version | Arch | Repository
--+-------+---------+----------------+--------+---------------------
i | glibc | package | 2.11.3-12.15.1 | x86_64 | openSUSE-11.4-Oss
i | glibc | package | 2.11.3-12.15.1 | x86_64 | openSUSE-11.4-11.4-0
v | glibc | package | 2.11.3-12.15.1 | i686 | openSUSE-11.4-Oss
v | glibc | package | 2.11.3-12.15.1 | i586 | openSUSE-11.4-Oss
I check if I’m subscribed to the Oss repository with ‘lr’
8 | repo-oss | openSUSE-11.4-Oss | Yes | Yes
Ok, so everything great? Unfortunately no. I tried ‘in glibc.i686’. Output:
Resolving package dependencies...
Nothing to do.
Confusion! Why is it not finding the package? ‘if glibc’ only shows the x86_64 version. So I try anything at this point, I try: ‘in glibc*’ Suddenly zypper wants to install a bunch of packages that never showed up before, including
glibc-32bit-2.11.3-12.15.1.x86_64
glibc-devel-32bit-2.11.3-12.15.1.x86_64
Please help me understand!
Example 2:
Repository confusion:
I’m looking for the (32bit) tokyocabinet library. I go through all the hoops like I did in the first example. Nothing shows up! How is that possible? Does opensuse really not have this library in any repository? Does that mean I have to install from source? How can I be sure that zypper searches through all repositories?
Maxxi12 wrote:
> Hi, I’m having trouble understanding the principles behind OpenSuse
> package and repository management.
It would be helpful to tell us what documents you’ve already read in
your attempts to understand it.
> Here is a concrete example:
> I want to install the 32bit version of glibc. (using zypper) Naturally
> I write ‘wp glibc’ to see what’s available. Output:
>
>
> Code:
> --------------------
> S | Name | Type | Version | Arch | Repository
> --±------±--------±---------------±-------±--------------------
> i | glibc | package | 2.11.3-12.15.1 | x86_64 | openSUSE-11.4-Oss
> i | glibc | package | 2.11.3-12.15.1 | x86_64 | openSUSE-11.4-11.4-0
> v | glibc | package | 2.11.3-12.15.1 | i686 | openSUSE-11.4-Oss
> v | glibc | package | 2.11.3-12.15.1 | i586 | openSUSE-11.4-Oss
> --------------------
OK, you have 64-bit versions installed so I suppose that you have a
64-bit system (it would be better to tell us explicitly)
> Suddenly zypper wants to install a bunch of packages that never
> showed up before, including
> glibc-32bit-2.11.3-12.15.1.x86_64
> glibc-devel-32bit-2.11.3-12.15.1.x86_64
>
> Please help me understand!
What you apparently haven’t found in your researches is that there are
special 32-bit versions of libraries for installation on 64-bit systems,
and these are they (hint, think about which directories they will be
installed into)
Interesting, there is always one guy who has to assume the worst and in the process make mistakes himself. You seem to purposefully misinterpret my questions.
The title of this post:
> Installing 32bit stuff on 64bit OS
OS is an abbreviation of ‘operating system’, therefore I did provide the information that I’m on a 64bit system. Furthermore:
What you apparently haven’t found in your researches is that there are
special 32-bit versions of libraries for installation on 64-bit systems,
and these are they (hint, think about which directories they will be
installed into)
Isn’t it obvious that when I’m trying to explicitly find and install 32bit libraries on a 64bit system, that I’m aware of the existence of 32bit libraries? I think it is.
So go ahead and install them.
I was looking for 32bit libraries. I found them myself. My confusion is not in regard to what to do with the libraries I already found myself.
It is about why I didn’t find the 32bit libraries with the ‘what-provides’ command or any other commands, but they suddenly showed up when trying to install everything glibc*
Regarding your first question, I read the zypper manual and a few wiki posts regarding repositories which didn’t help in this case.
As djh-novell said for most things the 32-bit version is available as <packagename>-32bit.
To answer your 2nd question, no zypper doesn’t search through all the repositories. It only searches through the repos you have configured.
To search through all repositories you need to go to: software.opensuse.org: Download openSUSE 11.4
This is actually quite important to know about since large numbers of useful packages only seem to get as far as being submitted to a development repo, and are never submitted into the main opensuse repo (‘oss’).
Your tokyocabinet package is a good example of this. It’s in devel:languages:perl/openSUSE_11.4. Some packages from devel:languages:perl/openSUSE_11.4 have been submitted into the main oss repo, eg. apache-mod_perl, whereas some such as tokyocabinet have not.
As djh-novell said for most things the 32-bit version is available as <packagename>-32bit.
That doesn’t seem to be true, most 32bit versions just have a i686 appended. Thanks for the opensuse package search, that should be in big bold letters on the frontpage.
The ones with .i686 appended aren’t meant to (and probably can’t) be installed on your 64-bit system. For the case where you’re on 64-bit but want to run 32-bit programs the Opensuse developers have put 32-bit versions of most of the libraries in the 64-bit repository, these are the things that are named <something>-32bit.
E.g. skype for Linux only comes in 32-bit so to get it to work on my 64-bit Opensuse it I have to install these packages first:
Similarly if you’re writing or building software that’s only in 32-bit that, for example, needs libjpeg you would do: zypper se libjpeg
This would give you:
S | Name | Summary | Type
--+-----------------------+---------------------------------------------+--------
i | libjpeg-turbo | A MMX/SSE2 accelerated library for manipu-> | package
i | libjpeg62 | The MMX/SSE accelerated JPEG compression/-> | package
i | libjpeg62-32bit | The MMX/SSE accelerated JPEG compression/-> | package
| libjpeg62-devel | Development Tools for applications which -> | package
| libjpeg62-devel-32bit | Development Tools for applications which -> | package
| libjpeg8 | JPEG libraries | package
| libjpeg8-32bit | JPEG libraries | package
| libjpeg8-devel | Development Tools for applications which -> | package
| libjpeg8-devel-32bit | Development Tools for applications which -> | package
You would then know to install either libjpeg62-32bit or libjpeg8-32bit.
Maxxi12 wrote:
> Interesting, there is always one guy who has to assume the worst and in
> the process make mistakes himself. You seem to purposefully misinterpret
> my questions.
>
> The title of this post:
>> Installing 32bit stuff on 64bit OS
>
> OS is an abbreviation of ‘operating system’, therefore I did provide
> the information that I’m on a 64bit system. Furthermore:
So you’ve just had a lesson on why it’s a bad idea to make a post that
doesn’t have ALL the information in the body of the message.
Please don’t assume I’m purposefully doing anything other than try to help.
But given your attitude, I’ve just added your name to my bitbucket.
Bye
Zypper returned results for exactly what you told it to search for inside the package. If you go into YaST and take a look at what’s in the glibc packages, you will see that the 32 bit packages do not contain anything with the string “glibc” in it, whereas the 64 bit package contains /usr/share/doc/packages/glibc.