Làm cách nào để giữ cho hệ thống Debian của tôi với các gói mới nhất?


9

Hầu hết "Phần mềm" tôi cài đặt trên máy chủ của mình cần phải là bản phát hành mới nhất (Java, Tomcat, MySQL-Cluster). Vì vậy, tôi không bao giờ gặp may mắn, có các gói Debian dựng sẵn (trong bản phân phối) có sẵn. Do đó, tất cả phần mềm được tải xuống từ trang web của dự án và được xây dựng từ nguồn.

Bây giờ câu hỏi của tôi là, cách chính xác để cài đặt chúng trên hệ thống Debian của tôi là gì?

Vấn đề chính của tôi là, khi cài đặt chúng trực tiếp từ nguồn, chúng không được bao gồm trong quản lý gói (có khả năng). Checkinstall dường như không thực sự được đề xuất sử dụng và Equiv cũng có nhược điểm. Là cách chính xác duy nhất để xử lý việc này bằng cách xây dựng các gói của riêng tôi với dh_make và dpkg-buildpackage?

Bạn đang làm gì nếu bạn luôn cần phiên bản mới nhất?

Câu trả lời:


10

Muốn có nhiều gói gần đây là một vấn đề phổ biến trên bất kỳ HĐH nào. Chu kỳ phát hành của Debian đã trung bình 2 năm trong những năm gần đây, vì vậy đến cuối chu kỳ này, có lẽ đây là vấn đề cấp bách hơn. Một cách để giảm thiểu điều này là chuyển sang thử nghiệm vào cuối chu kỳ phát hành ổn định, khi phiên bản tiếp theo gần như ổn định. Không rõ ràng từ câu hỏi liệu nó đang nói về sự ổn định nói chung về kiểm tra và / hoặc không ổn định là tốt. Bất kể, có phiên bản mới nhất có thể là một vấn đề ngay cả khi một phiên bản nếu chạy không ổn định, vì phiên bản mới nhất có thể chưa được đóng gói. Các nhà phát triển / đóng gói Debian là tình nguyện viên, vì vậy họ có thể cảm thấy buồn chán hoặc bận rộn với những thứ khác, với kết quả là gói bị mòn.

