Zainstalowałem git poprzez apt-get na Debianie 7, co daje mi:
# git --version
git version 1.7.10.4
Chciałbym uaktualnić do najnowszej wersji git. Próbowałem:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
Ale to daje następujące błędy:
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
Próbowałem także postępować zgodnie z tym przewodnikiem:
http://backports.debian.org/Instructions/
ale nadal nie mogę uzyskać najnowszego gita, jakieś sugestie?
Odpowiedzi:
Zaktualizowany 27.07.2016: dla Git 1.9.1 dostępna jest teraz wheezy-backports . Nadal obowiązują instrukcje instalacji nowszej wersji lub dla Jessie.
Gdy nowsza wersja pakietu backport nie jest dostępna, masz dwie opcje:
Poproś opiekunów pakietów o przygotowanie backportu. Nie ma gwarancji, że zadziała, ale niektórzy opiekunowie są pozytywnie nastawieni do tworzenia backportów, więc po prostu spróbuję.
Można tam znaleźć e-maile opiekunów .
Zbuduj go sam ze źródeł. Można to zrobić na dwa sposoby:
Zbuduj „jak jest” ze źródłowego archiwum. Należy wybrać tę drogę, upewnij się , aby skonfigurować system budowania GIT, aby zainstalować wszystko pod
~/git
lub/opt/git
czy coś takiego inaczej później będziesz miał wielki PITA usuwania czego zainstalowany.Problem polega na tym, że konwencjonalny uniksowy sposób instalowania oprogramowania poprzez rozpowszechnianie go w całym systemie plików jest sensowny, ale tylko wtedy, gdy masz jakiś rejestr, który „wie”, który plik należy do którego pakietu i odwrotnie, oraz systemy pakowania, takie jak Debian rób dokładnie to. Jeśli wykonasz „normalną” instalację pakietu zbudowanego ze źródeł, w większości przypadków później nie będziesz mógł odinstalować tego oprogramowania (nie używasz go
checkinstall
zamiastmake install
, ale tak naprawdę jest to ostateczność). I odwrotnie, jeśli skonfigurujesz pakiet źródłowy, aby zainstalować wszystko w jednym katalogu, będziesz miał niewielkie trudności z uruchomieniem oprogramowania (jego katalogów „binarnych” nie będzie w twoim katalogu$PATH
), w zamian odinstalowanie go później nie będzie stanowiło problemu - singielrm -rf /path/to/that/dir
.Zrób backportowanie się. Jest to bardziej zaangażowane, ale w prostych przypadkach może po prostu działać, więc IMO warto spróbować.
Zasadniczo wyglądasz tak (link do
.dsc
pliku jest pobierany ze strony pakietu w trybie niestabilnym ):Sprawdź, czy masz spełnione wszystkie zależności kompilacji, uruchamiając:
I zainstaluj wszystko, czego według tego narzędzia brakuje. Czasami pakiet może odnosić się do wersji czegoś zbyt świeżego, aby był dostępny w dystrybucji, do której backportujesz; w takim przypadku można spróbować oszukać i naprawić wersję takiego pakietu w
debian/control
pliku.Teraz napraw wersję pakietów, które mają zostać zbudowane. Najlepszym sposobem na osiągnięcie tego jest posiadanie odpowiedniego narzędzia:
Dodaje wpis do
debian/changelog
pliku i otwiera wybrany edytor tekstu, aby go nadzorować. Po prostu zamknij edytor - wersja pakietów, które mają zostać zbudowane, pochodzi z najwyższego wpisu w tym pliku.Teraz spróbujmy zbudować:
Jeśli masz szczęście, w tym momencie będziesz mieć mnóstwo nowych błyszczących
.deb
pakietów Git..
, które możesz po prostu zainstalować za pomocądpkg -i <packagename> ...
.(Uruchom,
debuild clean
aby pozbyć się wbudowanego narzędzia lub po prostugit
całkowicie usuń katalog. Możesz również usunąć wszystko, co zainstalowałeś po uruchomieniudpkg-checkbuilddep
).Niestety, jeśli z jakiegoś powodu kompilacja się nie powiedzie, próba naprawy wymaga pewnej wiedzy, ale nie wchodzi to w zakres tej dyskusji.
źródło
dget
nie jest potrzebny? Chodzi o to, aby dostarczyć ci wszystkie pliki stanowiące pakiet źródłowy, abyś miał coś do rozpakowania, ulepszenia i skompilowania. Pobranie tylko jednego.dsc
pliku wystarczy, ale brak będzie archiwów źródłowych i debianizacyjnych.Nadal możesz używać Git PPA dla Ubuntu Precise, informując apt, aby budował z najnowszego znalezionego tam źródła. Rozkłady są na tyle podobne, że powinno to działać dobrze.
Użyłem go z powodzeniem na Raspbian (który jest oparty na wheezy), aby uzyskać pakiety dla armhf, ale powinno działać dla każdej architektury.
Najpierw dodaj klucz GPG dla PPA:
Dodaj adres URL pakietów źródłowych do apt:
Zaktualizuj apt:
Zainstaluj zależności kompilacji:
Pobierz i skompiluj git ze źródła. Możesz to zrobić jako katalog tymczasowy, ponieważ proces kompilacji tworzy trochę cruft:
Zainstaluj właśnie utworzony pakiet i wyczyść go (git-core nie jest już potrzebny):
źródło
Jeśli chcesz zaktualizować konkretny pakiet w Debianie 7 (Wheezy), możesz skorzystać z backportów, po prostu dodając do /etc/apt/sources.list następujące linie:
Następnie, aby zainstalować / zaktualizować git , uruchom następujące polecenia:
Możesz także skonfigurować backporty w osobnym pliku w /etc/apt/sources.list.d/. Szczególnie wolę używać pliku /etc/apt/sources.list.d/backports.list .
źródło