是否仍然可以在 16.10 LTS 上更新 git?

是否仍然可以在 16.10 LTS 上更新 git?

我想使用他们的助手将我们的 Bitbucket 服务器迁移到云中,但它要求 git 为 2.25 或更高版本,我不知道如何更新它。是的,我知道在我们的环境中保留 16.10 是件很丢脸的事(我是 Linux 菜鸟)。

尽管 16.10 已经严重过时/终止使用,是否仍然可以更新 git?

答案1

是的,不支持,但我还是很慷慨。让我们从源代码构建 git。我在 16.10 的全新安装上测试了这一点。对我来说很管用!:D

更新源

编辑你的/etc/apt/sources.list(如果你还没有这样做)以替换archive.ubuntu.com。同时用“#”old-releases.ubuntu.com注释掉这些行security.ubuntu.com

sudo nano /etc/apt/sources.list

使用 ALT+R 进行搜索/替换。

因此它看起来应该是这样的:

deb http://old-releases.ubuntu.com/ubuntu/ yakkety main restricted
deb http://old-releases.ubuntu.com/ubuntu/ yakkety-updates main restricted
deb http://old-releases.ubuntu.com/ubuntu/ yakkety universe
deb http://old-releases.ubuntu.com/ubuntu/ yakkety-updates universe
deb http://old-releases.ubuntu.com/ubuntu/ yakkety multiverse
deb http://old-releases.ubuntu.com/ubuntu/ yakkety-updates multiverse
deb http://old-releases.ubuntu.com/ubuntu/ yakkety-backports main restricted universe multiverse
#deb http://security.ubuntu.com/ubuntu yakkety-security main restricted
#deb http://security.ubuntu.com/ubuntu yakkety-security universe
#deb http://security.ubuntu.com/ubuntu yakkety-security multiverse

更新程序包

这只会安装过去几年的最新(lulz)更新。

sudo apt-get upgrade

如果您有大量更新,此时可能需要重新启动,因为您可能有一个“较新的”内核。

您可能早就执行了上述步骤,在系统停止支持之前,并且不再有更新。没关系。

获取 git 源代码

让我们获取您能获取的最早的 git 源 tarball。这--no-check-certificate是必需的,因为您的系统上的 SSL 证书都已过期。

cd ~
wget --no-check-certificate https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.25.5.tar.gz

解压源代码

tar zxvf git-2.25.5.tar.gz
cd git-2.25.5

获得构建的先决条件

我们需要一个编译器来编译 git,并用 make 来构建它以及一些依赖项。

sudo apt install gcc make zlib1g-dev gettext

配置

./configure

这将成功,最后三行将是:

configure: creating ./config.status
config.status: creating config.mak.autogen
config.status: executing config.mak.autogen commands

否则就会失败,我们就无法继续下去。

制作

奇迹就在这里发生。我们将编译git二进制文件和所有其他部分。

make

根据您系统的速度,这可能需要几分钟。它会不断输出以“CC”为前缀的进度。

不应该有任何错误,因为 git 编译起来非常简单。最后几行会显示“GEN bin-wrappers/”之类的内容,后面跟着一些命令。

测试 git

./git version

应显示:

git version 2.25.5

安装 git

sudo make install

这会将二进制文件复制到,/usr/local/bin因此如果 bitbucket 需要知道在哪里找到新的 git 二进制文件,那就是它所在的地方。

which git命令应该返回/usr/local/bin/git并且git version应该返回正确的版本。

祝你好运!

相关内容