source.list에서 잘못된 행을 제거하려면 어떻게합니까?


68

비슷한 스레드에서 찾은 정보에 따라 Ubuntu Software Center를 unistalled하고 다시 설치했으며 91 번째 줄 또는 이와 유사한 것에 대해 동일한 응답을 얻었습니다.

방금 스크린 샷을 업로드하려고했지만 새로 왔기 때문에 허용되지 않습니다. 또한 잘라내어 붙여 넣는 방법을 알 수 없으므로 소프트웨어 센터를 열려고 할 때 아무 일도 일어나지 않고 터미널에 명령을 입력하여 제거하려고 할 때 오류 화면에 직접 입력해야합니다. , 내가 다음과 같은 것을 얻습니다.

COULD NOT INTITIALIZE THE PACKAGE INFORMATION
An unresolvable problem occured while initializing the package information
Please report t:his bug against the 'update-manager' package and include the
following error message:
'E: Malformed line 91 in source list/etc/apt/sources.list (dist parse) 
E: The list of sources could not be read., 
E: The package list of status file could not be parsed or opened.

버그는 어떻게 신고합니까? 이것에 대해 무엇을 할 수 있습니까? 나는 수색했고 모든 사람들이 말한 모든 것을 같은 줄 오류 메시지로 다시 안내합니다.

소스리스트에서 91 행으로가는 방법을 모르겠습니다. 그것이 말하는 것을 말해 줄 것입니다. 미안, 나는 이것에 대해 처음이다. 그것이 내가 필요한 것은 거기에 도착하고 그것이 말하는 것을 고치는 방법을 찾는 것입니다. 하드 드라이브를 다시 파티션하고 처음부터 다시 시작할 필요가 없으므로이 문제가 해결되기를 정말로 기대합니다. 새 소프트웨어를 설치할 수 있어야합니다.


8
/etc/apt/sources.list줄 67과 69 사이에 내용을 추가 할 수 있습니까 ???
Bruno Pereira

2
명령의 출력을 포함하도록 질문을 편집하십시오 cat /etc/apt/sources.list. 그리고 모든 것을 지울 필요는 없습니다. 그것은 매우 쉬운 문제입니다 ( 내 경험에서 )
Anwar

출력을 게시하기 위해 담당자가 필요하지 않습니다. 그러나 출력을 코드로 형식화해야하거나 여러 개의 링크를 게시 할 충분한 응답 지점이 없기 때문에 출력을 게시 할 수 없습니다. 질문을 편집하고 출력을 붙여 넣은 다음 출력을 강조 표시 한 다음 Ctrl + K를 눌러 출력을 코드 형식으로 지정한 다음 변경 내용을 저장하십시오.
mchid

답변:


55

sources.list파일 (또는의 다른 *.list파일)에서 일부 줄이 끊어졌습니다 sources.list.d/.

오류에 언급 된 파일을 편집하여 끊어진 줄을 수정하십시오.

  1. 이렇게하려면이 명령을 실행하십시오 ( Ctrl+ Alt+ T를 눌러 터미널을 여는 경우).

    sudo -H gedit /etc/apt/sources.list
    

    또는 모든 우분투 시스템이 아닌 Gedit 대신 터미널 기반 텍스트 편집기로 파일을 여는 것이 좋습니다.

    sudoedit /etc/apt/sources.list
    

    필요한 경우 /etc/apt/sources.list다른 파일 이름으로 바꾸십시오 ( 예 : 내부의 일부 파일 경로) /etc/apt/sources.list.d/.

  2. 형식이 잘못된 행을 찾으십시오 (행 번호의 오류를 참조한 후 해당 지점을 둘러보십시오). 다음은 올바르게 형식이 지정된 행의 예입니다.

    # Comment, marked by a line starting with '#'
    deb http://site.example.com/debian distribution component1 component2 component3
    deb-src http://site.example.com/debian distribution component1 component2 component3
    

    URL distribution과 구성 요소가 다릅니다. 반드시 3 개의 구성 요소를 가질 필요는 없습니다.

    이 형식에 맞지 않는 것은 올바르지 않습니다.

  3. 파일을 저장하고 텍스트 편집기를 종료하십시오. 그런 다음 터미널 창에서이 명령을 실행하십시오.

    sudo apt-get update
    

