Cloning the Ceph Source Code Repository¶
You may clone a Ceph branch of the Ceph source code by going to github Ceph
Repository, selecting a branch (master
by default), and clicking the
Download ZIP button.
To clone the entire git repository, install and configure git
.
Install Git¶
To install git
on Debian/Ubuntu, execute:
sudo apt-get install git
To install git
on CentOS/RHEL, execute:
sudo yum install git
You must also have a github
account. If you do not have a
github
account, go to github.com and register.
Follow the directions for setting up git at
Set Up Git.
Add SSH Keys (Optional)¶
If you intend to commit code to Ceph or to clone using SSH
(git@github.com:ceph/ceph.git
), you must generate SSH keys for github.
Tip
If you only intend to clone the repository, you may
use git clone --recursive https://github.com/ceph/ceph.git
without generating SSH keys.
To generate SSH keys for github
, execute:
ssh-keygen
Get the key to add to your github
account (the following example
assumes you used the default file path):
cat .ssh/id_rsa.pub
Copy the public key.
Go to your github
account, click on “Account Settings” (i.e., the
‘tools’ icon); then, click “SSH Keys” on the left side navbar.
Click “Add SSH key” in the “SSH Keys” list, enter a name for the key, paste the key you generated, and press the “Add key” button.
Clone the Source¶
To clone the Ceph source code repository, execute:
git clone --recursive https://github.com/ceph/ceph.git
Once git clone
executes, you should have a full copy of the Ceph
repository.
Tip
Make sure you maintain the latest copies of the submodules
included in the repository. Running git status
will tell you if
the submodules are out of date.
cd ceph
git status
If your submodules are out of date, run:
git submodule update --force --init --recursive
Choose a Branch¶
Once you clone the source code and submodules, your Ceph repository
will be on the master
branch by default, which is the unstable
development branch. You may choose other branches too.
master
: The unstable development branch.stable
: The bugfix branch.next
: The release candidate branch.
git checkout master