如何指定 build-dep 命令来获取 git 版本 2.10

如何指定 build-dep 命令来获取 git 版本 2.10

我遇到一个问题,需要执行以下步骤:

sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev libcurl4-openssl-dev
sudo apt-get build-dep git
mkdir ~/git-openssl
cd ~/git-openssl
apt-get source git
dpkg-source -x git_1.7.9.5-1.dsc
cd git-1.7.9.5

对于我的 Ubuntu 14.04 安装,我将 git 升级到版本 2.10.2,但是当我进行到此步骤 ( sudo apt-get build-dep git) 时,git 软件包版本为 1.9.1。我的问题很简单。有没有办法使用命令build-dep获取版本 2.10.2?

答案1

您必须使用标志添加最新的 ppa --enable-source来源):

sudo add-apt-repository --enable-source ppa:git-core/ppa
sudo apt-get update

你可以找到我在 Ubuntu 14.04 服务器上使用的完整脚本的分支这里

#!/usr/bin/env bash

# Clear out all previous attempts
rm -rf "/tmp/source-git/"

# Add PPA for latest git
sudo add-apt-repository --enable-source ppa:git-core/ppa
sudo apt-get update

# Get the dependencies for git, then get openssl
sudo apt-get install build-essential fakeroot dpkg-dev -y
sudo apt-get build-dep git -y
sudo apt-get install libcurl4-openssl-dev -y
mkdir -p "/tmp/source-git/"
cd "/tmp/source-git/"
apt-get source git

# We need to actually go into the git source directory
# find -type f -name "*.dsc" -exec dpkg-source -x \{\} \;
cd $(find -mindepth 1 -maxdepth 1 -type d -name "git-*")
pwd

# This is where we actually change the library from one type to the other.
sed -i -- 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/' ./debian/control
# Compile time, itself, is long. Skips the tests. Do so at your own peril.
sed -i -- '/TEST\s*=\s*test/d' ./debian/rules

# Build it.
dpkg-buildpackage -rfakeroot -b -uc -us

# Install
find .. -type f -name "git_*ubuntu*.deb" -exec sudo dpkg -i \{\} \;

我之前已经安装过git,所以最后一个命令给了我一个关于缺少依赖项的错误liberror-perl,下面的命令帮我修复了这个问题

sudo apt-get install liberror-perl
sudo apt-get -f install
find .. -type f -name "git_*ubuntu*.deb" -exec sudo dpkg -i \{\} \;

相关内容