Lỗi :: Bạn phải đặt một số URI 'nguồn' vào nguồn của mình.


107

Tôi đang cố gắng cài đặt PIL một mô-đun python trên Ubuntu

Trước tiên tôi cần cài đặt một gói gọi là python-hình ảnh bằng cách sử dụng lệnh sau

sudo apt-get build-dep python-imaging

Khi tôi thử và làm điều này, tôi nhận được lỗi

E: You must put some 'source' URIs in your sources.list

Tôi thấy câu hỏi này whihc chỉ ra cách khắc phục thông qua GUI nhưng tôi đang sử dụng dòng lệnh. Có ai biết làm thế nào tôi có thể sửa lỗi này ..?

CẬP NHẬT: Dựa trên các câu trả lời dưới đây tôi đã cập nhật danh sách gói của mình nhưng bây giờ tôi gặp lỗi này. Không chắc nó có liên quan hay không, nếu không tôi sẽ bắt đầu một câu hỏi mới vì tôi không thể tìm thấy tài liệu tham khảo về lỗi ở bất cứ đâu.

E: Build-Depends dependency for python-imaging cannot be satisfied because candidate version of package python-all-dev can't satisfy version requirements  

Thông báo lỗi đầu tiên khá khó hiểu. Nó hiển thị mặc dù có MỘT SỐ nguồn trong tệp trong khi thông báo ngụ ý rằng không có nguồn nào cả. Những gì thông điệp cố gắng nói là bạn phải THÊM một nguồn chứa thông tin.
Sören

Câu trả lời:


100

software-properties-gtk tùy chọn "Mã nguồn"

Tôi khuyên bạn nên điều này cho máy tính để bàn:

software-properties-gtk

sau đó trong tab "Phần mềm Ubuntu", nhấp vào "Mã nguồn":

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

Điều này đã thêm một số deb-srcdòng dưới /etc/apt/sources.list, và bây giờ tôi có thể làm sudo apt-get build-dep <package>.

Tôi không thể tìm thấy một phương pháp CLI sạch vì vậy tôi tạo báo cáo lỗi này cho nó: https://bugs.launchpad.net/ubfox/+source/apt/+orms/1802718

Đã thử nghiệm trên Ubuntu 16.04 đến 18.04.

Phương pháp CLI

Tôi khuyên bạn nên điều này cho hình ảnh Docker:

sudo cp /etc/apt/sources.list /etc/apt/sources.list~
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

Đã thử nghiệm trên hình ảnh Docker Ubuntu 18.04. Sau khi thay đổi này, tôi có thể thành công làm ví dụ:

sudo apt-get build-dep hello

và trước khi thay đổi, nó đã thất bại với lỗi:

E: You must put some 'source' URIs in your sources.list

Được đề cập trước đây tại: https://askubfox.com/a/1011675/52975 đi và upvote câu trả lời.

Tuy nhiên, lưu ý rằng /etc/apt/sources.listtệp chứa các dòng như:

# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner

điều đó có nghĩa là ở trên sedsẽ cho phép các nguồn nhưng không phải là nguồn cho một số loại repos. Tôi không nghĩ rằng nó quan trọng nhiều mặc dù.


5
Điều này chỉ làm việc với tôi với Ubuntu 16.04
Hoặc Duan

2
Cũng đã giải quyết nó cho tôi trên Ubuntu 18.04
kramer65

2
@kilgoretrout "câu trả lời được chấp nhận như thế nào" Bởi vì lượt truy cập tìm kiếm của Google đánh bại ngữ nghĩa câu hỏi chính xác.
Ciro Santilli 心 心

1
Rất tuyệt! Phải yêu sed!
Esben Eickhardt

1
làm việc vào ngày 19.04
Haris

50

Bạn có thể chỉnh sửa danh sách nguồn ( /etc/apt/sources.list) trực tiếp. Tôi nghĩ bạn cần thêm / bỏ ghi chú những dòng này:

deb-src http://archive.ubuntu.com/ubuntu trusty main restricted #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty restricted main universe multiverse #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-updates restricted main universe multiverse #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse #Added by software-properties
deb-src http://security.ubuntu.com/ubuntu trusty-security restricted main universe multiverse #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-proposed restricted main universe multiverse #Added by software-properties

Tôi đã giải quyết vấn đề này bằng cách vô hiệu hóa tùy chọn mã nguồn và lưu một bản sao của tệp nguồn.list, sau đó bật tùy chọn mã nguồn, lưu một bản sao khác, sau đó chạy difftrên cả hai.

