Як оновити до останнього git на debian 7?


14

Я встановив git через apt-get на debian 7, який дає мені:

# git --version
git version 1.7.10.4

Я хотів би перейти на пізню версію git. Я намагався:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

Але це дає такі помилки:

Fetched 6,944 B in 0s (10.1 kB/s)
W: Failed to fetch http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/wheezy/main/source/Sources  404  Not Found

W: Failed to fetch http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/wheezy/main/binary-amd64/Packages  404  Not Found

Я також намагався слідувати цьому керівництву:

http://backports.debian.org/Instructions/

але я все ще не можу отримати останні новини, будь-які пропозиції?


1
Чому б не компілювати з джерела (документ INSTALL має певну допомогу щодо цього, якщо ви новачок у ньому)?
nerdwaller

Я б завантажував архів безпосередньо на веб-сайт отримав, якщо джерело запуску буде порушено.
Рамхаунд

2
Вам справді потрібно? У більшості випадків установка нової версії не вартує клопоту. Чи є в новій версії якась особливість, яка вам потрібна? Яку версію ви маєте та яку саме ви хочете встановити? У будь-якому випадку, ви не можете використовувати PPA з Debian , вони є предметом Ubuntu.
тердон

Відповіді:


12

Оновлення 2016-07-27: а свистячий Backports є тепер доступний для Git 1.9.1. Інструкція все ще застосовується до встановлення більш нової версії або для Джессі.


Якщо новіша версія пакета резервного доступу недоступна, у вас є два варіанти:

  1. Попросіть обслуговувачів пакетів підготувати резервний порт. Працювати не гарантується, але деякі обслуговуючі люди позитивно ставляться до створення опор, тому я б просто спробував.

    Електронної пошти мейнтейнера можна знайти там .

  2. Побудуйте його самостійно з джерел. Це можна зробити двома способами:

    • Побудуйте "як є" з вихідного тарболу. Якщо ви вибираєте цей маршрут, переконайтеся , щоб налаштувати систему збирання мерзотник, щоб встановити всі під ~/gitабо /opt/gitабо що - щось подібне в іншому випадку пізніше ви будете мати великий PITA видалення , що ви встановили.

      Проблема полягає в тому, що звичайний спосіб встановлення програмного забезпечення Unix шляхом його поширення по всій файловій системі є розумним, але лише тоді, коли у вас є якийсь реєстр, який "знає", який файл належить до якого пакету і навпаки, і системи упаковки, такі як Debian's робити саме це. Якщо ви зробите "звичайну" установку пакету, побудованого з джерел, у більшості випадків у вас не буде можливості видалити цю програму пізніше (якщо її використовувати не checkinstallзамість цього make install, але це справді є крайнім заходом). І навпаки, якщо ви налаштуєте вихідний пакет, щоб встановити все в одному каталозі, у вас виникнуть незначні труднощі із запуском програмного забезпечення (його "бінарні" каталоги не будуть у вас $PATH), в обмін на його видалення пізніше буде непроцедур - один rm -rf /path/to/that/dir.

    • Зробіть репортаж. Це більше стосується, але в простих випадках це може просто працювати, тому IMO варто спробувати.

      В основному ви йдете так (посилання на .dscфайл взято зі сторінки пакета в нестабільному режимі ):

      # apt-get install devscripts
      $ mkdir ~/devel && cd $_
      $ dget http://ftp.de.debian.org/debian/pool/main/g/git/git_2.1.4-2.1.dsc
      $ dpkg-source -x git_2.1.4-2.1.dsc
      $ cd git
      

      Перевірте, чи задоволені всі залежності побудови, запустивши:

      $ dpkg-checkbuilddeps
      

      І встановити все, про що говорить інструмент, наразі відсутнє. Іноді пакет може посилатися на версію чогось занадто свіжого, щоб бути доступним у дистрибутиві, до якого ви підтримуєте; у цьому випадку нормально спробувати обдурити і виправити версію такого пакета у debian/controlфайлі.

      Тепер виправте версію пакетів, які збираються побудувати. Найкращий спосіб досягти цього - це змусити інструмент зробити все правильно:

      $ dch --bpo
      

      Це додасть запис до debian/changelogфайлу та відкриє ваш текстовий редактор за вибором для його нагляду. Просто закрийте редактор - версія для пакунків, які потрібно побудувати, взята з верхнього запису цього файлу.

      Тепер спробуємо побудувати:

      $ dpkg-buildpackage -uc -us -b
      

      Якщо вам пощастить, у цей момент у вас з’явиться купа нових блискучих .debпакетів Git .., які ви можете просто встановити, використовуючи dpkg -i <packagename> ....

      (Запустіть, debuild cleanщоб позбутися вбудованого файлу або просто видалити gitкаталог повністю. Ви також можете видалити все, що встановлено після запуску dpkg-checkbuilddep.)

      На жаль, якщо будівництво з якоїсь причини не вдається, потрібні певні знання, щоб спробувати виправити, але це поза сферою цієї дискусії.


@Dereckson, дякую за вашу пропозицію щодо редагування - я вдячний! Але чи можете ви детальніше зупинитися на тому, чому dgetце не потрібно? Вся його суть полягає в тому, щоб принести вам усі файли, що складають вихідний пакет, щоб у вас насправді було щось розпакувати, налаштувати та скласти. Вилучення лише одного .dscфайлу зробить саме це, але джерело та дебіанізація тарболи будуть відсутні.
kostix

О, моя провина. Послідовність команд обдурила мене, оскільки тільки файл git_2.1.4-2.1.dsc згодом явно використовується як аргумент. Я думав, що dpkg-source взяв джерела, але він дійсно вимагає, щоб файли пакетів були там фізично.
Дерексон

7

Ви все ще можете використовувати Git PPA для Ubuntu Precision, сказавши apt для створення з останнього джерела, яке він там знайде. Розподіл досить схожий, що це повинно працювати чудово.

Я використовував це з успіхом на Raspbian (який заснований на wheezy), щоб отримати пакети для armhf, але це повинно працювати для будь-якої архітектури.

Спочатку додайте ключ GPG для PPA:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E1DF1F24

Додайте URL-адресу для вихідних пакетів, щоб підходити:

cat > /etc/apt/sources.list.d/git.list << EOF
deb-src http://ppa.launchpad.net/git-core/ppa/ubuntu precise main
EOF

Оновити apt:

apt-get update

Встановити залежності побудови:

apt-get build-dep git

Завантажте та створіть git з джерела. Ви можете зробити це тимчасовим каталогом, оскільки процес збирання створює трохи суворого:

apt-get -b source git

Встановіть щойно створений пакет та очистіть (git-core більше не потрібен):

dpkg -i git_*.deb git-man_*.deb
dpkg -P git-core

7

Якщо ви хочете оновити певний пакет у Debian 7 (Wheezy), у вас є можливість використовувати спинки, просто додавши до /etc/apt/sources.list такі рядки:

deb http://cloudfront.debian.net/debian wheezy-backports main
deb-src http://cloudfront.debian.net/debian wheezy-backports main

Потім для встановлення / оновлення git запустіть команди:

$ aptitude update
$ aptitude -t wheezy-backports install git

Ви також можете налаштувати репортери в окремому файлі в /etc/apt/sources.list.d/. Я особливо вважаю за краще використовувати файл /etc/apt/sources.list.d/backports.list .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.