Làm cách nào để nâng cấp lên git mới nhất trên debian 7?


14

Tôi đã cài đặt git thông qua apt-get trên debian 7, cung cấp cho tôi:

# git --version
git version 1.7.10.4

Tôi muốn làm xấu đi phiên bản mới nhất của git. Tôi đã thử:

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

Nhưng điều đó đưa ra các lỗi sau:

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

Tôi cũng đã cố gắng làm theo hướng dẫn này:

http://backports.debian.org/Inemony/

Nhưng tôi vẫn không thể có được git mới nhất, bất kỳ đề nghị?


1
Tại sao không biên dịch từ nguồn (tài liệu INSTALL có một số trợ giúp về điều đó, nếu bạn chưa quen với nó)?
nerdwaller

Tôi sẽ tải xuống kho lưu trữ trực tiếp cho trang web got nếu nguồn launchpad bị hỏng.
Ramhound

2
Bạn có thực sự cần? Trong hầu hết các trường hợp, cài đặt phiên bản mới hơn không đáng để gặp rắc rối. Có một tính năng cụ thể trong phiên bản mới mà bạn cần không? Bạn có phiên bản nào và bạn muốn cài đặt phiên bản nào? Dù sao, bạn không thể sử dụng PPA với Debian , chúng là một thứ Ubuntu.
terdon

Câu trả lời:


12

Cập nhật 2016/07/27: một tiếng thở khò khè-backports là bây giờ đã có cho Git 1.9.1. Các hướng dẫn vẫn được áp dụng để cài đặt phiên bản mới hơn hoặc cho Jessie.


Khi không có phiên bản mới hơn của gói backport, bạn có hai tùy chọn:

  1. Yêu cầu các nhà bảo trì gói để chuẩn bị một backport. Nó không được đảm bảo để làm việc nhưng một số người bảo trì tích cực về việc tạo ra backport, vì vậy tôi chỉ cần thử.

    Email của người bảo trì có thể được tìm thấy ở đó .

  2. Xây dựng nó từ các nguồn. Điều này có thể được thực hiện theo hai cách:

    • Xây dựng "như là" từ tarball nguồn. Nếu bạn chọn tuyến đường này, hãy đảm bảo định cấu hình hệ thống xây dựng của Git để cài đặt mọi thứ bên dưới ~/githoặc /opt/githoặc một cái gì đó như thế này nếu không sau này bạn sẽ có một PITA tuyệt vời loại bỏ những gì bạn đã cài đặt.

      Vấn đề là cách cài đặt phần mềm Unix thông thường bằng cách phổ biến nó trên toàn bộ hệ thống tệp là hợp lý nhưng chỉ khi bạn có một loại đăng ký nào đó "biết" tệp nào thuộc gói nào và ngược lại, và các hệ thống đóng gói như Debian làm chính xác điều này Nếu bạn cài đặt "bình thường" gói được xây dựng từ các nguồn, thì trong hầu hết các trường hợp, bạn sẽ không có cách nào để gỡ cài đặt phần mềm này sau này (sử dụng checkinstallthay vì make install, nhưng đây thực sự là giải pháp cuối cùng). Ngược lại, nếu bạn định cấu hình gói nguồn để cài đặt mọi thứ trong một thư mục, bạn sẽ gặp khó khăn nhỏ khi chạy phần mềm (thư mục "nhị phân" của nó sẽ không có trên bạn $PATH), đổi lại việc gỡ cài đặt sau sẽ không có vấn đề gì - một đơn rm -rf /path/to/that/dir.

    • Làm backporting chính mình. Điều này có liên quan nhiều hơn nhưng trong những trường hợp đơn giản, nó có thể chỉ hoạt động nên IMO nó đáng để thử.

      Về cơ bản bạn đi như thế này (một liên kết đến .dsctệp được lấy từ trang của gói không ổn định ):

      # 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
      

      Kiểm tra xem bạn có tất cả các phụ thuộc xây dựng hài lòng bằng cách chạy không:

      $ dpkg-checkbuilddeps
      

      Và cài đặt mọi thứ mà công cụ nói hiện đang thiếu. Đôi khi một gói có thể đề cập đến một phiên bản của một cái gì đó quá mới có sẵn trong bản phân phối mà bạn đang nhập vào; trong trường hợp này, bạn có thể thử gian lận và sửa phiên bản của gói đó trong debian/controltệp.

      Bây giờ sửa chữa phiên bản của các gói sắp được xây dựng. Cách tốt nhất để đạt được điều này là có một công cụ thực hiện đúng:

      $ dch --bpo
      

      Nó sẽ thêm một mục vào debian/changelogtệp và mở trình soạn thảo văn bản của bạn để giám sát nó. Chỉ cần đóng trình chỉnh sửa - phiên bản cho các gói sẽ được xây dựng được lấy từ mục hàng đầu trong tệp này.

      Bây giờ hãy thực sự cố gắng xây dựng:

      $ dpkg-buildpackage -uc -us -b
      

      Nếu bạn may mắn, tại thời điểm này, bạn sẽ có một loạt các .debgói Git mới sáng bóng ..mà bạn có thể cài đặt bằng cách sử dụng dpkg -i <packagename> ....

      (Chạy debuild cleanđể thoát khỏi lỗi được xây dựng hoặc chỉ xóa githoàn toàn thư mục. Bạn cũng có thể muốn xóa bất cứ thứ gì bạn đã cài đặt sau khi chạy dpkg-checkbuilddep.)

      Thật không may, nếu việc xây dựng thất bại vì một số lý do, cần có kiến ​​thức nhất định để cố gắng khắc phục nhưng điều này nằm ngoài phạm vi của cuộc thảo luận này.


