Điểm:0

Cách xóa gói/phần mềm chưa được cài đặt thông qua trình quản lý gói một cách an toàn

lá cờ in

Tôi đã cài đặt Ubuntu Linux 20 cũ. Gần đây tôi phát hiện ra rằng tôi có một loạt phần mềm mà tôi đã cài đặt trước khi bắt đầu sử dụng đầy đủ tính năng quản lý gói và tôi không thể nhớ chi tiết về các cài đặt. tôi đã thử qua đúng cách nhưng nó nói rằng những gói đó chưa được cài đặt.

Tôi nghĩ rằng tôi có thể xóa các thư mục bằng phần mềm, nhưng đoán rằng điều đó có thể gây ra sự cố, vì một số phần mềm khởi chạy khi khởi động và tôi không thể tìm thấy vị trí chính xác được định cấu hình.

Tôi đã tìm thấy các quy trình "dư thừa"/không xác định sau:

  • elaticsearch, "/usr/share/elaticsearch/jdk/bin/java" từ người dùng nhắn tin (xin lỗi, tên dường như bị cắt)
  • "/usr/bin/mono /usr/lib/hyperfastcgi/4.0/..." từ người dùng nhật ký hệ thống
  • mysqld từ người dùng hệ thốngd-c
  • "/usr/bin/mono /usr/lib/mono/4.5/mono-service.exe" từ người dùng nhật ký hệ thống

Vì vậy, trên thực tế, tôi có ba câu hỏi:

  1. Có an toàn không khi chỉ xóa thư mục chứa các tệp nhị phân cho phần mềm này và tất cả các nội dung khác?
  2. Làm cách nào tôi có thể xác định, nơi nó được định cấu hình để khởi động khi khởi động?
  3. Tôi nên biết/làm gì khác để xóa nó một cách an toàn?

Cảm ơn!

Michael avatar
lá cờ sa
Tôi muốn khuyến khích nâng cao câu hỏi này. Đây là một tình huống rất phổ biến đối với những người mới bắt đầu học quản trị hệ thống nghiêm túc nhưng cần dọn dẹp những gì họ bỏ lại phía sau. Việc dọn dẹp đó nên được khuyến khích.
Điểm:2
lá cờ cn
Bob

Có an toàn không khi chỉ xóa thư mục có nhị phân cho quy trình này và tất cả các nội dung khác?

Đúng. Không chắc.

Nó thực sự phụ thuộc vào cách nhà cung cấp dự định triển khai ứng dụng và quản trị viên đã làm gì khi cài đặt ứng dụng đó.

Một số ứng dụng (và tất cả các ứng dụng phụ thuộc của chúng) thực sự được triển khai trong thư mục con của riêng chúng, có thể là một thư mục phẳng hoặc một cây thư mục con lớn, thường bắt chước hệ thống tệp gốc Linux thông thường, ví dụ:. với một vân vân thư mục con chứa các tập tin cấu hình, [s] thùng rác đối với nhị phân, một var thư mục con chứa dữ liệu v.v.v.v.

Nếu bạn không triển khai bất kỳ ứng dụng nào khác trong cùng thư mục con đó; xóa nó sẽ xóa hoàn toàn ứng dụng.

Có thể bạn đã điều chỉnh cấu hình ứng dụng. Các điều chỉnh khá điển hình cần thực hiện là thay đổi dữ liệu liên tục và thư mục ghi nhật ký sang nơi khác trên hệ thống của bạn.

Làm cách nào tôi có thể xác định, nơi nó được định cấu hình để khởi động khi khởi động?

Khá điển hình để thấy là các quy trình dịch vụ/daemon được bắt đầu bởi systemd như trong ví dụ bên dưới. Trong trường hợp đó trạng thái hệ thống nên liệt kê các tệp đơn vị và tất cả các quy trình được bắt đầu bởi những tệp đó và systemctl -a và các công tắc khác cũng có thể hữu ích.

Một công cụ như pstree có thể khá hữu ích để trực quan hóa các mối quan hệ cha mẹ và con cái và xem quá trình nào bắt đầu cái gì. Khi chỉ sử dụng systemd sẽ cho đầu ra rất giống với trạng thái hệ thống nhưng khi các cơ chế khác được sử dụng, điều này thường sẽ cung cấp cho bạn một cái nhìn sâu sắc.

Sau đó, có một số phương pháp "tối nghĩa" hơn, ví dụ như một số người thích sử dụng @khởi động lại đặc tả dấu thời gian cron để có các dịch vụ bắt đầu (tái) cron sau khi khởi động lại.

pstree -a

