Làm cách nào tôi có thể sửa lỗi không thể tìm thấy cơ sở hợp lệ cho các lỗi repo trên CentOS?


130

Tôi đã cài đặt xong CentOS 6, nhưng khi tôi thử chạy, yum updatetôi đã nhận được:

[root@centos6test ~]# yum update
Loaded plugins: fastestmirror, refresh-packagekit
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=i386&repo=os
error was 14: PYCURL ERROR 6 - "" Error: Cannot find a valid baseurl for repo: base

Tại sao điều đó xảy ra? Làm thế nào tôi có thể sửa chữa nó?


3
Bạn có kết nối với mạng không? Bạn có thể ping mirrorlist.centos.org không?
Nikhil Mulley

3
Điều gì xảy ra nếu bạn chạy curl 'http://mirrorlist.centos.org/?release=6&arch=i386&repo=os'?
rvs

Câu trả lời:


165

Trước tiên, bạn cần kết nối, tối thiểu AFAIK CentOS 6 đặt thiết bị mạng của bạn thành ONBOOT=No, chỉ cần thực hiện dhclientvới đặc quyền quản trị viên cho giao diện mạng của bạn và bạn nên khởi động và chạy:

$ sudo dhclient


1
Tôi đã từng thiết lập máy khách dhcp trên máy chủ từ xa bằng cách sử dụng ssh theo câu trả lời này và bây giờ tôi bị mất kết nối vì IP máy chủ hiện đang thay đổi động và tôi không nghĩ đến trường hợp đó trước khi áp dụng các thay đổi. Câu trả lời này là sai lầm mà không có đủ mô tả và dẫn đến hiểu lầm.
Mojtaba Rezaeian

4
Đối với phiên bản CentOS-7 (1611), ONBOOT=Notệp này nằm trong một tệp như thế nào /etc/sysconfig/network-scripts/ifcfg-enp0s3. Tôi đã chỉnh sửa tập tin đó ONBOOT=yesvà khởi động lại có thể sửa nó.
Johnny Wong

2
Thay đổi để ONBOOT=yestrong /etc/sysconfig/network-scripts/ifcfg-enp0s3tác phẩm đối với tôi, nhờ @JohnnyWong
Evi Sông

24

Tôi đã phải vật lộn với vấn đề tương tự trên Centos6.4 x86_64. Tôi đã nhận được lỗi sau:

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Error: Cannot find a valid baseurl for repo: base

Vì vậy, tôi đã sửa nó bằng các bước sau:

chỉnh sửa giao diện mạng. Đối với trường hợp của tôi, tôi đã sử dụng eth0trong CentOS 6.X Trong CentOS 7, bạn có thể sử dụng giao diện "skexxx".

vim /etc/sysconfig/network-scripts/ifcfg-eth0

cập nhật NM_CONTROLLED thành không

ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
DNS1=8.8.8.8
DNS2=4.2.2.2

khởi động lại giao diện mạng

ifdown eth0
ifup eth0

1
ifcfg-eth0không tồn tại trên
CentOs

@shailenTJ Chỉ cần chạm vào nó ~ hoạt động tốt.
Eddie B

1
@shailenTJ Họ đã thay đổi hệ thống đặt tên, đó sẽ là enpXsX, trên hệ thống của tôi là enp0s3, nhưng có lẽ nó sẽ hơi khác một chút so với bạn.
MarcusJ

Nếu bạn thực hiện "cài đặt tối thiểu", thì "ifcfg-enpls0f0" của nó. Nhưng nếu bạn cài đặt bằng GUI, nó sẽ ghi đè tệp đó bằng thứ khác. Sau đó, bạn sử dụng công cụ cài đặt mạng ở góc trên bên phải của màn hình chính.
Chris Dutrow

4.2.2.2có thể không phải là mục DNS bạn muốn!
Dolph

14