오류가 없다고 가정하면 문제가 해결되었습니다. Sofware Center를 실행할 수 있어야합니다.

그러나 소프트웨어 센터의 일부 문제는 software-center패키지 를 다시 설치하여 해결할 수 있지만 대부분은 해결할 수 없으므로 원래 문제가 남아있을 수 있습니다. 이 경우 새로운 질문을 게시하여 도움을받을 수 있습니다.


가끔 데비안 기반 배포판을 위해 당신이 필요가 있다고 생각 ./이 같이 줄의 끝에
user10089632

27

빠른 방법

이 문제의 해결 방법 sources.list은 처음부터 항목을 작성 하는 것일 수 있습니다 .

deb http://archive.ubuntu.com/ubuntu precise main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu precise universe main multiverse restricted

deb http://security.ubuntu.com/ubuntu/ precise-security universe main multiverse restricted
deb http://archive.ubuntu.com/ubuntu precise-updates universe main multiverse restricted
deb http://archive.ubuntu.com/ubuntu precise-backports universe main multiverse restricted

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

# deb http://extras.ubuntu.com/ubuntu precise main
# deb-src http://extras.ubuntu.com/ubuntu precise main
  • 위 내용을 (회색 상자로) 복사하고 sources.list파일을 루트로 엽니 다 .

    sudo -H gedit /etc/apt/sources.list이것을 터미널에 입력 하고 때리면 Enter작업이 수행됩니다.

  • 그런 다음 복사 된 내용을 붙여 넣습니다 sources.list-아마도 preciseUbuntu 버전을 나타내는 코드 이름 으로 바꿔야 합니다 (예 : trusty14.04). 그런 다음 gedit를 저장하고 닫습니다.

  • 그러면 sudo apt-get update리포지토리 목록이 업데이트 된 것을 볼 수 있습니다.

설명 : 여기서는 메인 서버의 저장소 항목이있는 다른 sources.list 파일로 내용을 완전히 바꿉니다. 로컬 서버를 사용하려면 sources.list아래 방법 을 참조하십시오.

권장 방법

Ubuntu 소스 목록 생성기 사이트로 이동 하십시오 .

  • 당신의 나라를 선택하세요.
  • Main, Restricted, Multiverse, Universe 등 원하는 분기를 선택하십시오.
  • 원하는 업데이트 목록을 선택하십시오-
  • 원하는 경우 타사 저장소 목록을 선택하십시오.
  • 페이지 하단의 목록 생성을 클릭 하면 리포지토리가있는 목록이 표시됩니다.
  • 해당 목록을 복사하고 sources.list가지고 있는 파일로 바꾸십시오 .

끝났습니다. (이것이 도움이되기를 바랍니다.)


5
이것이 받아 들여지지 않은 이상한!! 빠른 수정 은 줄의 첫 문자 /etc/apt/sources.list로 추가 하여 문제가있는 줄을 주석으로 처리합니다 ##. 그런 다음 시도하십시오 sudo apt-get update.
Noble P. Abraham

3
사용자가 다른 리포지토리를 사용하도록 설정했을 수 있고 허용하지 않으면 허용되지 않을 수 있습니다. 예를 들어, VirtualBox의 대부분의 사용자는 Oracle의 저장소에서 가져옵니다. 또한 오라클은 Ubuntu와 다른 패키지 이름을 사용합니다. 따라서 Oracle의 repo와 함께 VirtualBox를 설치 하고이 안내서를 따르면 항상 동일한 버전의 VirtualBox에 앉아서 업데이트를받지 않습니다. 못.
John Scott

@FuzzyToothpaste 그들은 이렇게하면 그들을 잃지 않을 것입니다. 중복 항목 만 제거합니다. 예제 시나리오는이 문제와 아무 관련이 없습니다
Anwar

Ubuntu 소스 목록 생성기 사이트 를 사용하여 새 sources.list 파일을 생성 할 때 GPG 키를 업데이트하는 것을 잊지 마십시오. 그렇지 않으면 문제가 지속될 수 있습니다
Tushar Goswami

6

오류에서 볼 수 있듯이 sources.list 파일에 잘못된 항목이 있다고 표시됩니다. 이 잘못된 항목을 파싱하지 못했습니다. 이 오류는 소프트웨어 센터와 관련이 없지만 apt (패키지 관리자)와 관련이 있습니다.

