Điểm:1

Cài đặt phiên bản gói cụ thể thông qua gói meta

lá cờ in

Tôi có một gói meta cho tenorrt đây chỉ là danh sách phụ thuộc vào các phiên bản thư viện cụ thể. Đây là kiểm soát tập tin của nó:

Đóng gói: tensorrt
Nguồn: tensorrt (7.1.3-1+cuda10.2)
Phiên bản: 7.1.3.4-1+cuda10.2
Kiến trúc: amd64
Người bảo trì: cudatools <[email protected]>
Kích thước cài đặt: 11
Phụ thuộc: libnvinfer7 (= 7.1.3-1+cuda10.2), libnvinfer-plugin7 (= 7.1.3-1+cuda10.2), libnvparsers7 (= 7.1.3-1+cuda10.2), libnvonnxparsers7 (= 7.1 .3-1+cuda10.2), libnvinfer-bin (= 7.1.3-1+cud
a10.2), libnvinfer-dev (= 7.1.3-1+cuda10.2), libnvinfer-plugin-dev (= 7.1.3-1+cuda10.2), libnvparsers-dev (= 7.1.3-1+ cuda10.2), libnvonnxparsers-dev (= 7.1.3-1+cuda10.2), libnvinfer-samples
 (= 7.1.3-1+cuda10.2), libnvinfer-doc (= 7.1.3-1+cuda10.2)
Mục: đa vũ trụ/phát triển
Ưu tiên: tùy chọn
Mô tả: Gói meta của TensorRT
 Gói meta của TensorRT.

Bây giờ, khi tôi muốn cài đặt tenorrt nó nói rằng:

Các gói sau đây có các thuộc tính không được đáp ứng:
 tensorrt : Phụ thuộc: libnvinfer-dev (= 7.1.3-1+cuda10.2) nhưng 8.0.3-1+cuda11.3 sẽ được cài đặt
            Phụ thuộc: libnvinfer-plugin-dev (= 7.1.3-1+cuda10.2) nhưng 8.0.3-1+cuda11.3 sẽ được cài đặt
            Phụ thuộc: libnvparsers-dev (= 7.1.3-1+cuda10.2) nhưng 8.0.3-1+cuda11.3 sẽ được cài đặt
            Phụ thuộc: libnvonnxparsers-dev (= 7.1.3-1+cuda10.2) nhưng 8.0.3-1+cuda11.3 sẽ được cài đặt
            Phụ thuộc: libnvinfer-samples (= 7.1.3-1+cuda10.2) nhưng nó sẽ không được cài đặt
E: Không thể khắc phục sự cố, bạn đã giữ các gói hàng bị hỏng.

Nếu chúng ta lấy một lib cụ thể chẳng hạn libnvinfer-dev, dựa theo chính sách apt-cache, tôi có sẵn một số phiên bản của nó:

(ubuntu-xenial-AMD64)svc_moma_usr@PL1LXD-529389:/$ apt-cache policy libnvinfer-dev
libnvinfer-dev:
  Đã cài đặt: 7.1.3-1+cuda10.2
  Ứng viên: 8.0.3-1+cuda11.3
  Bảng phiên bản:
     8.0.3-1+cuda11.3 500
        500 gói http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64
     8.0.3-1+cuda10.2 500
        500 gói http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64
     8.0.1-1+cuda11.3 500
        500 gói http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64
     8.0.1-1+cuda10.2 500
        500 gói http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64
     8.0.0-1+cuda11.3 500
        500 gói http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64
     8.0.0-1+cuda11.0 500
        500 gói http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64
     8.0.0-1+cuda10.2 500
        500 gói http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64
 *** 7.1.3-1+cuda10.2 500
        500 https://repository.ttgroup.com/repository/rozbad-xenial xenial/main AMD64 Gói
        100 /var/lib/dpkg/trạng thái
     7.0.0-1+cuda10.2 500
        500 tệp:/var/nv-tensorrt-repo-cuda10.2-trt7.0.0.11-ga-20191216 Gói
        500 https://repository.ttgroup.com/repository/rozbad-xenial xenial/main AMD64 Gói

Như bạn có thể thấy, tôi đã quản lý để cài đặt phiên bản tôi muốn một cách rõ ràng với cài đặt apt libnvinfer-dev=7.1.3-1+cuda-10.2, mặc dù phiên bản cũ hơn, nhưng cài đặt phiên bản này không thể thông qua tenorrt gói meta, mặc dù các phiên bản cũ hơn cũng được nêu rõ ở đó. Làm cách nào để APT cài đặt gói này?

Tôi biết rằng có thể thay đổi các ưu tiên trong /etc/apt/preferences.d, nhưng điều này được thực hiện ở cấp độ hệ thống, trong khi tôi muốn yêu cầu APT cài đặt các gói này thông qua kiểm soát tập tin.

muru avatar
lá cờ us
Bạn không thể, không chỉ sử dụng cài đặt phụ thuộc gói meta của bạn
Piotr G avatar
lá cờ in
Làm thế nào về một số cách giải quyết? Ví dụ: tôi biết tôi có thể cài đặt các phụ thuộc theo cách thủ công với một phiên bản cụ thể. Khi ở trong các tệp gói debian (control. rules, v.v.), tôi có thể thêm lệnh bash để tôi cài đặt các gói chứ không phải với cơ chế giải quyết phụ thuộc.
muru avatar
lá cờ us
Điều đó cũng không hoạt động, vì hệ thống quản lý gói bị khóa trong khi quá trình cài đặt đang diễn ra, do đó, các lệnh cài đặt trong tập lệnh bảo trì sẽ không thành công. Bạn có thể cung cấp tập lệnh để cài đặt gói của mình, tập lệnh này sau đó có thể thực hiện những việc như `apt-get install meta-pkg=x.y dep1=a.b dep2=c.d`, v.v. hoặc đặt tất cả các phụ thuộc vào kho lưu trữ của bạn và thêm kho lưu trữ đó với mức cao ghim ưu tiên.
Piotr G avatar
lá cờ in
Cảm ơn. Nhưng tôi có thể chạy các lệnh bash chứa `apt-get ...` trước khi cài đặt. Ban đầu tôi không đề cập đến vấn đề này, nhưng tôi cần cài đặt `tensorrt` để xây dựng một gói khác bằng cách sử dụng `sbuild` và cài đặt `tensorrt` được kích hoạt từ `debian/control`. Có lẽ tôi có thể chạy các lệnh `apt-get` này trước khi cài đặt tensorrt được kích hoạt, nhưng tôi không chắc lắm về thứ tự chạy các bước `sbuild`. Ý tưởng của tôi là ghi đè sth. trong `debian/rules`

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