Nó có thể gây ra vấn đề để chuyển từ apt-get sang aptitude không?


8

Tôi đã suy nghĩ về việc chuyển sang apt apt, nhưng tôi đã nghe mọi người nói "nếu bạn đã sử dụng apt-get, bạn nên đợi cho đến khi cài đặt tiếp theo của bạn để chuyển đổi." Tại sao mọi người nói điều này? Những loại vấn đề (nếu có) điều này có thể gây ra?

Câu trả lời:


8

apt-get và aptitude là các UI khác nhau là một phần của cùng một hệ thống quản lý gói, APT, Công cụ đóng gói nâng cao . Chẳng hạn, cả hai đều được cấu hình bằng cách sử dụng /etc/apt/apt.conf, cả hai đều sử dụng cùng một không gian tệp và định dạng để thể hiện trạng thái gói và cùng một không gian tệp để lưu trữ các tệp .deb đã tải xuống.

Chúng khác nhau như thế nào là hệ thống quy tắc nội bộ của chúng để thể hiện các xung đột tiềm ẩn giữa các gói, cách giải quyết chúng (nói trong khi apt-get dist-upgradeso với aptitude full-upgrade) và cách thể hiện những điều này khi tương tác với người dùng. Nói chung, cả hai có thể làm điều sai trong các tình huống khó khăn, nhưng apt-get có nhiều khả năng hiểu sai hơn là năng khiếu.


2
Một câu trả lời tuyệt vời, rõ ràng. Một chi tiết bổ sung là làm thế nào / khi họ loại bỏ các phụ thuộc được cài đặt tự động. aptitudesẽ loại bỏ chúng ngay lập tức, nhưng apt-getsẽ chỉ nhắc bạn xóa chúng bằng cách nhập lệnh apt-get autoremove. Nói chung, họ sẽ muốn loại bỏ các mặt hàng tương tự. Tuy nhiên, hãy xem liên kết này để biết trường hợp phức tạp khi họ không đồng ý với điều đó: forum.debian.net/viewtopic.php?f=10&t=49589&start=0
Telemachus

5

Rất nhiều lời khuyên tốt đã có ở đây, nhưng hãy để tôi thêm một điều chưa ai đề cập. Nếu bạn quyết định chuyển đổi, bạn có thể muốn chạy lệnh này, tùy thuộc vào những gì bạn đã làm với apt-get:

aptitude keep-all

Lệnh đó đặt lại aptitudeý nghĩa của các gói là trẻ mồ côi và nên được loại bỏ.

Đây là lý do đôi khi nó hữu ích: trong một lúc, cả hai apt-getaptitudesẽ theo dõi các gói được cài đặt tự động như một sự phụ thuộc của thứ khác. Vì vậy, ví dụ, nếu bạn cài đặt mpd, bạn có thể nhận được lib-so-and-sonhư một phụ thuộc. Họ làm điều này, để sau này nếu bạn gỡ bỏ mpd, cũng lib-so-and-sosẽ bị xóa. Nhưng aptitudeapt-getxử lý này làm sạch khác nhau. aptitudengay lập tức cố gắng loại bỏ tất cả các phụ thuộc mồ côi; nhưng apt-getchỉ gợi ý rằng bạn chạy apt-get autoremoveđể dọn dẹp. (Logic đằng sau tất cả những điều này là bạn chỉ có thư viện vì mpdcần nó. Nếu bạn không giữ mpd, bạn không cần thư viện nữa. Nếu gói khác vẫn phụ thuộc vào nó, thì cả hai aptitudeapt-get sẽ biết điều này và không cố xóa thư viện.)

