Làm cách nào tôi có thể buộc 16.04 thêm kho lưu trữ ngay cả khi nó không được coi là đủ an toàn?


9

Tôi thực sự cần cài đặt Nvidia Cuda nhưng tôi đang gặp lỗi

E: Failed to fetch file:/var/cuda-repo-7-5-local/Release  No Hash entry in Release file /var/lib/apt/lists/partial/_var_cuda-repo-7-5-local_Release which is considered strong enough for security purposes

Tôi có thể buộc nó cài đặt không? Tôi thực sự cần phải sử dụng nó, ngay cả khi nó không an toàn. Tôi nghi ngờ Nvidia sẽ cập nhật repo để hoạt động với 16.04 bất cứ lúc nào sớm.

Câu trả lời:


9

Tôi gặp vấn đề tương tự khi cố gắng cài đặt CUDA 7.5 trong Ubuntu 16.04. Điều này là do một mục SHA256 hoặc SHA512 bị thiếu trong gói CUDA (theo báo cáo của nhóm Debian tại đây ).

Có vẻ như chúng ta không thể buộc cập nhật apt-get để tìm nạp "kho lưu trữ không bảo mật", nhưng tôi có thể tránh hoàn toàn vấn đề bằng cách sử dụng tệp .run. Đây là những gì tôi đã làm từng bước:

  1. Thay vì tải xuống gói .deb, hãy tải xuống tệp .run (từ trang này )
  2. Cài đặt trình biên dịch tương thích (có vẻ như cuda 7.5 không tương thích với trình biên dịch mặc định của Ubuntu 16.04):

    sudo apt-get install gcc-4.9 g++-4.9
    
  3. Bạn có thể cần cài đặt một số gói bổ sung (tùy thuộc vào cấu hình của bạn):

    sudo apt-get install nvidia-modprobe freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev
    
  4. Khởi chạy tệp chạy và làm theo hướng dẫn:

    sudo sh cuda_7.5.18_linux.run
    

Điều này hoạt động tốt với tôi (đừng quên cài đặt trình điều khiển NVIDIA)

EDIT: Sau bước 2 & 3, nếu trình cài đặt CUDA cố gắng sử dụng gcc 5.3.1 (mặc định cho ubfox 16.04) làm trình biên dịch thay vì phiên bản 4.9, bạn có thể thử xóa phiên bản 5.3.1, cài đặt CUDA, sau đó cài đặt lại gcc mới nhất phiên bản.


Tôi không biết nó có mới không, nhưng khi thấy phiên bản gcc "sai" của tôi, tập lệnh cài đặt thực sự đề nghị chạy lại nó với cờ '- override'. Vì vậy, tôi đã chạy nó một lần nữa sh cuda_7.5.18_linux.run --overridevà bây giờ mọi thứ dường như hoạt động tốt: tôi có thể chạy một số mã TensorFlow đơn giản bằng thẻ NVidia của mình. Việc cài đặt gần như ngay lập tức và tôi không nghĩ rằng nó đã biên dịch bất cứ thứ gì. Tôi không chắc tại sao trình biên dịch cần được chỉ định ... Tôi có thể gặp một số vấn đề sau này.
toto2

Tôi nên xác định rằng tôi đã bỏ qua cài đặt trình điều khiển vì nó đã được cài đặt. Tôi không chắc nếu điều đó có thể bỏ qua một số phần tổng hợp.
toto2

Tôi nghĩ rằng trình điều khiển Nvidia không được cài đặt tự động trong 16.04? Tôi cũng đã yêu cầu các nhà phát triển Nvidia khắc phục sự cố của kho lưu trữ Cuda .deb nhưng họ nói rằng Cuda 7.5 chưa được hỗ trợ vào ngày 16.04. Có vẻ lạ bởi vì sử dụng trình cài đặt .sh nó hoạt động tốt và tôi thậm chí có thể sử dụng nó với tenorflow
Amine Horseman

Trình điều khiển NVidia thực sự không được cài đặt theo mặc định. Tôi đã cố gắng cài đặt nó trực tiếp từ NVidia và tôi đã làm hỏng hệ thống của mình. Nhưng sau đó tôi nhận ra rằng bạn có thể cài đặt nó dễ dàng bằng cách truy cập ứng dụng Cài đặt> Phần mềm & Cập nhật> Trình điều khiển bổ sung. Nó có thể không phải là mới nhất, nhưng nó khá đơn giản.
toto2

5

Thay đổi của bạn /var/cuda-repo-7-5-local/Releasethành như sau:

Origin: NVIDIA
Label: NVIDIA CUDA
Architecture: repogenstagetemp
MD5Sum:
 51483bc34577facd49f0fbc8c396aea0            75379 Packages
 4ef963dfa4276be01db8e7bf7d8a4f12            21448 Packages.gz
SHA256:
 532b1bb3b392b9083de4445dab2639b36865d7df1f610aeef8961a3c6f304d8a            75379 Packages
 2e48cc13b6cc5856c9c6f628c6fe8088ef62ed664e9e0046fc72819269f7432c            21448 Packages.gz

Chạy sudo apt-get updatebỏ qua các cảnh báo về chữ ký không hợp lệ, và bạn đã hoàn thành.

Nếu thất bại, thay thế tổng SHA256 bằng đầu ra của

sha256sum /var/cuda-repo-7-5-local/Packages.gz

gunzip -c /var/cuda-repo-7-5-local/Packages.gz | sha256sum

2

Hiện tại bạn có thể sử dụng các lệnh sau trên Ubuntu 16.04 để cài đặt CUDA Toolkit 7.5:

sudo apt install nvidia-cuda-toolkit

Cảm ơn đã chỉnh sửa, vì vậy bạn không cần cuda-dev?
SentinalBais

0

Tôi không thể nhận xét, nhưng thêm vào câu trả lời của @ Horse-man: Bạn không phải gỡ cài đặt / cài đặt lại gcc nếu bạn đã cài đặt gcc 4.9. Đối với tôi nó là đủ để

sudo unlink /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc

Gcc-4.9 của tôi thực sự là 4.9.3 mà trình cài đặt CUDA không thích, vì vậy tôi đã thực hiện nó bằng cách sử dụng

sudo sh cuda_7.5.18_linux.run --override

Và nó được cài đặt đúng.


0

Giải pháp rất đơn giản:

cd /etc/apt/
rm cuda-VERSIONHERE-local.list
apt-key net-update
apt-get update
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.