repo packages and duplicates and meta-packages, Oh My!

Dear Opensuse Godz, DemiGodz, Wizards, and other Wizard-like beings…

I am going to start trying mvapich2 since I was reading it’s very friendly to infiniband hardware I have. I was looking in the Opensuse Science repo, and saw a lot of packages related to mvapich2, including, in this case, pnetcdf (which I need to compile my code). In addition to the “vanilla” version(s), I see a “gnu” version and a “gnu/hpc” version. The version numbers are similar or the same - but I’m not sure which one to use. Similar sets of version exist for mvapich2. Are these all (or partially) duplicate metapackages and how does one tell in a case like this?

Thank You!!!

# Status             Package                        | Summary                                  | Installed (Available)     | 5
[Do Not Install]     libpnetcdf-gnu-mvapich2-hpc    | Dependency package for libpnetcdf_1_1... | (1.12.1-lp152.24.1)       |      234 B
[Do Not Install]     libpnetcdf1-mvapich2           | High-performance parallel I/O with th... | (1.7.0-lp152.4.2)         |   67.8 KiB
[Do Not Install]     libpnetcdf4-mvapich2           | High-performance parallel I/O with th... | (1.12.1-lp152.24.1)       |    4.4 MiB
[Do Not Install]     libpnetcdf4-mvapich2-debuginfo | Debug information for package libpnet... | (1.12.1-lp152.24.1)       |    9.0 MiB
[Do Not Install]     libpnetcdf_1_12_1-gnu-mvapich2-hpc | High-performance parallel I/O with th... | (1.12.1-lp152.24.1)       |    4.4 MiB
[Do Not Install]     libpnetcdf_1_12_1-gnu-mvapich2-hpc-debuginfo | Debug information for package libpnet... | (1.12.1-lp152.24.1)       |    9.0 MiB
[Do Not Install]     pnetcdf-gnu-mvapich2-hpc       | Dependency package for pnetcdf_1_12_1... | (1.12.1-lp152.24.1)       |      231 B
[Do Not Install]     pnetcdf-gnu-mvapich2-hpc-devel | Dependency package for pnetcdf_1_12_1... | (1.12.1-lp152.24.1)       |      237 B
[Do Not Install]     pnetcdf-mvapich2               | High-performance parallel I/O with th... | (1.12.1-lp152.24.1)       |  481.3 KiB
[Do Not Install]     pnetcdf-mvapich2-debuginfo     | Debug information for package pnetcdf... | (1.12.1-lp152.24.1)       |  418.9 KiB
[Do Not Install]     pnetcdf-mvapich2-debugsource   | Debug sources for package pnetcdf-mva... | (1.12.1-lp152.24.1)       |    8.1 MiB
[Do Not Install]     pnetcdf-mvapich2-devel         | Development files for pnetcdf-mvapich2   | (1.12.1-lp152.24.1)       |  633.6 KiB
[Do Not Install]     pnetcdf-mvapich2-devel-static  | Static development files for pnetcdf-... | (1.12.1-lp152.24.1)       |   15.1 MiB
[Do Not Install]     pnetcdf_1_12_1-gnu-mvapich2-hpc | High-performance parallel I/O with th... | (1.12.1-lp152.24.1)       |  481.4 KiB
[Do Not Install]     pnetcdf_1_12_1-gnu-mvapich2-hpc-debuginfo | Debug information for package pnetcdf... | (1.12.1-lp152.24.1)       |  419.2 KiB
[Do Not Install]     pnetcdf_1_12_1-gnu-mvapich2-hpc-debugsource | Debug sources for package pnetcdf_1_1... | (1.12.1-lp152.24.1)       |    8.1 MiB
[Do Not Install]     pnetcdf_1_12_1-gnu-mvapich2-hpc-devel | Development files for pnetcdf_1_12_1-... | (1.12.1-lp152.24.1)       |  633.7 KiB
[Do Not Install]     pnetcdf_1_12_1-gnu-mvapich2-hpc-devel-static | Static development files for pnetcdf_... | (1.12.1-lp152.24.1)       |   15.1 MiB
[Do Not Install]     pnetcdf_1_12_1-hpc-doc         | Documentation for pnetcdf                | (1.12.1-lp152.24.1)       |  157.8 KiB