Quan điểm của tôi là gì? Chà, nếu bạn đã thấy những cú huých liên tục để chạy apt-get autoremovevà bạn chuyển sang aptitude, thì bạn có thể bị sốc khi lần đầu tiên bạn cố gắng cài đặt một cái gì đó. aptitudesẽ ngay lập tức cố gắng để loại bỏ tất cả những đứa trẻ mồ côi. Nói chung, điều này sẽ ổn (rốt cuộc họ là trẻ mồ côi và không cần thiết), nhưng có một trường hợp phức tạp. Tất cả các gói meta máy tính để bàn đều liên quan đến một chuỗi phụ thuộc phức tạp, trong đó mỗi chương trình riêng lẻ được kéo vào như một phần phụ thuộc của trình bao gói ảo. Ví dụ: nếu bạn đã cài đặt Gnome vì bạn đã cài đặt gnomegói, thì tất cả các chương trình máy tính để bàn thông thường của bạn đã được cài đặt dưới dạng phụ thuộc. Nếu bạn đã gỡ cài đặt một trong những chương trình này (ví dụ: Ekiga hoặc Gedit), thì trong mắt củaaptitudephần còn lại của máy tính để bàn của bạn cũng nên được gỡ bỏ. Lưu ý rằng aptitude luôn luôn hỏi trước khi nó xóa mọi thứ, nhưng mọi người thường nhập 'Y' mà không đọc. Theo kinh nghiệm của tôi, đây là khiếu nại / nhầm lẫn phổ biến nhất đối với những người mới sử dụng Debian.

Hai lời khuyên chung:

  1. Luôn đọc đầu ra aptitudehoặc apt-getcẩn thận, trước khi nói có với bất cứ điều gì.
  2. Hãy nhớ rằng bạn luôn có thể thực hiện chạy khô bằng cách sử dụng aptitude -s safe-upgradehoặc aptitude -s install foo. Các -s|--simulatelá cờ là bạn của bạn.

4

Người ta đã nói trong danh sách gửi thư Debian, nhiều năm trước, việc chuyển từ apt-get sang aptitude là rất mạo hiểm. Đây là hai phiên bản Debian (giả sử 10 năm) trước đây. Tất cả những vấn đề đó dường như đã được giải quyết ngay bây giờ và chắc chắn tôi chưa thấy vấn đề nào trên Debian hoặc Ubuntu.


1
Bạn có một liên kết đến bài viết danh sách gửi thư?
Matthew

Matthew, bạn có tưởng tượng rằng tôi giữ một kho lưu trữ được lập chỉ mục hoàn hảo của toàn bộ danh sách gửi thư của người dùng debian ở đây không? Khi rõ ràng từ trên mà tôi thậm chí không nhớ năm?
CarlF

@Matthew: một thời gian trước (Sange hoặc Etch sớm), có rất nhiều người lo lắng về việc chuyển đổi từ apt-getsang aptitude. Hồi đó, họ xử lý nhiều chức năng thiết yếu rất khác nhau. Theo thời gian, chúng đã trở nên giống nhau hơn nhiều, và aptitudeđã trưởng thành hơn một tấn. Đối với 90% các trường hợp bây giờ, sẽ không có vấn đề gì nếu bạn chuyển đổi. Xem bài viết của tôi cho một trường hợp cạnh.
Telemachus

2

Tôi cũng sẽ nói đi trước và sử dụng aptitude.
Aptitudecó một quản lý phụ thuộc tốt hơn apt-get. Điều này sẽ giúp giữ cho số lượng các gói mồ côi ở mức thấp.
Tôi đã đọc cách đây một thời gian aptitudecó thuật toán nâng cấp dist tốt hơn so với apt-get. Nhưng đó hầu như không phải là một tính năng giết người vì nó không được sử dụng thường xuyên trong thời gian sống của một hệ thống.

Ngoài ra, bạn sẽ có nhiều thứ hợp nhất trong một công cụ. Thay vì nhớ khi nào nên gọi apt-get, apt-cachehoặc dpkgvới thiết bị chuyển mạch nào, tôi chỉ sử dụng năng khiếu và hoàn thành hầu hết mọi việc.