systemd --switched-root --system --deserialize 22
  ââ/usr/bin/spamd
  â ââspam con
  â ââspam con
  ââagetty --noclear tty1 linux
  ââatd -f
  ââkiểm toán
  â ââ{kiểm toán}
  ââchronyd
  ââcrond -n
  ââdbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
  â ââ{dbus-daemon}
  ââdhclient -1 -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H máy chủ eth0
  ââdovecot
  â ââđe
  â ââauth
  â ââcấu hình
  â ââimap
  â ââimap-đăng nhập
  â ââlog
  ââfail2ban-server -s /usr/bin/fail2ban-server -xf start
  â ââ8*[{fail2ban-server}]
  ââfirewalld -Es /usr/sbin/firewalld --nofork --nopid
  â ââ{tường lửa}
  ââhttpd -DFOREGROUND
  â ââhttpd -NỀN TẢNG
  â ââhttpd -NỀN TẢNG
  â âârotatelogs -l /var/log/httpd/error_log.%Y.%m 86400
  â âârotatelogs -l /var/log/httpd/access_log.%Y.%m 86400
  ââmaster -w
  â ââanvil -l -t unix -u
  â ââpickup -l -t unix -u
  â ââproxymap -t unix -u
  â ââqmgr -l -t unix -u
  â ââsmtpd -n smtp -t inet -u -o stress= -s 2
  â ââtlsmgr -l -t unix -u
  ââmm
  â ââ85*[{mms}]

Quá trình "chính" trong danh sách pstree đó là một ví dụ điển hình. Tên quy trình kỳ lạ đó thực sự là postfix được bắt đầu từ đơn vị systemd postfix.service. Điều đó sẽ dễ dàng tìm thấy hơn trong trạng thái hệ thống đầu ra:

       ââsystem.slice
         ââpostfix.service
         â ââ 1110 /usr/libexec/postfix/master -w
         â ââ 1112 qmgr -l -t unix -u
         â ââ 1121 tlsmgr -l -t unix -u
         â ââ11508 đón -l -t unix -u
         ââspamass-milter.service
         â ââ1032 /usr/sbin/spamass-milter -g postfix -p /run/spamass-milter/postfix/sock

Tôi nên biết/làm gì khác để xóa nó một cách an toàn?

Xác định cách một dịch vụ được bắt đầu và sau đó dừng dịch vụ đó thường là cách tiếp cận tốt đầu tiên.

Sau đó, hãy tập thói quen không cài đặt mọi thứ từ nguồn mà sử dụng trình quản lý gói hoặc ví dụ như chụp hoặc chạy vùng chứa.

Michael avatar
lá cờ sa
Bob, tôi thích câu trả lời của bạn, nhưng bạn có thể vui lòng nhận xét rằng, sau khi gỡ bỏ phần mềm, @GeraldIstar nên xem nhật ký và thông báo khởi động để xem có lỗi nào không và nếu có thì nên điều tra chúng. Thậm chí có thể đáng để đổi tên thư mục bằng phần mềm và sau đó xem nhật ký để tìm ra vấn đề gây ra và sau đó xóa các tham chiếu đến phần mềm.
Điểm:2
lá cờ sa

Nếu bạn cố gắng xóa phần mềm theo cách thủ công như được mô tả trong các câu trả lời khác, bạn nên xem đầu ra của lệnh

Sudo dpkg --verify

Kiểm tra tính toàn vẹn của các gói phần mềm đã cài đặt của bạn. Bạn có thể sẽ tìm thấy một số lượng nhỏ các tệp trên hệ thống của mình đã bị sửa đổi - có thể là các tệp cấu hình mà bạn đã thay đổi - và bạn nên cố gắng hiểu từng tệp đó và có thể sửa bất kỳ tệp nào có vẻ sai.

Điểm:2
lá cờ sa

Câu trả lời phụ thuộc vào nhiều chi tiết nên Bob đúng và việc làm sạch điều này sẽ rất khó khăn. Thậm chí có thể có phần mềm độc hại trên hệ thống của bạn và có thể rất khó xác định xem điều đó có đúng không. Ngay cả khi bạn may mắn và cẩn thận thì rất có thể thứ gì đó được để lại trên hệ thống của bạn mà không nên ở đó và nó có thể là rủi ro bảo mật, chẳng hạn nếu bạn để phiên bản cũ của thư viện không được cập nhật khi cần.

Cách an toàn để giải quyết vấn đề này là thực hiện một cài đặt mới từ đầu và từ đó trở đi luôn sử dụng trình quản lý gói cho tất cả các cài đặt phần mềm. Nếu bạn có một hệ thống mà bạn đang học với tư cách là một quản trị viên mới, thì đây không phải là điều xấu để thỉnh thoảng làm. Khi thực hiện cài đặt mới, bạn có thể tự động hóa một số công việc để lần sau mọi thứ diễn ra nhanh hơn.

Tất nhiên, hãy sao lưu toàn bộ hệ thống vào đĩa ngoại tuyến cũng như sao chép riêng dữ liệu của riêng bạn trước khi thực hiện việc này. Bằng cách đó, nếu có sự cố xảy ra, bạn sẽ có thể quay lại trạng thái làm việc.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.