Offline package access with NO network access

OK, so I am currently extremely frustrated. My workstation has 1 Ethernet port which apparently does not have an inbox driver (seen in lspci but does not by the network manager). I tried to manually add the driver, but that requires “make” which is apparently also not included. Without the driver being built I have no way of accessing any repository from this system.

In the past, working on Server OSes I would download the gcc rpm or whatever was missing from the web to a USB for transfer or use the full DVD for the Linux distro. Neither seem to be an option in Workstation 32.

Any help would be appreciated.

1 Like

Hi @pyric05, welcome to the forum!

You can still download packages from the mirrors and install them manually. I do this lots when I need to test packages from the Koji build system before they’ve been pushed to users. This has not changed. What suggests that this is not an option any more?

1 Like

Well I went out and found gcc-10.0.1-0.11.fc32.x86_64.rpm and when I tried to install it the OS gave an error. I tried it again an this time it worked (think I left sudo off before) however it does not appear to have resolved my make problem. Looks like I get to go fishing for what other dependencies I need to get.

make is not part of gcc. It’s a different tool, in a different package:

$ rpm -qf /usr/bin/make
make-4.3-2.fc33.x86_64

I’ve uploaded all the F32 packages from the “C Development Tools and Libraries” group and their dependencies on my fedorapeople space here. That should cover all the packages you need. I’ve also included createrepo here so that you can use it to create a local repository from these packages on your system if you wish.

To download these from the repos, one can use these commands:

# FInd packages in this package group
# Can also get this list manually from comps: https://pagure.io/fedora-comps/blob/master/f/comps-f32.xml.in#_391

$ sudo dnf groupinfo "C Development Tools and Libraries"
Group: C Development Tools and Libraries
 Description: These tools include core development tools such as automake, gcc and debuggers.
 Mandatory Packages:
   autoconf
   automake
   binutils
   bison
   flex
   gcc
   gcc-c++
   gdb
   glibc-devel
   libtool
   make
   pkgconf
   strace
 Default Packages:
   byacc
   ccache
   cscope
   ctags
   elfutils
   indent
   ltrace
   perf
   valgrind
 Optional Packages:
   ElectricFence
   astyle
   cbmc
   check
   cmake
   coan
   cproto
   insight
   nasm
   pscan
   python3-scons
   remake
   scorep
   splint
   yasm
   zzuf

Download the ones needed with their deps

# The --resolve bit also downloads the dependencies
# The --release bit lets one specify a different release. I downloaded these on a Fedora 33 system, for example.
# The --installroot bit is to ensure that dnf doesn't look at the packages already installed on my system and try to include them in the transaction
$ sudo dnf download gcc g++ make autoconf automake glibc-devel --resolve --release=32 --installroot=/some/path/

....
....
# Downloads all packages.

To create a local repository, download all the packages, and then use these commands:

$ createrepo /path/to/folder/with/rpms

That’ll create a repodata folder there. Then you just tell dnf about the repo, with a new repo file in /etc/yum.repos.d/

# Put this in /etc/yum.repos.d/
[Local-repository]
name=Fedora 32 local
baseurl=/path/to/your/rpms/repository/folder
enabled=1

Check man dnf.conf for more options that can go in the repos. For example, since I downloaded these rpms from the repositories, they’ll be signed with the correct Fedora GPG keps, so you can add gpgcheck=1 there too.

2 Likes