Đối với các biến chứng khi chuyển đổi "ở giữa": Tôi không nhớ đã có bất kỳ khi tôi làm điều đó.


1

Có phải chúng không chỉ là một giao diện khác nhau cho cùng một phụ trợ?


2
aptitudelà một giao diện nhiều tính năng hơn ...
quack quixote

Đó có thể là. Nhưng một giao diện với nhiều tính năng hơn không nhất thiết có nghĩa là một phụ trợ khác.
Svish

2
không, bạn nói đúng, cả hai đều là mặt trước dpkg. nhưng dpkgchỉ cần cài đặt các gói; đó là các giao diện phụ trách tìm kiếm, giải quyết phụ thuộc và tải xuống.
quack quixote

nhưng tìm kiếm, tải xuống và độ phân giải phụ thuộc sẽ không phá vỡ bất cứ điều gì. hoặc nếu nó làm điều đó sẽ rất kỳ lạ theo ý kiến ​​của tôi ...
Svish

2
chỉ cần chú ý bình luận cuối cùng của bạn. Hãy nhớ rằng đó là tiền tuyến đang quyết định cài đặt cái gì ; dpkg chỉ cần cài đặt. nếu một cái gì đó bị hỏng, thường là do độ phân giải phụ thuộc không thành công hoặc do người dùng tắt độ phân giải phụ thuộc (ví dụ: với tùy chọn - Force ).
quix quixote

1

Từ kinh nghiệm của tôi, họ có một cách khác để ghim các phiên bản gói. Trong trường hợp của tôi, tôi đã nói với khả năng khóa các gói nhất định, giả sử tôi sẽ an toàn trước các bản cập nhật trong tương lai. Tôi đã sai; trình quản lý cập nhật theo lịch trình, sử dụng apt-get, tiến hành nâng cấp nó thành mất tinh thần của tôi.

Drats, khi tôi đang viết bài này, tôi đã googled và phát hiện ra rằng lỗi ( # 557580 aptitude không tuân theo các chân trong sở thích.d / *) đã được sửa!


-1

Tôi sử dụng cả apt-get và aptitude mà không có vấn đề gì: Tôi có cùng một câu hỏi ... Tại sao mọi người nói điều này ??? : D

Tiếp tục và đừng lo lắng: aptitude chỉ là một văn bản-gui cho apt-get, mà bạn thậm chí có thể sử dụng như một ứng dụng dòng lệnh, ví dụ như apt-get install foogiống như aptitude install foo.

Trân trọng


Tôi không tin họ giống nhau. Trừ khi mọi thứ đã thay đổi, aptitude sẽ thực hiện theo dõi phụ thuộc nhiều hơn và loại bỏ bất kỳ gói nào mà nó đã tự động cài đặt, trong khi apt-get sẽ không. Đó là, nếu foo phụ thuộc vào thanh và bạn cài đặt và xóa foo bằng apt-get, thanh sẽ vẫn còn trên hệ thống của bạn. Nếu bạn làm tương tự với năng khiếu, nó sẽ không.
William Pursell

Bạn nói đúng: xem bình luận của ~ quack bên dưới.
dag729

@William, @ dag729: Các phiên bản hiện tại apt-getcũng cung cấp tự động loại bỏ các gói được cài đặt chỉ là phụ thuộc. Sự khác biệt còn lại trong vấn đề đó là aptitudeloại bỏ ngay lập tức các phụ thuộc (nếu phù hợp), nhưng apt-getchỉ hỗ trợ bạn chạy lệnh apt-get autoremove. Nhưng cả hai đều theo dõi sự phụ thuộc theo cùng một cách bây giờ. Tuy nhiên, chúng vẫn khác nhau khi xử lý các trường hợp phụ thuộc phức tạp và các trường hợp cạnh (cài đặt hoặc gỡ bỏ rất phức tạp), nhưng đối với phần lớn mọi người và phần lớn các tình huống, giờ đây chúng hoạt động như nhau.
Telemachus
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.