이를 해결하는 방법은 잘못된 행 91항목 을 수정하는 것 입니다.

91 행의 문제점을 이해할 수없는 경우 91 행을 게시하면 도와 드리겠습니다.


6

/etc/apt/sources.list이 문제를 해결할 수 있도록 파일을 붙여 넣으 십시오. 이를 수행하는 방법은이 짧은 학습서 답변을 참조하십시오.

명령 또는 텍스트 파일의 출력을 다른 사람과 쉽게 공유하려면 어떻게해야합니까?


이 방법은 때로는 매우 쉬운 수정일 수 있지만 중요한 파일이므로 먼저 백업해야 sources.list 합니다.

  1. Ctrl+ Alt+로 터미널을 엽니 다 T.
  2. 유형 / 붙여 넣기 : sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup(백업 복사본을 만듭니다)
  3. sudo sed -i -e '68d' /etc/apt/sources.list (문제가되는 줄을 삭제함)
  4. sudo apt-get update (이것은 희망적으로 수정 된 파일로 데이터베이스를 업데이트합니다)

4 단계를 시도 할 때 오류가 나타나지 않으면 문제가 해결 된 것입니다. 터미널을 종료하고 Software Center / Update Manager로 돌아 가면 작동합니다.

여전히 문제가있는 경우을 사용하여 터미널에서 원본 파일을 복원 할 수 있습니다 sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list. 이 경우 문제가되는 줄이나 전체 파일을 페이스트 빈에 붙여 넣으면 도움이됩니다.


3
문제가되는 행을 삭제하는 것은 좋은 생각이 아닐 수 있습니다 (그러나이를 수행하기 전에 백업하기위한 조언에 대한 조언). 사용자가 필요로하는 저장소라면? 긴 줄이 어떻게 든 두 행으로 분할 된 경우에도, 당신은 것 잘못된 줄을 (그리고 과정을 반복해야합니다). man sources.list예제가 포함 된 섹션이 있으며 사용자에게 자신의 라인을 예제와 비교하도록 요청하는 것이 유용 할 수 있습니다. 어쩌면 그는 무엇이 잘못되었는지 판단하여 직접 해결할 수 있습니다. 개인적으로 그가 그의 sources.list 파일을 게시 할 때까지 기다렸습니다.
roadmr

@roadmr : 감사합니다. 귀하가 제기 한 모든 시나리오에 전적으로 동의합니다. 나는 초보자가 어떻게 조언하지 않는 한 파일을 게시하는 방법을 알지 못할 수도 있다고 생각했습니다. 이 자체 QA 하우투작성 하도록 영감을주었습니다 :-)
ish

@roadmr 하나의 긴 줄이 두 줄로 분할되면 두 개의 잘못된 줄 에 대한 오류 메시지가 표시 됩니다.
mchid

경우에 참고 -i.backup전달됩니다 sed대신 바로 -i다음 sed백업 파일 자체를 만들 것입니다.
Eliah Kagan

5

파일 /etc/apt/sources.list에는 소프트웨어 및 업데이트를 검색하는 웹 서버의 URL 및 기타 소스 양식의 위치 (예 : cd)가 포함되어 있습니다. 기본적으로 Ubuntu에 새 소프트웨어를 찾을 위치와 이미 설치된 프로그램의 업데이트를 알려줍니다. 오류 메시지는 파일이 손상되었음을 의미합니다. 파일의 내용이 무엇인지 알지 못하면 정확히 무엇이 잘못되었는지 알기가 어렵습니다. 따라서 sudo more /etc/apt/sources.list더 나은 결과를 얻을 수 있도록 결과를 게시해야합니다 .

파일이 복구 할 수 없을 정도로 엉망인 경우 Ubuntu 소스 목록 생성기 를 사용하여 sources.list새로 생성 할 수 있습니다. 그러나 이전의 것을 미리 백업해야 합니다. 또한 이로 인해 소프트웨어 소스에 대한 모든 변경 사항 (예 : Sofware Center)이 손실됩니다.

이 문제를 해결하는 더 좋은 방법은 귀하의 문제를 확인하는 것입니다. sources.list

당신이 게시 한 후 편집 sources.list:

게시 한 파일은 다음과 같아야한다고 생각합니다 (마지막 줄과 /etc/apt/sources.list끝에 없음).

# /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://archive.canonical.com/ubuntu partner
deb-src http://archive.canonical.com/ubuntu partner

