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.