The O-RAN-SC project uses PackageCloud.io repositories to publish binary artifacts including Debian (.deb) and RPM Package Manager (.rpm) packages. For complete details on using PackageCloud please see their documentation: https://packagecloud.io/docs

Repositories

The following O-RAN-SC repositories are defined at PackageCloud:

  • o-ran-sc/master - development builds pushed manually; used as a sandbox only.
  • o-ran-sc/staging - release candidate builds, pushed automatically by Jenkins
  • o-ran-sc/release - released versions, created manually by the Linux Foundation release engineering team.

Creating and Pushing Packages

In O-RAN-SC the Continuous Integration (CI) system Jenkins is configured with jobs that create and push packages to PackageCloud.  At present these jobs all use the following design:

  • Define build steps in a Dockerfile to create package files within the running Docker image
  • Define an entrypoint command (a shell script) that copies all package files to a specified directory
  • Launch the image so the entrypoint command runs and the package files are copied to a mounted volume
  • Run a Ruby script "packagecloud_push" to publish the package files to the PackageCloud site

Note that a package file can only be published exactly once - the PackageCloud site blocks overwriting of existing files.

Installing Packages

Package files can be downloaded and installed from the command line.  For example, here's how to install a recent version of the RMr library in a Dockerfile using an Debian/Ubuntu base:

# Install RMr using debian package hosted at packagecloud.io
ARG RMR_VER=1.5.0
RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb
RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb
RUN dpkg -i rmr_${RMR_VER}_amd64.deb
RUN dpkg -i rmr-dev_${RMR_VER}_amd64.deb

Alternately a repository can be installed for use by the usual tools, for example in Ubuntu via "apt-get".  The following command will make the "staging" repository available in an Ubuntu system:

curl -s https://packagecloud.io/install/repositories/o-ran-sc/staging/script.deb.sh | sudo bash
  • No labels