Answers:
如果您希望多次执行此操作,那么最简单,最带宽友好的方法是克隆内核的git存储库,并根据其标签签出所需的版本。最好克隆linux-stable repo,因为它将包括所有稳定版本的标签:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux
git checkout v2.6.36.2
要稍后切换到另一个版本,很容易:
git checkout v3.5.2
要更新您的存储库以包括所有最新的标记和提交:
git fetch
是的,kernel.org具有所有发行版本,包括2.6.36.2。但是请注意,大多数Linux发行版都将自己的补丁应用于原始内核源。
如果您不想下载整个内核提交历史记录(远高于1 GiB),则只能下载内核Git存储库中通往所需分支的部分。例如,要在本地签出4.5版的Ubuntu内核,您可以执行以下操作:
git clone --depth 1 --single-branch --branch v4.5 git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
这样,克隆大约为150 MiB。
--depth
表示--single-branch
BTW man git-clone
。
如果您只想获取一个标签以进行快速编译,请执行以下操作:
git clone --depth 1 --branch v4.18 \
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
--depth 1
做一个浅克隆,这大大减少了克隆时间和磁盘使用率。
由于cgit git服务器的工作方式和配置方式,它仅适用于当前不幸的标记,而不适用于任意提交。另请参阅:https : //stackoverflow.com/questions/3489173/how-to-clone-git-repository-with-specific-revision-changeset