Rpm packages without internet access

Hello
I have a machine that does not have access to the internet and wish to install “gcc” and “make” and its dependencies.
I use OpenSuse 13,1 and KDE

How to do it?
What are they packages and where do I find the rpm files for these programs?

Thanks in advance

It has been a while but I think that the full install DVD has them on it. Used to be anyway.

You did not mention the OS version so it is hard to give exact location instruction since that is version dependent. But you will find them at the repository for you version. You can go thier via browser and download.

Neither gcc or make seem to have any dependencies so all you need are their packages for the OS version you have.

The installer should automatically add your installation medium as installation source.
But you’d probably have to enable it first (YaST->Software Repositories).
Then just install the packages and insert the installation medium when prompted (or before…).

If it’s not in there, just add it manually.

What are they packages and where do I find the rpm files for these programs?

The packages are “gcc” and “make”, but you’ll probably need a lot more.
You can find them on the installation medium in the /suse/ folder.
Or download them from the online repo:
http://download.opensuse.org/distribution/13.1/repo/oss/suse/
(there are also ftp mirrors which would make it easier to download several packages)

You can install downloaded packages manually with “zypper in /path/to/xxx.rpm” or “rpm -i /path/to/xxx.rpm”.

And what’s this?

rpm -q --requires gcc
cpp
gcc48
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsLzma) <= 4.4.6-1

And:

# rpm -q --requires gcc48
binutils
cpp48 = 4.8.3+r212056-2.2.4
glibc-devel
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
libasan0 >= 4.8.3+r212056-2.2.4
libatomic1 >= 4.8.3+r212056-2.2.4
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcloog-isl.so.4()(64bit)
libgcc_s1 >= 4.8.3+r212056-2.2.4
libgmp.so.10()(64bit)
libgomp1 >= 4.8.3+r212056-2.2.4
libisl.so.10()(64bit)
libitm1 >= 4.8.3+r212056-2.2.4
libm.so.6()(64bit)
libmpc.so.3()(64bit)
libmpfr.so.4()(64bit)
libtsan0 >= 4.8.3+r212056-2.2.4
libz.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsLzma) <= 4.4.6-1

And an actual compiler might be usefull as well, e.g. gcc-c++.
With just gcc and make alone, you won’t be able to compile anything…:wink:

Well, I need a list of dependencies.

Today, I made the installation of “gcc” and “make” this PC and found the files below in the folder “/var/cache/zypp/packages/repo-oss/suse/i586/”

gcc-4.8-2.1.2.i586.rpm
make-3.82-160.2.1.i586.rpm gcc48-4.8.1_20130909-3.2.1.i586.rpm

libitm1-4.8.1_20130909-3.2.1.i586.rpm

site-config-0.2-5.1.2.i586.rpm

libatomic1-4.8.1_20130909-3.2.1.i586.rpm

libasan0-4.8.1_20130909-3.2.1.i586.rpm

binutils-2.23.2-8.1.2.i586.rpm

In this folder, there is more files .rpm, all with the same date that did the installation.
This seems to indicate that its files was the dependencies that were installed.

I’m thinking right?
To Install “gcc” and “make”, it will suffice to take a copy of these files and install on the PC that does not have internet?

You mean all rpm files downloaded to /var/cache/zypp/packages/repo-oss/suse/i586/?
Yes, but some might be in /var/cache/zypp/packages/repo-oss/suse/noarch as well.

And if they come from a different repo (the update repo e.g.), they will be downloaded to a different sub-folder of /var/cache/zypp/packages/, there is one folder for each repo.

And as mentioned, you can install them with something like “rpm -i *.rpm” (if they are in the current directory).

But beware that the packages in /var/cache/zypp/packages/ are normally deleted after they are installed. You need to enable the “Keep downloaded packages” option in YaST->Software Repositories to prevent that.

And of course both systems should be comparable (same openSUSE version, 32bit/64bit, already installed packages, …).

Hi,

By default delta rpm is enabled so AFAIK that package inside /var/cache/zypp* is not a whole package that you can install immediately without doing some “delta operation” in order to install that package. Unless of course delta rpm is disabled in

/etc/zypp/zypp.conf 

Yast probably has some option to do that to but i’m not sure.

Check it out by grepping delta.

grep delta /etc/zypp/zypp.conf.default 




## Whether to consider using a .delta.rpm when downloading a package
## Using a delta rpm will decrease the download size for package updates
## not too slow, you benefit from disabling .delta.rpm.
# download.use_deltarpm = true
## Whether to consider using a deltarpm even when rpm is local
## This option has no effect unless download.use_deltarpm is set true.
#  download.use_deltarpm.always = false

(of course it is already mention to keep packages via yast) or

you can edit the correct files inside. (Unless you know what you’re doing this is not advised.)

/etc/zypp/repos.d/

It is true that delta rpms are enabled by default (this normally only applies to the update repo though, most other repos do not contain delta rpms anyway), but /var/cache/zypp/packages will still contain the full .rpm packages.
Immediately after downloading the delta rpm, the full rpm is created, as libzypp has to pass this to rpm for installing (rpm doesn’t support delta rpms).

Really. This is getting too complicated.

I merely wish to install gcc and its dependencies, on a PC that does not have internet access. nor DCD player (He’s a netBook)

To do this, only need to know
1- What are the dependencies
2- Where can I download the RPM files with require your version, 32 or 64 bits

How to do it?

Hard to tell. There are a lot.
And I don’t know what you already have installed.

2- Where can I download the RPM files with require your version, 32 or 64 bits

I already gave you a link to the standard OSS repo.

How to do it?

Open the URL in a web browser and click on the packages you need.
Or look up the address of an ftp mirror, and download the packages from there with an ftp client. Easier for several packages as this works more like using a filemanager.

If the second system is in the vicinity, you could just try to install the packages, see what’s missing, and then copy over the additional packages.

But seriously, as I already told you, the easiest way would be to insert an installation DVD/USB stick and install the packages via YaST or zypper.

Or copy over and install the packages from /var/cache/zypp/ as you suggested yourself.
But if you do it like this, you might miss out some packages that are already installed on the one system and not on the other.

OK.

I think that your suggestion with an usbStick is the better solution for my

Thanks for this hesp.

But please note that you need the full DVD. The LiveCDs cannot be used as package repository (they basically are an already installed system), and the NETinstall ISO does not contain any packages at all.