`Do-phát hành-nâng cấp 'thực sự làm gì?


30

Chúng tôi biết rằng, do-release-upgradehiện một bản nâng cấp phát hành. Nhưng ở cấp độ thấp hơn một chút, nó thực sự làm gì?

Tôi dự định thực hiện nâng cấp thủ công hơn, ví dụ như cách Debian: aptitude updateaptitude full-upgradesau khi thiết lập các nguồn. Trên thực tế, tôi dự định làm nó hoàn toàn tương tác với aptitude. Nhưng điều đó khiến tôi tò mò về những gì khác do-relase-upgrade làm, ngoại trừ hos lên các nguồn của tôi.

Câu trả lời:


32

do-release-upgradelà một phần của gói Cập nhật-người quản lý-cốt lõi. Kịch bản dường như xác định bản phát hành nào bạn sẽ nâng cấp lên, hãy thử tìm hiểu xem nó có được hỗ trợ hay không và phàn nàn về bản phát hành sau. - Nếu nó được thuyết phục để hoạt động, nó sẽ tải xuống Nâng cấp dành riêng cho bản phát hành và chạy nó.

Một phần của gói Cập nhật-trình quản lý-lõi-cốt lõi là tập tin /etc/update-manager/meta-release, nơi bạn có thể tìm thấy URL http: //changelogs.ub Ubuntu.com/meta-release và ở đó bạn tìm thấy URL cho Nâng cấp để tải xuống.

Tarball nâng cấp được tải xuống được đóng gói từ gói nguồn ub Ubuntu-phát hành-upgrader (trước khi nó được cập nhật-quản lý Cập nhật). Phiên bản tương ứng với các bản cập nhật mới nhất cho bản phát hành mục tiêu.

Nguồn này có một README cũ từ thời gian phát hành chiến tranh và hoary. Nó thảo luận về những gì nên được thực hiện trong quá trình nâng cấp phát hành. Nó cũng đề cập đến một liên kết đến một đề xuất nâng cấp chi tiết hơn .

Tôi liệt kê ở đây các hành động được đề cập ở đó và kiểm tra xem chúng có thực sự được thực hiện không:

  • kho lưu trữ liên quan
    • chuyển sang mục nhập nguồn mới.
    • xóa kho lưu trữ của bên thứ 3 không xác định
    • có thể hoán đổi gương (không thực hiện)
  • gói liên quan
    • kiểm tra không có gói bị hỏng trước khi nâng cấp
    • cập nhật bản phát hành hiện tại trước khi nâng cấp ( apt-get updatechỉ)
    • gỡ bỏ và cài đặt các gói cụ thể
    • kiểm tra xem {ubfox, kubfox, edubfox} -desktop đã được cài đặt chưa
    • thoát khỏi hạt nhân cũ
    • có một danh sách đen loại bỏ và danh sách trắng
    • xóa hoặc thay thế các gói lỗi thời tồn tại trong các bản phát hành trước đó
  • cấu hình liên quan (có thể trong quirks: xem bên dưới)
    • thêm người dùng mặc định vào các nhóm mới (không được thực hiện cho các phiên bản tôi đã kiểm tra)
    • kiểm tra một số tập tin cấu hình

Nâng cấp được cấu hình cho mỗi bản phát hành bằng cách sử dụng các tệp sau (mở chúng để xem!):

  • DistUpTHER.cfg
    • Cấu hình liên quan đến nâng cấp
    • cấu hình liên quan đến phát hành
    • kho lưu trữ (ví dụ: [Nguồn] ValidMirrors)
    • thay đổi tùy chỉnh ([Distro] PostInstallScript)
    • gói đặc biệt; chỉ được xử lý bởi DistUpTHERControll.py:
      • [Phân phối] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
      • [meta_package_name] ForcedObsoletes
    • ... và bởi DistUpTHERCache.py:
      • [Phân phối] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demjection, KeyDependencies
      • [Distro và meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrad *
      • [KernelRemoval] *
  • DistUpTHERQuirks.py
    • chạy (phát hành) các chức năng cụ thể (cùng tệp) và plugin ( pluginsthư mục)
    • các hàm phải có tên cụ thể (ví dụ from_nattyPreCacheOpen()) và bổ trợ các conditionthuộc tính đặc biệt (ví dụ *hoặc PostInitialUpdate)
    • một trong những chức năng đó, StartUpgrade()là một túi lấy khác: trong số các chức năng khác mà nó gọi _applyPatches(), nó đi qua các tệp trong patchesthư mục
    • tất cả những thứ này không làm được gì nhiều trong quá trình cài đặt của tôi (i386, các gói không cũ hơn bản cập nhật mới)
  • thêm từ DistUpTHERCache.py
    • chạy get_kernel_list.sh(không đáng tin cậy) và đảm bảo một kernel được cài đặt
    • một số xử lý về trình điều khiển Nvidia

Phiên bản đã kiểm tra:

  • tự nhiên → một chiều
  • một chiều → chính xác
  • chính xác → đáng tin cậy (cuối cùng kể từ 2014-04-18)
  • đáng tin cậy → không tưởng (vài giờ trước khi phát hành vào 2014-10-23)

3
Mỗi lần tôi sử dụng nâng cấp do phát hành, tôi đã kết thúc với một hệ thống không thể khởi động :)
user205301

Như ví dụ về những điều mà trình xử lý nâng cấp do phát hành: trình điều khiển nhị phân nvidia, thay đổi multiarch, ndiswrapper, thêm / xóa kiến ​​trúc và loại nhân (ví dụ: không dùng kernel kernel)
NGRhodes

@NGRhodes nhận xét của bạn quá mơ hồ đối với tôi: ndiswrapper là một trường hợp đặc biệt trở lại thời phong kiến, không phải những ngày này. Không có kiến ​​trúc nào được thêm hoặc xóa (ngoại trừ amd64, trong đó thêm i386 là nước ngoài, mà bạn bao gồm với nhiều thay đổi của vua mà tôi đoán). - Không có gì là không dùng nữa, các gói có bị loại bỏ hay không.
Robert Siemer
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.