You can use zypper to figure that out as the if(ormation) output shows the src rpm a package is built from (on Tumbleweed here though).

zypper if libpnetcdf1-mvapich2 | grep Source\ package

Source package : parallel-netcdf-mvapich2-1.7.0-4.1.src

Searching on the above I see it’s developed at

Which is a multibuild package, hence the versions numbers are all the same…

I would assume that they can be installed in parallel and pick your poison to compile with…

Malcom! Thank you! All hail Zypper! I’m so addicted to Yast, and I know it. I should cold-turkey to LMDE or something Yast-less, or go back to command-line environment and really become a linux guru. But I fear the absolute windstorm of new learning (and questions on various user forums). I did finally memorize enough vi to survive on a mainframe (“Thou Shalt Know Vi.”). It’s surprising how much knowing a command-line editor has helped…

Some parts of Yast are really great, at least for scientists like me. It made setting up network bridges and Infiniband NIC connections almost completely intuitive. Surprise!

Anyway, thank you very much for the command-line tutorial! I assume this is what you meant by “multi-build” packages…


Best, PattiM lol!

So it looks like the first and third below are the same, although indicated differently in Yast.
What would that mean?

(base) patti@linux-lhkc:~> zypper if pnetcdf-gnu-mvapich2-hpc | grep Source\ package
Source package : pnetcdf_1_12_1-gnu-mvapich2-hpc-1.12.1-lp151.24.1.src

(base) patti@linux-lhkc:~> zypper if pnetcdf-mvapich2 | grep Source\ package
Source package : pnetcdf-mvapich2-1.12.1-lp151.24.1.src

(base) patti@linux-lhkc:~> zypper if pnetcdf_1_12_1-gnu-mvapich2-hpc | grep Source\ package
Source package : pnetcdf_1_12_1-gnu-mvapich2-hpc-1.12.1-lp151.24.1.src

Those are Leap 15.1 packages (lp151)? But if you then search on for pnetcdf-mvapich2 you will see it’s the same package, since it’s multibuild it creates multiple source files as well… if you rebuilt the src rpm locally then it will produce the associated rpms, multibuild is an OBS feature :wink:

Hi again, Malcom - and thanks! I was just trying out your instructions on my laptop. I tend to be dyslexic so I’m triple-checking…
Was I correct that #1 and #3 are the same although yast/zypper report them as (“nominally”) two different “versions” of pnetcdf/mvapich2?
(“hpc” sounds really gud if you’re going to do computational fluid dynamics on a small cluster as I am…)

pnetcdf_1_12_1-gnu-mvapich2-hpc and pnetcdf-gnu-mvapich2-hpc
(I mean, I know the names are almost the same - but, still, if they’re the same, why two of them? I suppose, coincidence and to trip up noobs. lol!lol!)

The versioned one is the binary, the other pnetcdf-gnu-mvapich2-hpc is a noarch, likely some documents, like a readme…

I should check that out, for my own edification. I know a lot of rpm’s are “noarch” nowadays. So, what is a noarch in the case of pnetcdf - a single binary that will run on 32 or 64 bit machines? If so, the code must be rather different from a straight x64 binary. “Compiled programs cannot be considered noarch because they are compiled to work on a specific architecture. Therefore [for example] C and C++ binaries will not be found in a noarch file.

Something that is not architecture dependent, will run on x86, ppc, aarch64 etc, for example a script, language files or maybe python package.

In your case it’s a text file, README.pnetcdf_1_12_1-gnu-mpich-hpc file containing;

pnetcdf: High-performance parallel I/O with the NetCDF scientific data format.
Provide the dependency to get binary package pnetcdf_1_12_1-gnu-mpich-hpc.
When this package gets updated it installs the latest version of pnetcdf.

All it does is install the binary package if you install it, a dependency…

Thanks a lot, malcom!