You can use boolean logic (e.g. AND/OR/NOT) for complex search queries. For more help and examples, see the search documentation.
Search by package name:
my-package
(implicit)
name:my-package
(explicit)
Search by package filename:
my-package.ext
(implicit)
filename:my-package.ext
(explicit)
Search by package tag:
latest
(implicit)
tag:latest
(explicit)
Search by package version:
1.0.0
(implicit)
version:1.0.0
(explicit)
prerelease:true
(prereleases)
prerelease:false
(no prereleases)
Search by package architecture:
architecture:x86_64
Search by package distribution:
distribution:el
Search by package license:
license:MIT
Search by package format:
format:deb
Search by package status:
status:in_progress
Search by package file checksum:
checksum:5afba
Search by package security status:
severity:critical
Search by package vulnerabilities:
vulnerabilities:>1
vulnerabilities:<1000
Search by # of package downloads:
downloads:>8
downloads:<100
Search by package type:
type:binary
type:source
Search by package size (bytes):
size:>50000
size:<10000
Search by dependency name/version:
dependency:log4j
dependency:log4j=1.0.0
dependency:log4j>1.0.0
Search by uploaded date:
uploaded:>"1 day ago"
uploaded:<"August 14, 2022 EST"
Search by entitlement token (identifier):
entitlement:3lKPVJPosCsY
Search by policy violation:
policy_violated:true
deny_policy_violated:true
license_policy_violated:true
vulnerability_policy_violated:true
Search by repository:
repository:repo-name
Search queries for all Debian-specific (and related) package types
Search by component:
deb_component:unstable
Search queries for all Maven-specific (and related) package types
Search by group ID:
maven_group_id:org.apache
Search queries for all Docker-specific (and related) package types
Search by image digest:
docker_image_digest:sha256:7c5..6d4
(full hashref only)
Search by layer digest:
docker_layer_digest:sha256:4c4..ae4
(full hashref only)
Field type modifiers (depending on the type, you can influence behaviour)
For all queries, you can use:
~foo
for negation
For string queries, you can use:
^foo
to anchor to start of term
foo$
to anchor to end of term
foo*bar
for fuzzy matching
For number/date or version queries, you can use:
>foo
for values greater than
>=foo
for values greater / equal
<foo
for values less than
<=foo
for values less / equal
Need a secure and centralised artifact repository to deliver Alpine,
Cargo,
CocoaPods,
Composer,
Conan,
Conda,
CRAN,
Dart,
Debian,
Docker,
Go,
Helm,
Hex,
LuaRocks,
Maven,
npm,
NuGet,
P2,
Python,
RedHat,
Ruby,
Swift,
Terraform,
Vagrant,
Raw & More packages?
Cloudsmith is the new standard in Package / Artifact Management and Software Distribution.
With support for all major package formats, you can trust us to manage your software supply chain.
Format-Specific Setup
To find out how to get setup locally so you can easily install packages, please select one of the formats from the tabs above.
Please note that the term repository here is Cloudsmith's concept of a package or artifact collection, and should not be confused with other package format specific meanings (such as the term as it is used by Docker, to mean a tagged image).
Note: Only help for package formats that exist in this repository is shown. You can also see the help for all package formats.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Debian Repository Setup
Apt/Dpkg is the package manager of choice for Debian-like systems (such as Ubuntu, Linux Mint, Raspbian, etc.)
The following instructions are for Debian or compatible packages only.
Distribution Setup
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.deb.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, architecture, or component (if supported), you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.deb.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH component=COMPONENT bash
or ... you can manually configure it yourself before installing packages:
apt-get install -y debian-keyring # debian only
apt-get install -y debian-archive-keyring # debian only
apt-get install -y apt-transport-https
# For Debian Stretch, Ubuntu 16.04 and later
keyring_location=/usr/share/keyrings/cloudsmith-love-open-source-archive-keyring.gpg
# For Debian Jessie, Ubuntu 15.10 and earlier
keyring_location=/etc/apt/trusted.gpg.d/cloudsmith-love-open-source.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/gpg.C8BD3877C0529188.key' | gpg --dearmor >> ${keyring_location}
curl -1sLf 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/config.deb.txt?distro=ubuntu&codename=xenial&component=main' > /etc/apt/sources.list.d/cloudsmith-love-open-source.list
sudo chmod 644 ${keyring_location}
sudo chmod 644 /etc/apt/sources.list.d/cloudsmith-love-open-source.list
apt-get update
Note: Please replace ubuntu, xenial and main above with your actual operating system (distribution and distribution release/version) and components (based on what's in this repository).
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
rm /etc/apt/sources.list.d/cloudsmith-love-open-source.list
apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get update
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Maven Repository Setup
A repository that supports Maven-compatible projects and JARs, with support for Gradle, SBT, Leiningen, Ivy, Grape, etc.
The following instructions are for Maven or compatible packages only.
Build System Setup
To enable the retrieval of Cloudsmith hosted packages via Maven, the first step is to add your repository to the dependencyManagement section of your pom.xml file.
To do this add the following XML to your project pom.xml file:
<repositories>
<repository>
<id>cloudsmith-love-open-source</id>
<url>https://dl.cloudsmith.io/public/cloudsmith/love-open-source/maven/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
After the repository is added to the pom.xml file, and credentials are added to the settings.xml file (if required), all that is left is to specify the dependency in the dependencies section of the project pom.xml file.
To do this add the following XML to your project pom.xml file:
<dependency>
<groupId>group-id</groupId>
<artifactId>artifact-id</artifactId>
<version>version</version>
</dependency>
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via Gradle, the first step is to add your repository to the build.gradle file.
To do add the following, at any location, to your build.gradle file:
repositories {
maven {
url "https://dl.cloudsmith.io/public/cloudsmith/love-open-source/maven/"
}
}
After the repository is added to the build.gradle file, and credentials are added to the ~/.gradle/gradle.properties file (if required), all that is left is to specify the dependency in the dependencies section of the project build.gradle file.
To do this add the below to your build.gradle file:
dependencies {
implementation 'group-id:artifact-id:version'
}
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via sbt, add your repository your build.sbt file.
resolvers += "cloudsmith-love-open-source" at "https://dl.cloudsmith.io/public/cloudsmith/love-open-source/maven/"
After the repository is added to the build.sbt file, and your credentials are added to the ~/.sbt/.credentials file (if required), all that is left is to specify the dependency in the dependencies section of the project build.sbt file.
To do this add the below to your build.sbt file:
libraryDependencies += "group-id" % "artifact-id" % "version"
Note: In sbt 0.13.x (not sbt 1.x or above) an extension point in the dependency resolution to use Maven-style resolvers is required. To enable this plugin add the following to project/maven.sbt (or project/plugin.sbt):
addMavenResolverPlugin
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via Leiningen, add your repository to the top level of the project.clj file.
:repositories [["snapshots" "https://dl.cloudsmith.io/public/cloudsmith/love-open-source/maven/"]
["releases" "https://dl.cloudsmith.io/public/cloudsmith/love-open-source/maven/"]]
After the repository is added to the project.clj file all that is left is to specify the dependency in the dependencies section of the project project.clj file.
To do this add the below to your project.clj file:
:dependencies [[group-id/artifact-id "version"]]
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via Groovy's Grape, add the repository to the Groovy script.
@GrabResolver(name='cloudsmith-love-open-source', root='https://dl.cloudsmith.io/public/cloudsmith/love-open-source/maven/')
After the repository is added to your script all that is required is to specify the dependency within the script.
@Grab(group='group-id', module='artifact-id', version='version')
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
Encrypting Credentials
As mentioned earlier we would highly advise that you encrypt your credentials using something like mvn --encrypt-password YOUR-ENTITLEMENT-TOKEN
, of which you can refer to the mini encryption guide for more detailed help (external link). This method may only work for Maven and Gradle-based repositories.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Python Repository Setup
Pip/Pipenv/Poetry are package managers of choice for the Python ecosystem. Cloudsmith is fully compatible as a PyPi-like repository.
The following instructions are for Python or compatible packages only.
Python Setup Via Command-Line
You can install packages directly by using the --index-url
or --extra-index-url
Pip
configuration arguments when executing a pip command.
Note: We recommend using --index-url
. As per
pip's documentation: Using the --extra-index-url
option to search for
packages that are not in this repository (such as private packages) is unsafe, per a security vulnerability called
dependency confusion: an attacker can
claim the package on the public repository in a way that will ensure it gets chosen over the private package. For
more detail, see our expanded documentation on the
usage and dangers of extra
index URL.
pip install my-awesome-package==1.0.0 --index-url https://dl.cloudsmith.io/public/cloudsmith/love-open-source/python/simple/
Note: You'll need to replace my-awesome-package and 1.0.0 with your own awesome python packages and versions.
Python Setup Via Pip
Similar to setup via command-line, pip needs to be passed the --index-url
configuration option. To do
this add --index-url
to the top of your requirements.txt (or similar) file.
--index-url https://dl.cloudsmith.io/public/cloudsmith/love-open-source/python/simple/
my-awesome-package==1.0.0
Note: You'll need to replace my-awesome-package and 1.0.0 with your own awesome python packages and versions.
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
Remove the following line from your $HOME/.pip/pip.conf file:
--index-url=https://dl.cloudsmith.io/public/cloudsmith/love-open-source/python/simple/
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
RedHat Repository Setup
A repository for RedHat-like systems (such as RHEL, CentOS, SUSE, Fedora, etc.), compatible with yum, dnf, zypper, etc.
The following instructions are for RedHat or compatible packages only.
Distribution Setup
To install packages you'll need to setup your repository, which is specific to your distribution:
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
yum install yum-utils pygpgme
rpm --import 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/gpg.C8BD3877C0529188.key'
curl -1sLf 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/config.rpm.txt?distro=el&codename=7' > /tmp/cloudsmith-love-open-source.repo
yum-config-manager --add-repo '/tmp/cloudsmith-love-open-source.repo'
yum -q makecache -y --disablerepo='*' --enablerepo='cloudsmith-love-open-source'
Note: Please replace el and 7 above with your actual distribution/version and use Wildcards when enabling multiple repos.
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
For DNF version 4.x and below
dnf install yum-utils pygpgme
rpm --import 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/gpg.C8BD3877C0529188.key'
curl -1sLf 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/config.rpm.txt?distro=fedora&codename=29&dnf_version=4' > /tmp/cloudsmith-love-open-source.repo
dnf config-manager --add-repo '/tmp/cloudsmith-love-open-source.repo'
dnf -q makecache -y --disablerepo='*' --enablerepo='cloudsmith-love-open-source' --enablerepo='cloudsmith-love-open-source-source'
For DNF version 5.x and above
dnf install yum-utils pygpgme
rpm --import 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/gpg.C8BD3877C0529188.key'
curl -1sLf 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/config.rpm.txt?distro=fedora&codename=29&dnf_version=5' > /tmp/cloudsmith-love-open-source.repo
dnf config-manager addrepo --from-repofile='/tmp/cloudsmith-love-open-source.repo'
dnf -q makecache -y --disablerepo='*' --enablerepo='cloudsmith-love-open-source' --enablerepo='cloudsmith-love-open-source-source'
Note: Please replace fedora and 29 above with your actual distribution/version.
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
microdnf upgrade microdnf # v3.8+ required to use makecache
rpm --import 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/gpg.C8BD3877C0529188.key'
curl -1sLf 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/config.rpm.txt?distro=almalinux&codename=8.4' > /etc/yum.repos.d/cloudsmith-love-open-source.repo
microdnf makecache -y --disablerepo='*' --enablerepo='cloudsmith-love-open-source*'
Note: Please replace almalinux and 8.4 above with your actual distribution/version.
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
curl -1sLf 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/config.rpm.txt?distro=opensuse&codename=42.2' > /tmp/cloudsmith-love-open-source.repo
zypper ar -f '/tmp/cloudsmith-love-open-source.repo'
zypper --gpg-auto-import-keys refresh cloudsmith-love-open-source cloudsmith-love-open-source-source
Note: Please replace opensuse and 42.2 above with your actual distribution/version.
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
rm /etc/yum.repos.d/cloudsmith-love-open-source.repo
rm /etc/yum.repos.d/cloudsmith-love-open-source-source.repo
rm /etc/yum.repos.d/cloudsmith-love-open-source.repo
rm /etc/yum.repos.d/cloudsmith-love-open-source-source.repo
rm /etc/yum.repos.d/cloudsmith-love-open-source.repo
zypper rr cloudsmith-love-open-source
zypper rr cloudsmith-love-open-source-source
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Ruby Repository Setup
Rubygems/bundler are the package managers of choice for the Ruby ecosystem. Cloudsmith is fully compatible as a Rubygems-like repository.
The following instructions are for Ruby or compatible packages only.
Setup With Bundler
As stated by Bundler, "Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed."
Bundler from version 1.7 supports scoped sources, so you can install a gem from Cloudsmith using the following declaration in your Gemfile:
source 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/ruby/' do
gem 'awesome-gem', '~> 42.0'
end
Note: You'll need to replace awesome-gem and ~> 42.0 with your own gem name and version.
Setup With Ruby CLI
You can also add Cloudsmith as a source for the Ruby CLI instead:
gem sources --add 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/ruby/'
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
gem sources -r 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/ruby/'
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Vagrant Repository Setup
Cloudsmith is fully compatible as an (Hashicorp) Atlas-like repository.
The following instructions are for Vagrant or compatible packages only.
Vagrant Setup
To enable the retrieval of Cloudsmith hosted Vagrant boxes, the box can either be added directly via Vagrant's CLI or the project's Vagrantfile can be updated. To add the box directly via Vagrant's CLI, execute the following:
vagrant box add 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/vagrant/awesome-box/metadata.json' \
--name 'awesome-box' \
--box-version 'box-version' \
--provider 'box-provider'
Note: You'll need to replace awesome-box, box-version and box-provider with your own uploaded package details.
To add the box without having to specify the URL each time, the following must be added to the project's Vagrantfile:
config.vm.box = "awesome-box"
config.vm.box_url = "https://dl.cloudsmith.io/public/cloudsmith/love-open-source/vagrant/awesome-box/metadata.json"
Note: You'll need to replace awesome-box with your own uploaded package details.
After this configuration has been added to the Vagrantfile, Vagrants CLI tool can now be used as normal:
vagrant up
(out)Bringing machine 'default' up with 'box-provider' provider...
(out) ==> default: Box 'awesome-box' could not be found. Attempting to find and install...
(out) default: Box Provider: 'box-provider'
(out) default: Box Version: >= '0'
(out) ==> default: Loading metadata for box 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/vagrant/awesome-box/metadata.json'
(out) default: URL: https://dl.cloudsmith.io/public/cloudsmith/love-open-source/vagrant/awesome-box/box-version/my-awesome-box.box
(out) ==> default: Adding box 'awesome-box' ('box-version') for provider: 'box-provider'
(out) ==> default: Successfully added box 'awesome-box' ('box-version') for: 'box-provider'
Note: You'll need to replace awesome-box, box-version and box-provider with your own uploaded package details.
After this configuration has been added to the Vagrantfile new versions will be automatically detected by Vagrant when uploaded to Cloudsmith:
vagrant up
(out)Bringing machine 'default' up with 'box-provider' provider...
(out) ==> default: Checking if box 'awesome-box' is up to date...
(out) ==> default: A newer version of the box 'awesome-box' is available! You currently
(out) ==> default: have version 'box-version'. The latest is version 'my-new-awesome-box-version'. Run
(out) ==> default: `vagrant box update` to update.
(out)[snip]
vagrant box update
(out) ==> default: Checking for updates to 'awesome-box'
(out) default: Latest installed version: 'box-version'
(out) default: Version constraints:
(out) default: Provider: 'box-provider'
(out) ==> default: Updating 'awesome-box' with provider 'box-provider' from version
(out) ==> default: 'box-version' to 'my-new-awesome-box-version'...
(out) ==> default: Loading metadata for box 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/vagrant/awesome-box/metadata.json
(out) ==> default: Adding box 'awesome-box' ('my-new-awesome-box-version') for provider: 'box-provider'
(out) ==> default: Successfully added box 'awesome-box' ('my-new-awesome-box-version') for: 'box-provider'
Note: You'll need to replace awesome-box, box-version and box-provider with your own uploaded package details.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Raw Repository Setup
A repository that acts like a container for any type of files. Think DropBox, but with a pinch more awesome.
The following instructions are for Raw or compatible packages only.
Setup
The purpose of raw files depends on the content of the raw file, which Cloudsmith doesn't know, so we can't provide you with an automated setup method (yet), but it might be as simple as downloading the file.
You can download a raw file using the browser, or if you're running Linux
you can use standard tools such as curl
.
Downloading Via Curl
curl -1sLf -O 'https://dl.cloudsmith.io/public/cloudsmith/love-open-source/raw/files/your-package.zip'
Note: You'll need to replace your-package.zip with your own equally fantastic file name.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
What's this page? You can always download packages from Cloudsmith manually, but native package manager setup allows you to simplify and automate downloads. A native package manager has intelligence built-in that allows it to understand concepts like metadata, versioning, duplication, convergence, etc. As such, we will always recommend that you install natively where possible. Learn more in the setup documentation.