Як оновити до останнього 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.