Bạn có thể muốn thay đổi tiền tố http://gb.thành tiền tố của các nguồn khác trong danh sách của mình (để nó sử dụng máy nhân bản repo gần nhất của bạn) và bạn cũng có thể bỏ qua #Added by software-properties.

Sau khi chỉnh sửa sources.list, hãy chạy sudo apt-get updatetrước khi thử cài đặt lại.

Toàn bộ diffcó thể được tìm thấy ở đây


Một cách khác là tạo ra một cái mới. Một phương pháp để có được một nguồn hoàn chỉnh.list là sử dụng trang web này: https://repogen.simplylinux.ch/


7
"Sau khi chỉnh sửa nguồn.list, hãy chạy sudo apt-get update trước khi thử cài đặt lại." - Đó là chìa khóa, cảm ơn!
Kaushal Modi

9
sudo sed -i -e 's / # deb-src / deb-src /' /etc/apt/source.list
Vincent

1
cảm ơn bạn đã nhớ tôi rằng$ sudo apt update
christianbueno.1

Nhận xét của Vincent là đủ cho tôi và siêu sạch
kilgoretrout

27

Biên tập /etc/apt/sources.list

sudo nano /etc/apt/sources.list

Sau đó xóa #hoặc thêm các dòng với deb-src $url, ví dụ:

deb http://ch.archive.ubuntu.com/ubuntu/ saucy main restricted
deb-src http://ch.archive.ubuntu.com/ubuntu/ saucy main restricted

Hoặc sao chép từ các dòng hiện có, ví dụ

deb blah blah
deb-src exact same blah blah

Sau đó chạy:

sudo apt-get update

Xem https://help.ubfox.com/community/Repositories/CommandLine để biết thêm thông tin.


17
thực hiện sudo apt-get updatesau khi chỉnh sửa sources.listtập tin
abidibo 18/03/2015

4

Đây là giải pháp dòng lệnh

cat /etc/apt/sources.list | grep deb-src  #  see what will get changed

đầu ra điển hình của cmd trên

# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://archive.canonical.com/ubuntu bionic partner
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://archive.ubuntu.com/ubuntu bionic main universe restricted multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse

Nếu bạn thay đổi tốt các dòng trên, điều này luôn đúng với bản cài đặt Ubuntu mới, thì vấn đề:

sudo sed -i~orig -e 's/# deb-src/deb-src/' /etc/apt/sources.list   

thực hiện sao lưu tệp đầu vào, sau đó tìm kiếm nhận xét deb-src nơi nó xóa nhận xét để làm cho các dòng đó hoạt động ... sau khi làm mới siêu dữ liệu cục bộ sẽ giúp máy của bạn nhận thức được các bản catagories mới của các gói ub Ubuntu

sudo apt-get update

bây giờ vấn đề một lần nữa lệnh ban đầu của bạn đã thất bại với:

E: You must put some 'source' URIs in your sources.list

1
Bạn có thể bỏ qua cp và sử dụng -i~origvới sed để có sed tạo bản sao lưu.
muru

3

Đối với Ubuntu 16.04, tôi đã thực hiện thành công các bản cập nhật này cho nguồn.list:

$ sudo diff /etc/apt/sources.list /etc/apt/sources.list.bkp 

6c6
< deb-src http://au.archive.ubuntu.com/ubuntu/ xenial main restricted
---
> # deb-src http://au.archive.ubuntu.com/ubuntu/ xenial main restricted

19c19
< deb-src http://au.archive.ubuntu.com/ubuntu/ xenial universe
---
> # deb-src http://au.archive.ubuntu.com/ubuntu/ xenial universe

39c9
< deb-src http://au.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
---
> # deb-src http://au.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse

53c53
< deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
---
> # deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

2

Trong Linux Mint (Tôi đang ở phiên bản 18), bạn có thể đi đến Nguồn phần mềm (tìm kiếm nó trong menu bắt đầu hoặc mở nó từ một thiết bị đầu cuối với software-sources). Ở đó, trên tab đầu tiên, bạn sẽ tìm thấy hộp kiểm Kích hoạt kho lưu trữ mã nguồn . Nếu bạn bật tính năng này, chương trình sẽ đặt các dòng chính xác vào /etc/apt/sources.list.d/official-source-repositories.listtệp của bạn . Chỉ cần đừng quên sudo apt-get update(hoặc nhấn Cập nhật bộ đệm trong Nguồn phần mềm) sau đó.

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.