sources.listから不正な形式の行を削除するにはどうすればよいですか?


68

同様のスレッドで見つけた情報に従って、Ubuntu Software Centerをインストールして再インストールしましたが、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.list67行目と69行目の間にコンテンツを追加できますか?
ブルーノペレイラ

2
質問を編集して、コマンドの出力を含めますcat /etc/apt/sources.list。そして、あなたはすべてを一掃する必要はありません。それは非常に簡単な問題です(私の経験から
アンワー

出力を投稿するために担当者は必要ありません。ただし、出力をコードとしてフォーマットする必要があります。そうしないと、複数のリンクを投稿するための十分なレップポイントがないため、出力を投稿できません。質問を編集して出力を貼り付け、出力を強調表示してからCtrl + Kを押して出力をコードとしてフォーマットし、変更を保存します。
mchid

回答:


55

sources.listファイル(またはの別の*.listファイルsources.list.d/)の一部の行が壊れています。

エラーに記載されているファイルを編集して、破線を修正します。

  1. これを行うには、次のコマンドを実行します(Ctrl+ Alt+ Tを押してターミナルを開きます)。

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

    または、Gedit(すべてのUbuntuシステムにあるわけではありません)の代わりに、端末ベースのテキストエディターでファイルを開くことをお勧めします。

    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の問題の一部はsoftware-centerパッケージを再インストールすることで解決できますが、ほとんどの場合はできないため、元の問題が残る可能性があります。その場合は、新しい質問を投稿してヘルプを得ることができます。


Debianベースのディストリビューション./では、この例のように
行末に時々

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ことは仕事をします。

  • 次に、コピーしたコンテンツをに貼り付けます。たとえば、14.04の場合は、Ubuntuのバージョンを表すコード名sources.listに置き換える必要がありpreciseますtrusty。次に、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
ノーブルP.アブラハム

3
ユーザーが他のリポジトリを有効にしている可能性があり、これを行うとそれらが失われるため、受け入れられなかった可能性があります。たとえば、VirtualBoxのほとんどのユーザーは、Oracleのリポジトリから取得します。また、Oracleは、リポジトリでUbuntuとは異なるパッケージ名を使用します。したがって、OracleのレポジトリでVirtualBoxをインストールしてこのガイドに従った場合、常に同じバージョンのVirtualBoxに座って、更新を取得することはありません。決して。
ジョンスコット

@FuzzyToothpaste彼らがこれをしたとしても、彼らはそれらを失うことはありません。重複するエントリのみを削除します。あなたの例のシナリオでは、この問題とは何の関係もありません
アンワル

使用する場合はUbuntuのソースリストジェネレータサイトを新しいのsources.listファイルを生成するために、GPGキーを更新することを忘れないでください。そうしないと、問題が解決しない場合があります
トゥシャルゴスワミ

6

エラーからわかるように、sources.listファイルのエントリが間違っていると表示されます。この間違ったエントリは解析できませんでした。このエラーはSoftware Centerとは関係ありませんが、主に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
問題のある行を削除するのは良い考えではないかもしれません(ただし、これを行う前にバックアップすることをお勧めします)。ユーザーが必要とするリポジトリの場合はどうなりますか?長い行は何とか2行に分割された場合にも、あなたが持っているでしょう2つの不正な形式の行を(と手順が繰り返されなければなりません)。man sources.listには例のセクションがあり、ユーザーに自分の行を例と比較するように頼むと便利な場合があります。個人的には、彼がsources.listファイルを投稿するまで待ちます。
roadmr

@roadmr:ありがとう、私はあなたが仮定するすべてのシナリオに完全に同意します。初心者は、ファイルの投稿方法さえ知らないかもしれないと感じました。それはように私にインスピレーションを受け、この自己QA-HOWTOの書き込み :-)
っぽい

@roadmr 1つの長い行が2行に分割されると、2 つの不正な形式のエラーメッセージが表示されると思います。
mchid

if -i.backupsed単に-iその代わりに渡されるsedと、バックアップファイル自体が作成されることに注意してください。
エリアケイガン

