• Outage postmortem (2015-11-05)

    Incident summary This past Thursday (November 5, 2015), our primary database server had elevated error rates and was taken offline. It was determined that the cause of elevated error rates on that machine were due to some of the RAM on the machine going bad. The packagecloud website was taken down for approximately 35 minutes,...

  • Introducing the packagecloud ansible role

    We’ve just released a packagecloud ansible role for installing packagecloud.io repositories! Usage Here is an example using this role to install a public and private repository on all of our hosts. Note: This role only supports Debian and RedHat ansible os families. -- hosts: all roles: - { role: capotej.packagecloud, repository: capotej/apt-cacher-ng, os: ubuntu,...

  • Use alien to convert Deb to RPM (and RPM to Deb)

    Alien is a command line tool that allows you to convert Debian packages to RPM packages, and vice versa. This blog post will illustrate how to convert a Debian package to an RPM and similarly, how to convert an RPM package to a Debian package. Installing Alien Installation on Debian systems alien can usually...

  • Inspecting and extracting RPM package contents

    This post covers how to list files, show package information and extract the contents of an RPM package. There will be example commands presented for extracting RPM package files and showing information for packages that are both installed, and not-installed on a system. Extract files from an RPM (quick start) $ rpm2cpio ./packagecloud-test-1.1-1.x86_64.rpm |...

  • Inspecting and extracting Debian package contents

    This post covers how to list and extract the contents of a Debian package. There will be examples used to show how to list the contents of debian packages that are installed and not-installed on a system, as well as, how to extract the debian control information and program files. Related Post Inspecting and...

  • Package Managers and Puppet

    These are the slides from Joe Damato’s talk at PuppetConf 2015, titled “Package Managers and Puppet”. This talk covers: package managers, puppet, yum, apt, gpg, and more! Presentation

  • APT and YUM repository mirroring made easy

    Mirror your packagecloud.io APT and YUM repositories We’ve added a Mirroring tab to repository pages to make it super easy to mirror your YUM and APT repositories on packagecloud! Step by step directions and configuration data have been added so you don’t need to hunt down information from mailing lists or read perl source to...

  • Announcing Official Support for LinuxMint and Raspbian

    Support for LinuxMint and Raspbian LinuxMint and Raspbian are now officially supported by packagecloud! You can push and yank packages to both operating systems as you normally would. For example, to push file.deb to LinuxMint Rebecca: $ package_cloud push user/repo/linuxmint/rebecca file.deb Similarly, to push file.deb to Raspbian Wheezy: $ package_cloud push user/repo/raspbian/wheezy file.deb You can...

  • Infrastructure as code might be literally impossible

    UPDATE: 10/28/2015 Video of the talk is now available! This is the video and the slides from Joe Damato’s talk at Automacon 2015, titled “Infrastructure as code might be literally impossible”. This talk covers: package managers, puppet, chef, scary stories, and more! Video Slides

  • Announcing packagecloud Consulting Services

    We’re excited to announce packagecloud consulting services! We receive lots of email requests for help with packaging, build pipelines, automation, and software delivery. Check out our new services page for information on how we can help, initial rates, and get in touch with us! Deb and RPM packaging We’re experts at creating RPM and...

  • New Plans and Pricing!

    We’re excited to announce updated billing for packagecloud! These changes will allow most customers to upload a lot more packages while paying less money. Check out our new plans and billing FAQ on our pricing page. We’ll be following up with each customer via email to explain how the pricing changes will affect you....

  • APT repository internals

    Following up on our previous post about yum repository internals, this blog post will dive into the internals of APT repositories. Similarly, we’ll cover what each index file does and take a look at how a user can inspect and verify the metadata themselves. What is an APT repository? An APT repository is a...

  • yum repository internals

    This blog post will go into details on the internals of yum repositories by examining each of the index files created as part of yum repository’s metadata. We’ll cover what each index file means and take a look at how a user can inspect the metadata themselves. What is a yum repository? A yum...

  • Using dh-make to prepare debian packages

    This blog post will cover some basics about debian package names and version strings, and how to build debian packaging boilerplate using dh_make to streamline the creation of packages. Install the packaging essentials $ sudo apt-get install build-essential dh-make Understanding the package name and version Let’s assume we have an upstream source with the...

  • Announcing official support for Buildkite

    packagecloud is excited to officially announce support for Buildkite. Take a look at the updated docs with example configurations and information on how to push deb, rpm, and gem packages directly to packagecloud from your build process. The Continuous Integration tab on repository pages has also been updated to include Buildkite integration information. Buildkite...

  • Pruning packages using the API

    Since releasing the Packages & Versions API, several customers have used it prune packages in their repository, automatically yanking old packages as new ones are uploaded. This blog post will show an example of how to implement pruning yourself, using Ruby. Requirements To follow along, you’ll need a packagecloud.io account, an API Token, and...

  • Building RPM packages with rpmbuild

    This post will walk you through creating a RPM package from a simple hello world C program using rpmbuild. Setup On an RPM-based system, install the following programs: $ sudo yum install rpm-build Additionally, you can create an .rpmmacros file in your home directory, which rpmbuild can use for determining various settings. A helpful...

  • Announcing Web Delete

    We’re pleased to announce the ability to remove packages without relying on the CLI or constructing a request to the packagecloud API. Users can now delete packages directly from the web by visiting the repository page and clicking on the delete button associated with the package. How to delete a package from the web Step...

  • Building debian packages with debuild

    This post will walk you through creating a debian package from a simple hello world C program using debuild. Setup On a debian-based system, install the following programs: $ sudo apt-get install devscripts build-essential lintian Upload your Debian packages to a free repository in seconds. Sign up! The debuild tool debuild is a convenient...

  • Announcing Web Upload

    We’re excited to announce our web upload feature to the public. Users will now be able to upload packages directly to their public and private repositories from the web. How to upload a package from the web Step 1 - Select a repository and find the “Add a package” button. Step 2 - Choose a...

  • HOWTO: Set up a private gem server

    This post covers how to run a simple gem server to host your ruby gems. If you require the ability to push packages and host them, you can use something like the Gem in a Box Project. packagecloud.io is a hosted solution which allows you to push, host and manage gems in a secure...

  • Building Debian and Ubuntu packages with pbuilder

    pbuilder is a tool for building Debian and Ubuntu packages. You can use pbuilder to build packages for many different versions of Debian and Ubuntu. The main advantage of using pbuilder to build Debian and Ubuntu packages instead of debuild is that pbuilder builds Deb packages in a cleanroom environment. pbuilder does this by...

  • Building RPM packages with mock

    mock is a tool for building RPM packages. You can use mock to build packages for many different versions of CentOS/Red Hat and Fedora. The main advantage of using mock to build RPMs instead of rpmbuild is that mock builds RPMs in a cleanroom environment. mock does this by creating a chroot and performing...

  • Using apt-cacher-ng with SSL/TLS

    apt-cacher-ng is a write-through proxy that caches repository metadata and package indexes for other hosts, typically on the same network. It generally works out-of-the-box, except for when the repository is served over SSL/TLS, in which case special configuration is needed. This blog post will cover apt-cacher-ng basics, then how to set it up to...

  • Announcing the Package & Versions API

    You can finally list, filter, and view packages via the packagecloud.io API! Feel free to jump right into the docs: Packages “All” API Packages Filtering API Versions API Package API Or, continue reading for details and examples. A note about Pagination All of the API’s in this post (excluding the Package API) return a...

  • Working with Source RPMs

    What are source RPMs? A package is a collection of binaries, scripts, and associated data that is installed by your package manager. Packages are typically generated from source code and a set of a metadata written by the package maintainer. Occasionally, the source may by patched by the package maintainer at build time. A source...

  • Working with Debian and Ubuntu Source Packages

    What are source packages? A package is a collection of binaries, scripts, and associated data that is installed by your package manager. Packages are typically generated from source code and a set of a metadata written by the package maintainer. Occasionally, the source may by patched by the package maintainer at build time. A source...

  • Yum Cheat Sheet

    What is yum? yum is the default package manager for RPM-based linux distributions (CentOS, Fedora, RHEL, Oracle). It’s written in python and it stands for “Yellowdog Updater, Modified”, as it was originally called “yup”, the package manager for Yellow Dog Linux. Unlike it’s debian cousin, which uses various commands for package management, yum can perform...

  • Chef Conf 2015: Package Management & Chef

    These are the slides from Joe Damato’s talk at Chef Conf 2015, titled “Package Management & Chef”. This talk covers: packages, package managers, tips, tricks, and chef cookbooks for setting up secure package repositories. Presentation

  • APT Cheat Sheet

    Getting Started: What does APT do? APT is a set of core tools found inside the Debian operating system. It provides utilities for the installation and removal of software packages and dependencies on a system. apt-get / high level package handling utility apt-get is the command-line tool for handling packages and provides functions such as...

  • Cook your own packages: Getting more out of fpm

    Guest post This is a guest post by Mathias Lafeldt, an Infrastructure Developer living in Hamburg, Germany. Mathias likes to blog and tweet about all things infrastructure automation. One of the areas he’s passionate about is packaging. While he knows a lot about building Debian packages, he loves to use packagecloud for hosting them. Introduction...

  • Announcing packagecloud:enterprise

    packagecloud:enterprise 1.0 is now available! packagecloud:enterprise is a completely stand-alone, on-premises installation of packagecloud.io. It can be installed on physical hardware or in the cloud and provides all the amazing features you already love about packagecloud.io: fine grained access control private repositories collaboration multi-distribution support build automation Chef and Puppet modules packagecloud:enterprise is an ideal...

  • Puppet Camp LA 2015 presentation slides

    These are the slides from Joe Damato’s talk at Puppet Camp LA 2015, titled “Package Managers and Puppet”. This talk covers: packages, package managers, puppet, and tips, tricks, and puppet modules for setting up secure package repositories. Presentation

  • DNS outage post-mortem

    This past Monday, our DNS provider, DNS Simple, experienced a distributed denial of service attack which took down their DNS resolution service. You can find more information about the DNS outage at our provider here. Our monitoring alerted us that there was a problem with domain resolution and we began investigating. Our DNS provider...