파일을 백업 한 후 소스 목록 생성기를 시도하지만 시간이 오래 걸립니다. 내 노트북은 여전히 ​​HDD에 있으므로 아직 그렇게 빠르지 않습니다. 위의 메시지에 source.list를 추가했습니다.
Odi1215

라는 파일 하나만 백업하면 충분합니다 sources.list.
혼동

알겠습니다 그런 다음 소스 목록 생성기를 사용해 볼까요?
Odi1215

양. 그렇습니다.
콘 - F-사용

sudo에 /etc/apt/sources.list를 더 입력했지만 아무 일도 일어나지 않았습니다.
Odi1215

5

gedit의 메뉴 편집 / 기본 설정에서 "줄 번호"를 활성화하고 "줄 번호 표시"체크 상자를 클릭하면 터미널에 끌어서 (암호가 필요할 수 있음) sources.list파일 을 편집하십시오 sudo gedit /etc/apt/sources.list. 그런 다음 수동으로 오류의 줄로 이동하십시오 (예 : 91) 또는 "검색 / 줄 바꾸기"를 사용하여 (Ctrl + I 트릭을 수행).

여기에 이미지 설명을 입력하십시오

줄 91의 시작 부분에 두 줄의 # 기호 ( ##)를 떨어 뜨려 해당 줄에 주석을 달고이 방법으로 업데이트 프로세스에서이를 제거하십시오 (위험에 따라 해당 줄을 삭제할 수도 있습니다. 백업을 제안합니다).

완료되면 파일을 저장하고 닫습니다. 그런 다음 터미널을 열고 실행 sudo apt-get update하여 오류가 계속 나타나는지 확인하십시오. 그렇지 않은 경우 업데이트 관리자를 열어보십시오.

sources.list파일의 91 행에있는 텍스트 가 손상되었거나 일종의 오류가있는 것 같습니다. 이는 일부 소프트웨어를 설치 / 업데이트 / 업그레이드 할 수 없음을 의미합니다.

잘못된 행을 주석 처리 / 제거하면 소프트웨어가 설치되지 않거나 (아직 설치되지 않은 경우) 업데이트 / 업그레이드되지 않습니다. 그 중 어느 라인이 어디에서 나오는지 (어떤 소프트웨어가 필요로하는지) 확인하고 모든 것이 제대로 실행되도록 필요한대로 수정하십시오.


4