Tôi đã có cùng một vấn đề và nó đã được giải quyết sau khi tôi chỉnh sửa /etc/yum.conftập tin. Nếu bạn đang chạy trên máy chủ proxy và IP được cung cấp cho máy chủ bị bỏ qua nhưng vẫn khi bạn mở trong trình duyệt (IE - chúng tôi cần cung cấp dấu kiểm trên proxy nhưng không cần cung cấp tên người dùng và mật khẩu.)

Thêm dòng sau đây trong phần chính của tệp /etc/yum.conf.

proxy=http://xxx.xxx.xx.xx:8080

tức là thay thế địa chỉ proxy bằng proxy thực tế. Cũng thay đổi số cổng nếu nó không phải là 8080.

Nếu proxy yêu cầu xác thực, hãy thêm điều này vào tệp

proxy_username=username
proxy_password=password

9

Tôi đã chỉnh sửa tập tin /etc/yum.repos.d/CentOS-Base.repovà không ghi chú baseurl:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

1
Cảm ơn! Điều này làm việc cho tôi. Có ai biết tại sao điều này là cần thiết, hoặc tại sao nó được bình luận nếu nó cần thiết?
Giàu

9

Nếu ping máy chủ nổi tiếng bằng tên của nó (ví dụ ping www.google.com) trả về ping: unknown hostnhưng ping ip (ví dụ ping 8.8.8.8) hoạt động tốt thì bạn có vấn đề về độ phân giải DNS - hãy thử thêm các mục này vào /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

2

Tôi đã có cùng một vấn đề ngày hôm qua và tôi đã dành hàng giờ cố gắng để giải quyết nó. Các giải pháp kết thúc đơn giản.

Xóa nội dung /etc/yum.repos.d/remi.repovà sau đó thực thi

# yum update

Xong rôi! Nội dung của tệp sẽ bắt đầu tải xuống lại và được định cấu hình.


remi.repoTập tin này nằm ở đâu?

/etc/yum.repose.d/
Steven Kryskalla

Tôi có thể đã bỏ lỡ điều gì đó, nhưng bạn thấy anh ấy đã cài đặt repo của Remi ở đâu? Anh ấy đã đề cập rõ ràng 'Tôi đã cài đặt xong CentOS6', tôi nghi ngờ rằng repo của Remi được cấu hình. Tôi có thể sai ...
Spredzy

Vấn đề là một tệp không đúng định dạng /etc/yum.repos.d- remi.repotình cờ là tên tệp trong trường hợp này
Curtis Mattoon

1

Đây là một khả năng khác mà tôi vấp phải, gây ra vấn đề này:

Tôi đã sử dụng mô-đun Puppet để tạo repo EPEL cho CentOS, mô-đun stahnma / epel.

Trong mô-đun, nó tạo ra URL repo với biến ::os_maj_versionkhông tồn tại trong danh sách thực tế của tôi. Tôi đã phải thay thế nó bằng :: operatingsystemmajrelease.

Vì vậy, URL trong /etc/yum.repos.d/epel.repođã không đúng.


0

Nó đã xảy ra với tôi trên môi trường Centos 7 và tôi đã có thể giải quyết nó bằng lệnh sau:

yum clean all

Tôi đã không chạy bất kỳ lệnh yum nào trong một vài tháng, có vẻ như siêu dữ liệu được lưu trong bộ nhớ cache đã lỗi thời.


0

Tất cả các câu trả lời trước đây đều đúng nhưng không may là không hiệu quả với tôi. Lệnh dưới đây làm việc cho tôi:

Cảnh báo điều này sẽ xóa tất cả các repos của bạn !!! sử dụng điều này có nguy cơ của riêng bạn

mkdir ~/backup
cp -r /etc/yum.repos.d/Cen* ~/backup
rm /etc/yum.repos.d/Cen*

điều này sẽ xóa repo khỏi hệ thống
Saurabh Chandra Patel

Bạn có thể nên xem xét bao gồm các thủ tục để tạo lại các tệp kho lưu trữ đã xóa sau khi bạn đã xóa tất cả.
Kusalananda
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.