@Dereckson, cảm ơn lời đề nghị chỉnh sửa của bạn - Tôi đánh giá cao nó! Nhưng bạn có thể giải thích tại sao dgetkhông cần thiết? Toàn bộ mục đích của nó là mang đến cho bạn tất cả các tệp cấu thành gói nguồn để bạn thực sự có một cái gì đó để giải nén, chỉnh sửa và xây dựng. Chỉ tìm nạp .dsctệp duy nhất sẽ làm điều đó nhưng tarball nguồn và debianization sẽ bị thiếu.
kostix

Ôi, lỗi của tôi. Trình tự lệnh đã lừa tôi, vì chỉ có tệp git_2.1.4-2.1.dsc được sử dụng sau đó rõ ràng làm đối số. Tôi nghĩ rằng nguồn dpkg đã tìm nạp các nguồn, nhưng nó thực sự đòi hỏi các tập tin gói phải ở đó.
Dereckson

7

Bạn vẫn có thể sử dụng Git PPA cho Ubuntu Chính xác bằng cách yêu cầu apt xây dựng từ nguồn mới nhất mà nó tìm thấy ở đó. Các bản phân phối tương tự nhau đủ để điều này sẽ hoạt động tốt.

Tôi đã sử dụng nó thành công trên Raspbian (dựa trên sự khò khè) để có được các gói cho armhf, nhưng nó sẽ hoạt động cho mọi kiến ​​trúc.

Đầu tiên thêm khóa GPG cho PPA:

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

Thêm URL cho các gói nguồn vào apt:

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

Cập nhật apt:

apt-get update

Cài đặt phụ thuộc bản dựng:

apt-get build-dep git

Tải về và xây dựng git từ nguồn. Bạn có thể muốn làm điều này là một thư mục tạm thời, vì quá trình xây dựng tạo ra một chút của hành trình:

apt-get -b source git

Cài đặt gói bạn vừa xây dựng và dọn sạch (git-core không còn cần thiết):

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

7

Nếu bạn muốn nâng cấp một gói cụ thể trong Debian 7 (Wheezy), bạn có tùy chọn sử dụng backport bằng cách thêm vào /etc/apt/source.list các dòng sau:

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

Sau đó, để cài đặt / nâng cấp git , hãy chạy các lệnh:

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

Bạn cũng có thể định cấu hình backport trong một tệp riêng trong /etc/apt/source.list.d/. Tôi đặc biệt thích sử dụng tệp /etc/apt/source.list.d/backports.list .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.