Để đơn giản và cụ thể, tôi giả định rằng kế hoạch là dự phòng một gói để ổn định, nhưng nó được áp dụng chung hơn. Vì vậy, đây là những gì tôi làm nếu tôi muốn một phiên bản phần mềm mới hơn không có mặt ổn định, theo thứ tự gần đúng.

  1. Tìm gói trong Debian Backports . Đôi khi bạn có thể tìm thấy một gói đủ gần đây để đáp ứng mục đích của bạn. Tuy nhiên, thường thì các gói này đã lỗi thời so với phiên bản không ổn định hoặc thử nghiệm hoặc ngược dòng.

  2. Cố gắng cài đặt gói trực tiếp từ thử nghiệm, không ổn định hoặc thử nghiệm. Nếu ổn định không chuyển hướng nhiều từ bất kỳ phiên bản nào bạn đang cố gắng cài đặt, thì điều này có thể hoạt động. Bạn sẽ biết cách tiếp cận này là một phương pháp tồi nếu hệ thống bắt đầu cố gắng cài đặt hoặc nâng cấp các gói cơ bản từ phiên bản mới hơn. Giả sử bạn đang cố gắng cài đặt từ không ổn định, sau đó

    apt-get install packagename/unstable
    

    là điều đầu tiên để thử. Với các phiên bản apt ổn định, điều này thường sẽ thất bại, vì nó yêu cầu các gói khác không ổn định và câu thần chú này chỉ tăng mức độ ưu tiên packagenameđủ cao để cài đặt không ổn định. Nếu bạn không hiểu điều này có nghĩa là gì, hãy đi và đọc man apt_preferences. Tiếp tục thêm các phụ thuộc từ không ổn định, đảm bảo rằng nó không cố gắng nâng cấp các gói cơ bản. Ví dụ: nếu nó bắt đầu cố gắng nâng cấp libc6 hoặc X hoặc KDE hoặc Gnome, hãy hủy bỏ ngay lập tức. Nó thường ổn nếu nó cố gắng nâng cấp các gói khác từ cùng một gói nguồn, vì chúng thường được liên kết chặt chẽ với nhau. Để xem gói nguồn nào mà gói nhị phân phụ thuộc vào, hãy làm

    apt-cache showsrc packagename
    

    Vì nhiều thứ phụ thuộc vào thư viện GNU C (libc6) nên đây là một vấn đề. Gần đây, API dường như đã ổn định, vì vậy giờ đây có thể thoát ra thường xuyên hơn mà không phải nâng cấp nó. Nếu một gói thỏa mãn các phụ thuộc thời gian chạy của nó ở mức ổn định, nhưng vẫn không hoạt động chính xác, hãy báo lỗi. Nếu người đóng gói nói với bạn rằng đó không phải là một lỗi, họ đã sai. :-)

  3. Backport gói mình từ thử nghiệm, không ổn định hoặc thử nghiệm.

    Như đã đề cập ở trên, backports là một lựa chọn, nhưng thường các gói này đã lỗi thời so với phiên bản không ổn định hoặc thử nghiệm hoặc ngược dòng.

    Điều này thường có thể yêu cầu một kiểu vòng lặp xây dựng phụ thuộc đệ quy. Trước tiên bạn cần có được các phụ thuộc xây dựng với

    apt-get build-dep packagename    
    

    Nếu điều này không thành công vì một trong những phụ thuộc không đủ gần đây, trước tiên bạn cần phải nhập lại phụ thuộc đó. Điều này có thể vượt khỏi tầm kiểm soát. Tôi thường bỏ cuộc nếu phải đối phó với hơn 2 cấp đệ quy. Tuy nhiên, lưu ý rằng các phụ thuộc thực sự không nhất thiết phải chặt chẽ như đã nêu. một phiên bản cũ hơn có thể hoạt động. Trình đóng gói thường không cố gắng tìm phiên bản cũ nhất của phụ thuộc bản dựng (hoặc, thực sự là thời gian chạy) sẽ hoạt động.

  4. Kiểm tra sự sẵn có của các gói từ thượng nguồn tương ứng. Lý tưởng nhất là những phiên bản này sẽ phù hợp với phiên bản phân phối của bạn, nhưng bạn cũng có thể xây dựng lại chúng nếu cần thiết.

  5. Tạo các gói cho phiên bản phần mềm gần đây hơn các gói gần đây nhất trong thử nghiệm / không ổn định / thử nghiệm. Điều này có thể tương đối thách thức, nhưng đôi khi vẫn có thể làm được một cách đáng ngạc nhiên. Điều đầu tiên cần lưu ý là nếu bạn đang cố gắng gói một phiên bản mới hơn của gói đã có trong Debian, thì bạn đã bắt đầu với một lợi thế lớn, cụ thể là bạn có bao bì hiện có để làm việc. Cứ làm đi

    apt-get source packagename
    

    apt-getsẽ tải xuống gói nguồn tương ứng, bao gồm thư mục con debian nơi bao bì sống. Ngoài ra, xin lưu ý rằng những ngày này, bao bì này thường nằm trong một kho lưu trữ kiểm soát verson (git có vẻ phổ biến với Debian) và apt ổn định (hiện tại là 0.8.10.3 ) cho bạn biết đây là khi bạn gọi apt-get source. Bạn nên xem xét điều này, bởi vì các nhà đóng gói có thể có nhiều phiên bản gần đây của bao bì hơn là tương ứng với bất kỳ gói phát hành nào. Ví dụ.

    $ apt-get source mercurial
      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
      svn://svn.debian.org/python-apps/packages/mercurial/trunk
    

    Ngoài ra, bạn có thể chỉ cần sử dụng

    apt-cache showsrc mercurial | grep Vcs
    

    để liệt kê các kho lưu trữ.

    Nếu gói bị lỗi thời, bạn có thể phải sửa đổi
    gói, làm mới các bản vá được áp dụng nhưng nó vẫn thường là
    điểm khởi đầu tốt . Debian dường như đang trong quá trình chuẩn hóa quản lý gói trên
    quilt theo định dạng dpkg-source 3.0 (quilt) , do đó giúp làm mới bản vá.

    Tôi sẽ kết thúc bằng một ví dụ thực tế cuộc sống của tôi như thế nào backported các gói Debian của PGF . Phiên bản đóng gói cuối cùng của pgf là 2.00 vào năm 2008 và kể từ đó 2.10 đã được phát hành. Xem phần thảo luận trong Vui lòng cập nhật lên phiên bản ổn định mới nhất của pgf (2.10) và lỗi theo dõi của tôi với một bản vá, pgf: bản vá đối với bao bì Debian 2.0 . Hóa ra, bao bì pgf Debian rất đơn giản và tôi chỉ phải thay đổi một dòng trong bao bì 2.10 để làm cho nó hoạt động. Cuối cùng tôi cũng dập tắt tất cả các khiếu nại của lintian , nhưng đó hoàn toàn là tùy chọn.


Câu cuối cùng của đoạn đầu tiên có thể gây hiểu nhầm. Vui lòng làm rõ rằng vấn đề của bạn đôi khi chỉ xảy ra . Cách bạn đặt làm cho có vẻ như DD thường như vậy.
tshepang

@Tshepang: Điểm tốt. Bây giờ có ổn không?
Faheem Mitha

Vâng, tốt hơn nhiều.
tshepang

5

Bạn chắc chắn có thể xây dựng các gói của riêng bạn, và điều đó sẽ làm việc. Tuy nhiên tôi sẽ khuyên bạn nên sử dụng backport trước nếu những gì bạn muốn có sẵn ở đó.

Backport được Debian duy trì và bạn nhận được các bản cập nhật bảo mật cho chúng.


3

