Điểm:3

Làm cách nào để bắt các mã thoát đến từ tệp preinst trong khi cài đặt gói debian?

lá cờ cn

Tôi đang cố gắng cài đặt gói debian trên hộp của mình, thông qua tập lệnh shell, tức là trong tập lệnh shell tôi đang cung cấp dpkg -i chỉ huy . Bên trong có một preinst tập tin đang được sử dụng. Bây giờ trong tệp này, một trong các điều kiện không thành công, giả sử khi nào x=0 tôi đang thoát ra với thoát 2

Tôi muốn rằng bất kỳ mã thoát nào mà tệp preinst đang thoát cùng với , tôi sẽ có thể bắt được mã thoát đó và trong tệp install.sh của mình, tôi sẽ thực hiện một câu lệnh in dựa trên mã đó

Vấn đề là khi tôi đang làm tiếng vang $? nó luôn cho tôi 1, nói rằng cài đặt dpkg không thành công, nhưng tôi không nhận được mã trả về cụ thể đó. Có cách nào để làm điều này không, cảm ơn trước

Điểm:1
lá cờ cn

Tôi giả định rằng một số điều kiện không được đáp ứng trong tệp preinst của gói deb. Tôi nghĩ sẽ tốt hơn nếu chuyển séc từ preinst sang tập lệnh bao bọc, tức là tệp install.sh.

ví dụ:

#!/bin/bash

nếu [ "$x" -eq "0" ]; sau đó
   tiếng vang Kiểm tra x = 0 không thành công
   thoát 1;
fi
#Đặt tất cả các kiểm tra khác như vậy ở đây...

dpkg -i gói.deb

Điều này giả định rằng bạn có thể sửa đổi preinst và installer.sh!

Cái này Blog trên trình bao bọc cài đặt là một lần đọc tốt trong 10-15 phút!

Điểm chính từ blog:

Trình bao bọc cài đặt thường được yêu cầu vì một trong những lý do sau (không giới hạn ở những lý do này):

  1. Yêu cầu trước / sau
  2. Tập lệnh trước/sau, ví dụ: xóa tệp/lối tắt, tạo khóa đăng ký
  3. Kiểm tra tình trạng trước khi cài đặt, ví dụ: hệ điều hành chính xác, tên máy tính chính xác (hoặc một phần của tên)
  4. Kiểm tra phiên bản của điều kiện tiên quyết đã cài đặt, ví dụ: phiên bản của MS Office
  5. Kiểm tra xem người dùng đã đăng nhập chưa
  6. Kiểm tra xem chương trình có đang được người dùng sử dụng hay không, ví dụ: trong trường hợp nâng cấp
ThunderBird avatar
lá cờ ru
Một ngày nào đó, các vấn đề về liên kết có thể xảy ra giữa trang web này và blog mà bạn đã đề cập trong câu trả lời của mình. Bạn có thể làm nổi bật các bước quan trọng ở đây nếu không phải là tất cả?
Atharva Ranade avatar
lá cờ cn
Cám ơn vì sự gợi ý!

Đă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.