Điểm:4

Tại sao không tìm thấy một số phiên bản gói cũ hơn

lá cờ gr

Tôi đang cố định cấu hình công cụ tạo (Bazel) để sử dụng gcc-7. Để làm được điều đó, tôi cần các liên kết đến tất cả các gói .deb cần thiết.

Một trong những phần phụ thuộc của gcc-7 là libatomic1 (>= 7.5.0-6ubuntu2). Tôi nhận thấy đây là "lớn hơn hoặc bằng" nhưng nếu tôi muốn sử dụng các thư viện gốc được phân phối với gcc-7, thì tôi có thể lấy chúng ở đâu?

Ví dụ, nếu tôi làm tải xuống apt --print-uris libatomic1=7.5.0-6ubuntu2 tại sao apt nói với tôi:

E: Không tìm thấy phiên bản '7.5.0-6ubuntu2' cho 'libatomic1'

nhưng khi tôi làm apt show libgcc-7-dev tôi thấy rằng libatomic1>=7.5.0-6ubuntu2 được liệt kê như là một phụ thuộc. Tôi có thể tìm libatomic1=7.5.0-6ubuntu2 này ở đâu?

Tôi đã nghĩ rằng tôi có thể tìm thấy gói thư viện trong http://old-releases.ubuntu.com/ubuntu/pool/main/g/gcc-7/ nhưng nó không có ở đó.

N0rbert avatar
lá cờ zw
Cài đặt các phiên bản gói chính xác là ý tưởng tồi. Bạn không nên coi APT là Ruby/Rake/rvm hay Npm hay pip.
Điểm:5
lá cờ bo

Nếu bạn kiểm tra đây, bạn sẽ thấy rằng các bản cập nhật bảo mật đã thay thế các phiên bản cũ hơn. Các phiên bản cũ hơn không còn khả dụng vì lý do bảo mật.

Tôi đã thực hiện tìm kiếm tại gói.ubuntu.com sử dụng "tiêu điểm" làm phân phối.

nhập mô tả hình ảnh ở đây

Một lý do khác khiến phiên bản cũ không khả dụng là do phiên bản tiêu chuẩn của libatomic1 không còn được xây dựng từ gcc-7. Bạn có thể thấy đây, phiên bản hiện tại có sẵn cho Ubuntu Focal được xây dựng từ gcc-10 (ở phía bên tay phải trong "Tài nguyên Ubuntu").

Nếu muốn, bạn có thể tải xuống nguồn cho gcc-7 và xây dựng libatomic1 từ đó. Đây có thể không phải là điều bạn muốn làm nhưng nó có thể.

Bạn có thể kích hoạt các nguồn trong /etc/apt/sources.list tập tin và sau đó chạy:

sudo apt nguồn gcc-7

hoặc bạn có thể tải nguồn từ gói.ubuntu.com và ở phía bên tay phải, bạn sẽ thấy ba tùy chọn để tải xuống nguồn.

nhập mô tả hình ảnh ở đây

Ngoài ra, cần lưu ý rằng nếu bạn định xây dựng thứ gì đó, bạn sẽ cần tải xuống các phụ thuộc bản dựng cần thiết:

sudo apt build-dep gcc-7
mchid avatar
lá cờ bo
Tất nhiên, việc xây dựng từ nguồn sẽ không đáp ứng sự phụ thuộc của dpkg nhưng bạn sẽ có thể làm việc với lib mà bạn đã biên dịch từ nguồn bằng cách tham chiếu rõ ràng khi bạn chạy gcc-7.
Điểm:1
lá cờ cm

Kho lưu trữ Apt thường chỉ chứa một phiên bản của gói cho một bản phát hành nhất định. Nếu bạn muốn các gói Ubuntu cũ hơn thì bạn phải xem qua "lịch sử xuất bản" cho gói nguồn trên launchpad. Sau đó, bạn có thể theo liên kết đến phiên bản cụ thể, sau đó là liên kết đến các bản dựng và cuối cùng là liên kết đến các gói riêng lẻ.

Tuy nhiên, tôi không tin rằng gói libatomic1 ở phiên bản 7.5.0-6ubuntu2 thực sự tồn tại. Khi một gói nguồn cho một phiên bản chính mới của gcc được thêm vào một bản phát hành Debian hoặc Ubuntu, nó sẽ tiếp quản các gói thư viện cho các thư viện hỗ trợ thời gian chạy gcc (libgcc, libatomic, libasan, v.v.).

Gói nguồn cho phiên bản chính trước đó sau đó được sửa đổi trong lần tải lên tiếp theo để nó không còn xây dựng các gói đã được phiên bản chính mới tiếp quản, nếu nó không được sửa đổi theo cách này thì tôi khá chắc chắn rằng việc tải lên sẽ bị phần mềm lưu trữ từ chối (tôi biết nó sẽ có trong Debian, tôi không quen với thiết lập kho lưu trữ của Ubuntu)

Bạn có thể tải xuống gói nguồn gcc-7 mới nhất và sửa đổi nó để kích hoạt lại việc xây dựng thư viện, nhưng làm như vậy có thể gây ra nhiều vấn đề hơn là giải quyết đượ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.