Xây dựng các gói của riêng bạn là cách để đi (IMHO). Tùy thuộc vào độ tuổi của phiên bản gói của Debian và những gì đã thay đổi, việc này có thể dễ dàng như thay thế tên tệp của tarball nguồn trong mô tả gói và trong trường hợp xấu nhất bạn vẫn có thể sử dụng làm mẫu cho phiên bản của riêng mình.


1

Bạn đang làm gì nếu bạn luôn cần phiên bản mới nhất?

  1. Như đã đề cập , sử dụng backport.

  2. Chỉ có một tập hợp nhỏ các gói Debian được nhập vào, vì vậy tôi khuyên bạn nên sử dụng Kiểm tra Debian . Nó cung cấp một sự cân bằng tốt đẹp giữa sự ổn định và sự thoái trào, và theo một nghĩa nào đó, giống như một bản phân phối.

  3. Nếu bạn táo bạo hơn một chút, hãy sử dụng Debian Không ổn định . Nó được khẳng định là ổn định hợp lý. Một số thậm chí còn đi xa hơn khi tuyên bố rằng nó ổn định hơn một số bản phát hành "ổn định" khác của distro. Dù sao, không ổn định là nơi các phiên bản gói mới thường hạ cánh. Họ thường ngồi đó khoảng 10 ngày, để cho phép thử nghiệm, trước khi chuyển sang Thử nghiệm.

  4. Ngay cả khi sử dụng hai phiên bản này, bạn vẫn có thể thấy mình không có phiên bản mới nhất. Trong trường hợp đó, hãy xem Debian Experimental . Nó thường được sử dụng khi các gói mới quá đột phá đối với tài liệu lưu trữ thông thường (Không ổn định và Thử nghiệm).

  5. Nếu Experimental vẫn không có phiên bản phần mềm đủ mới, hãy xem PPA của Ubuntu . Tôi đã thấy các phiên bản phần mềm ở đó gần đây hơn những gì tất cả các tài liệu lưu trữ ở trên thiếu. Mặc dù vậy, hãy cẩn thận khi sử dụng vì Ubuntu không tương thích 100% với Debian (nhưng trong hầu hết các trường hợp, không nên có bất kỳ vấn đề nào).

  6. Nếu thất bại ở trên, tôi đoán chỉ cần xây dựng các gói của riêng bạn, như đã đề cập .


Mọi người nói không ổn định của Debian ổn định hơn ổn định của các bản phân phối khác là nói đùa. Thay đổi không ổn định mỗi ngày, ổn định là một kho lưu trữ cố định. Không ổn định không có nghĩa là nó sẽ sập, nhưng nó có nghĩa là các nhà phát triển thực hiện nhiều thay đổi cho các gói. Ổn định có nghĩa là nó được phát hành và chỉ có các bản sửa lỗi bảo mật sẽ được thêm vào. Tôi không bao giờ có tai nạn kỳ lạ chạy không ổn định. Tôi đã thấy các gói bị hỏng và các vấn đề phụ thuộc sau khi nâng cấp tho, hãy cẩn thận ;-) Làm thế nào mà tất cả so sánh với các bản phát hành "ổn định" của distro khác nằm ngoài tôi. Không có "ổn định hơn" trong bối cảnh này. Nó thay đổi hoặc không.
Arjan Drieman

@ArjanDrieman: thực sự những người đó không đùa, và trong bối cảnh đó, họ đang đề cập đến nó là bằng chứng va chạm nhiều hơn.
tshepang

Họ vẫn đùa giỡn tốt nhất. Tôi thực sự đã thấy mọi người nói đùa về nó. Một ngọn lửa phân phối vi mô ;-) Tôi đã sử dụng một vài distro theo thời gian và chưa bao giờ gặp sự cố kỳ lạ nào khi chạy bất kỳ thứ gì khác, Những người nói rằng nghiêm túc không thể sao lưu nó bằng nghiên cứu hoặc số liệu thống kê. Đó có thể là sự thờ ơ, kiêu ngạo, định kiến, bất cứ điều gì ... nhưng điều đó có tốt hơn một trò đùa không? Bạn có thể cho tôi biết "Một số" bí ẩn này là ai không?, Vì vậy tôi có thể hỏi họ về nghiên cứu của họ không? "Một số thậm chí còn đi xa" ... đó là những từ chồn. Bạn muốn gì trong một câu trả lời, sự thật, hoặc ý kiến ​​phổ biến và tuyên bố mơ hồ?
Arjan Drieman

1
@Arjan Drieman: Tôi thực sự đồng ý không ổn định, có thể 'somtimes' sống đúng với tên của nó. Bạn đánh đổi sự ổn định để tiến gần đến rìa, bất cứ ai tuyên bố rằng đó không phải là trường hợp không rõ ràng nhất. Nhìn chung, nó ổn định đáng ngạc nhiên, nhưng sự ổn định không phải là ưu tiên cao nhất cho sự không ổn định. Tôi cũng có xu hướng đồng ý với bạn, liên quan đến câu nói 'trơn'. Đây gần như là một cơ chế phòng thủ ở đây, vì bất kỳ tuyên bố tuyệt đối / trực tiếp nào cũng bị tấn công ngay lập tức.
JM Becker
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.