아래와 같이 잘못된 줄 오류가 발생 하면 줄을 파일 에서 삭제하지 말고 주석 처리 ( 줄 앞에 추가# )하는 것이 좋습니다 /etc/apt/sources.list.

E: Malformed line 91 in source list /etc/apt/sources.list (dist parse)

위의 오류에서 행 번호 91/etc/apt/sources.list파일이 손상되었습니다. 줄 번호 91을 주석 처리하려면 터미널에서 아래 명령을 실행해야합니다.

sudo sed -i '91s/\(.*\)/#\1/' /etc/apt/sources.list

91위의 코드에서 줄 번호를 나타냅니다. 잘못된 행 오류가 발생하면 위 코드에서 91을 숫자로 바꿉니다.

경우에 따라 /etc/apt/sources.list.d디렉토리 내에 실제로 존재하는 목록 파일에서 잘못된 행 오류가 발생할 수도 있습니다 . 예를 들어

E: Malformed line 1 in source list /etc/apt/sources.list.d/google.list (dist parse)

이 경우 google.list실행 하여 파일 을 삭제 sudo rm /etc/apt/sources.list.d/google.list한 다음 해당 PPA를 다시 추가하는 것이 좋습니다 .

마지막으로 sudo apt-get update터미널 에서 명령을 실행하여 모든 리포지토리를 업데이트하십시오 . 이제 오류가 나타나지 않습니다.


3

이 파일의 마지막 줄을 삭제해야합니다 (물론 파일 자체는 아님).

 /etc/apt/sources.list

귀하의 sources.list파일은 다음과 같은 것을보고있다 :

# /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe   multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://archive.canonical.com/ partner
deb-src http://archive.canonical.com/ partner

물론 sources.list파일을 해당 텍스트로 바꾸는 것만 으로도 매우 나쁠 수 있습니다. 핵심은 각 줄이 deb또는로 시작 deb-src한다는 것입니다 (로 시작하는 주석은 제외 #).


1
@ Malika 안녕하세요, 문제가 해결되어 기쁩니다. 그러나 질문자뿐만 아니라 Google이이 질문을하고 질문자의 문제에 약간의 변형이있는 사람들에게 질문에 답하십시오. 이것은 좋은 "일반적인"답변을 만들기 위해 약간의 설명이 필요할 것입니다. :)
Jjed

우리가 정말 IMO, 질문을 읽기 전에 명령을 실행하는 사람들을 도울 수 없기 때문에 @JacobJohanEdwards 나는 당신과 함께 동의 할 수
안와르

2
@Anwar 내 의견으로는, (a) 원래의 asker [너무 현지화되어 있음] 만을 도울 수 있는 방식으로 답변 하지 않고 (b) a의 잠재적 부작용에 대해 적절하게 경고하지 않는 것은 답변자의 책임 입니다. 명령. 면책 조항이 도움이됩니다.
Jjed

1

CTRL+ Alt+를 사용하여 터미널을 열고 T아래 명령을 실행하여 6 행을 제거하십시오.이 행은 올바른 형식의 저장소 소스 행이 아니므로 잘못된 행에 대한 오류가 발생합니다.

경고 : 질문을 먼저 읽지 않고이 명령을 실행하지 마십시오.이 명령은 /etc/apt/sources.list파일의 68 행을 삭제 합니다. 문제가 비슷한 지 확인 하고68 문제가 있더라도 삭제해야하는 줄 번호로 바꾸십시오 .

sudo sed -i.old '68d' /etc/apt/sources.list

이 명령은 sed제자리를 사용하여 줄을 삭제합니다 . 이라는 백업을 만듭니다 /etc/apt/sources.list.old. 백업을 원하지 않으면 -i대신 대신 일반 을 사용할 수 있습니다 -i.old.

또는 Gedit를 사용하여 줄을 수동으로 삭제할 수 있습니다.

  • 를 눌러 Alt+ F2입력 gksu gedit /etc/apt/sources.list.
    (없는 경우 gksu사용할 수 있습니다 sudo -H gedit.)
  • 손상된 부분을 찾아서 /etc/apt/sources.list제거하십시오.
  • Gedit를 저장하고 종료하십시오.

올바른 저장소 소스 행 양식 :

저장소 소스 라인의 올바른 형식은 다음과 같습니다.

<type of repository> <location i.e URI>  <dist-name> <components i.e main, universe>

예를 들면 다음과 같습니다.

  deb http://archive.ubuntu.com/ubuntu precise main
  • Type : deb 은 리포지토리의 유형으로, 소스 리포지토리가 아닌 바이너리 리포지토리임을 나타냅니다 deb-scr.
  • 위치 : http://archive.ubuntu.com/ubuntu 저장소의 위치
  • Dist-name : precise 은 Ubuntu 릴리스의 배포 이름입니다. 우분투 12.04의 경우 precise11.10입니다.oneiric

  • 구성 요소 : main 저장소의 구성 요소를 나타냅니다. 우분투 저장소는 부분 으로 나뉩니다 .

    1. 메인 -무료 및 오픈 소스 소프트웨어를 포함하며 공식적으로 지원
    2. 유니버스 -이 소프트웨어는 Canonical에서 지원하지 않지만 커뮤니티에서 유지 관리합니다.
    3. 제한 -이 소프트웨어는 Canonical에서 지원하지만 무료는 아닙니다. 이들은 필수 드라이버를 제공하기 위해 지원됩니다
    4. Multiverse- 이들은 또한 무료 소프트웨어이며 Canonical에서 지원하지 않습니다.

자세한 내용은 이 페이지 를 참조하십시오.

이제는 /etc/apt/sources.list저장소 소스 라인이 아니므로 이에 apt-get대해 불만을 표시 할 수 있습니다.



1
안녕, 안와르, 이것은 좋은 대답이지만, 그 위에 명령 을 내리는 것은 매우 위험 sudo sed합니다. 동일한 문제 (그러나 약간 다른 상황)를 가진 많은 사람들이이 답변을보고 윌리 닐리가이를 실행하여 sources.list수리 할 수 없을 정도로 난파 할 수 있습니다. 이 경우보다 일반적인 접근 방식 (텍스트 편집기 사용)이있을 수 있습니다.
Jjed
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.