Tôi có nên sử dụng taskel, task trong APT hoặc cài đặt các siêu dữ liệu thông thường không?


37

Nhiệm vụ hay Apt đơn giản?

Trước đây, tôi luôn sử dụng taskselđể cài đặt cái gọi là "nhiệm vụ". Tuy nhiên, dường như điều này đã được tích hợp trong APT:

apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]

và rằng tôi có thể cài đặt các "tác vụ" đó bằng cách nối thêm dấu mũ ( ^) vào nó, như thế này:

sudo apt-get install lamp-server^

Điều này có tương đương với sau đây?

sudo tasksel install lamp-server

Và cái nào được ưa thích?

Siêu dữ liệu

Ngoài ra, làm thế nào để siêu dữ liệu đi vào chơi ở đây? Một số nhiệm vụ dường như không phải là một siêu dữ liệu trong khi những nhiệm vụ khác là:

apt-cache show lamp-server
N: Unable to locate package lamp-server

apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop

Vì vậy, bằng cách sử dụng ví dụ cuối cùng, sự khác biệt giữa ba cách có thể để cài đặt là gì?

  • sudo apt-get install kubuntu-desktop
  • sudo apt-get install kubuntu-desktop^
  • sudo tasksel install kubuntu-desktop

2
Nhìn vào đầu ra apt-get install -s lubuntu-desktopso với apt-get install -s lubuntu-desktop^. Trong phần sau, bạn sẽ thấy một cái gì đó bổ sung như thế này: Lưu ý, chọn 'chính sách-1-gnome' cho tác vụ 'mỡ trên máy tính để bàn' / Lưu ý, chọn 'gnome-keyring' cho tác vụ 'Lubfox-desktop' / Lưu ý, chọn 'libplist1' cho tác vụ 'Lubfox-desktop' / Lưu ý, chọn 'aspell-en' cho tác vụ 'Lubfox-desktop' / Lưu ý, chọn 'libsdl1.2debian' cho tác vụ 'Lubfox-desktop' / Vì vậy, trong trường hợp cụ thể này , Tôi không chắc chắn rằng "củ cà rốt" là tốt hơn bất kỳ.

Đọc thêm tại đây: Askubfox.com/a/249373/25656

1
#warning về taskel: không bao giờ sử dụng nó để xóa các tác vụ - xem báo cáo lỗi trên launchpad
guntbert 14/2/13

Câu trả lời:


36

Nói tóm lại: Có một sự khác biệt giữa tasksel và apt-get quá trình cài đặt các nhiệm vụ.

Nhìn vào ví dụ của bạn:

Cách apt-get

sudo apt-get install 'lamp-server^' sẽ đánh giá để làm như sau:

  1. Tìm kiếm bộ đệm (tệp danh sách gói) cho tất cả các trường "Nhiệm vụ:" và nhận tất cả bằng "đèn máy chủ".
  2. Cài đặt các gói theo cách tiêu chuẩn:

    sudo apt-get install package1 package2...
    

Cách thức nhiệm vụ

sudo tasksel install lamp-serversẽ tìm kiếm một tác vụ gọi là "đèn máy chủ" trong một trong các tệp cấu hình của nó trong /usr/share/tasksel/**/*.desc:

  1. Tìm kiếm các tệp cấu hình cho trường "Nhiệm vụ:" có tên là "máy chủ đèn".
  2. Kiểm tra xem tất cả các điều kiện tiên quyết có sẵn (trường "Khóa:") và ghi nhớ chúng nếu không được cài đặt.
  3. Chọn phương thức để chọn gói (trường "Gói:"). Nếu "danh sách" này chỉ đơn giản là cài đặt các gói sau theo tên.
  4. Đọc tất cả các tên gói sau và chuyển nó sang phương thức đã chọn trước đó để tạo tên gói.
  5. Hãy tìm /usr/lib/tasksel/info/lamp-server.preinst. Nếu nó tồn tại thực thi tập lệnh này.
  6. Cài đặt gói với apt-get bằng lệnh sau:

    debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install package1 package2 ...
    
  7. Hãy tìm /usr/lib/tasksel/info/lamp-server.postinst. Nếu nó tồn tại thực thi tập lệnh này.

Phần kết luận

taskel mạnh hơn trong việc xử lý và chọn các tác vụ. Nó có thể thực thi các tập lệnh bổ sung trước / sau khi cài đặt / gỡ bỏ các tác vụ. Và lợi ích lớn nhất: Bạn có thể sửa đổi các nhiệm vụ và tạo các nhiệm vụ mới rất dễ dàng. Không thể chỉnh sửa tệp danh sách gói chính thức mà không có nhược điểm (chữ ký hợp lệ).

Quay lại câu hỏi đầu tiên của bạn:
Trong trường hợp đặc biệt của bạn, cả hai lệnh gần như tương đương (giả sử bạn đã bật cả hai APT::Install-RecommendsAPT::Get::AutomaticRemove). Chỉ khác là trạng thái gói phụ thuộc mở rộng mysql-serverapache2phụ thuộc (được đặt thành "cài đặt thủ công" với apt-get đơn giản).

Và những gì về siêu dữ liệu?

Nếu bạn không sử dụng các tính năng của taskel như chọn các tác vụ (đặc biệt hữu ích khi cài đặt) và thực thi các lệnh bổ sung trước và sau một số khối nhiệm vụ thì một tác vụ rất giống với siêu dữ liệu. Sự khác biệt là: Một tác vụ không được đăng ký như một gói trong bộ đệm APT.
Vì vậy, nếu bạn gỡ cài đặt một phụ thuộc tác vụ, các tác vụ phụ khác không được đánh dấu là tự động cài đặt vì chúng được cài đặt rõ ràng. Nếu bạn gỡ cài đặt một siêu dữ liệu, các phụ thuộc sẽ bị xóa autoremovevì trạng thái gói mở rộng của chúng là "tự động cài đặt" (nếu không được cài đặt thủ công).
Lưu ý: Tất cả các tác vụ phân tán trong Debian đều cài đặt một siêu dữ liệu có tên task-TASKNAME.

Cho ví dụ của bạn:

  1. sudo apt-get install kubuntu-desktop
    • Sẽ cài đặt các siêu dữ liệu kubuntu-desktop. Phụ thuộc là "cài đặt tự động".
  2. sudo apt-get install kubuntu-desktop^
    • Sẽ chọn tất cả các gói được gắn thẻ với nhiệm vụ "kubfox-desktop". Đó là tất cả sự phụ thuộc của siêu dữ liệu kubuntu-desktop. Tất cả đều được đánh dấu là "cài đặt thủ công".
  3. sudo tasksel install kubuntu-desktop
    • Đảm bảo X được cài đặt trước khi cài đặt các gói tác vụ.
    • Sẽ cài đặt các siêu dữ liệu kubuntu-desktop. Phụ thuộc là "cài đặt tự động".
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.