5

このファイルに/etc/apt/sources.listは、WebサーバーのURLと他のソースフォーム(cdなど)の場所が含まれており、そこからソフトウェアと更新を取得します。基本的には、Ubuntuに新しいソフトウェアと既にインストールされているプログラムの更新を探す場所を指示します。取得したエラーメッセージは、ファイルが何らかの理由で侵害されたことを意味します。ファイルの内容がわからない場合、ファイルの何が問題なのかを正確に知ることは困難です。ですので、sudo more /etc/apt/sources.listあなたの改善を支援するために、私たちの出力を投稿してください。

ファイルが修復できないほどめちゃくちゃになっている場合は、Ubuntu Source List Generatorを使用して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

という1つのファイルだけをバックアップすれば十分ですsources.list
con-f-use

いいでしょう 次に、ソースリストジェネレーターを試しますか?
Odi1215

ポジティブ。はい。
CON-F-使用

sudo more /etc/apt/sources.listと入力しましたが、何も起こりませんでした。
Odi1215

5

ターミナルにsources.listドロップsudo gedit /etc/apt/sources.listしてファイルを編集してみてください(パスワードが要求される場合があります)。その後、gEditのメニュー編集/設定で「行番号」を有効にし、「行番号を表示」チェックボックスをクリックします。次に、91などのエラーで手動で行に移動するか、「検索/行に移動」を使用して(Ctrl + Iでトリックを行います)。

ここに画像の説明を入力してください

行91の先頭で、2つの#記号(##)をドロップしてその行にコメントし、この方法で更新プロセスから削除します(ご自身の責任でその行を削除することもできます。バックアップをお勧めします)。

終了したら、ファイルを保存して閉じます。次に、ターミナルを開いて実行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
@マリカこんにちは、私はこれが問題を修正してくれてうれしいです。しかし、質問者だけでなく、この質問をグーグルで質問者の問題のわずかなバリエーションを持っている人々のために質問に答えてみてください。これはおそらく、適切な「一般的な」回答にするためにもう少し説明が必要です。:)
Jjed

@JacobJohanEdwards私はあなたに同意することはできません。質問を読む前にコマンドを実行する人々を本当に助けることができないからです。IMO
Anwar

2
@Anwar私の意見では、それは(a)のように答えていないと回答者の責任であるだけのオリジナルアスカー[それはあまりにもローカライズされます]、(b)は適切の潜在的な副作用を警告しませんしないのに役立ちますコマンド。免責事項が役立ちます。
ジェド

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代わりにplainを使用できます-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はレポジトリのタイプです。typeを持つソースリポジトリではなく、バイナリリポジトリであることを示しますdeb-scr
  • 場所: http://archive.ubuntu.com/ubuntuリポジトリの場所
  • Dist-name: preciseは、Ubuntuリリースのディストリビューション名です。Ubuntu 12.04の場合precise、11.10はoneiric

  • コンポーネント: mainリポジトリのコンポーネントを示しています。Ubuntuリポジトリは4つの部分に分かれています。

    1. メイン -公式にサポートされている無料のオープンソースソフトウェアが含まれています
    2. Universe-これらのソフトウェアはCanonicalによってサポートされていませんが、コミュニティによって維持されています。
    3. 制限付き -これらのソフトウェアはCanonicalによってサポートされていますが、無料ではありません。これらは、いくつかの重要なドライバーを提供するためにサポートされています
    4. Multiverse-これらも非フリーソフトウェアであり、Canonicalではサポートされていません。

詳細については、このページを参照してください

これ/etc/apt/sources.listは、リポジトリのソース行ではなく、それapt-getについて文句を言っていることを理解できます。



1
こんにちは、アンワール、これは良い答えですが、その上にコマンドを置くだけでは非常に危険sudo sedです。同じ問題(ただし、状況はわずかに異なる)を持つ多くの人々は、この答えを見て、それを意のままに実行し、sources.list修復できない可能性があります。この場合、より一般的なアプローチ(テキストエディターを使用)が適切です。
ジェド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.