「W:sources.listエントリの重複」の修正方法


190

実行しようとするたびにこの警告が表示されますsudo apt-get update

W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise-updates_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

/etc/apt/sources.listファイルからの出力は次のとおりです。

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

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

deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

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

どうすれば修正できますか?

回答:


229

sources.listには実際に重複したエントリがあります。

最初に、リポジトリ行またはソース行の正しい形式を見てみましょう。

リポジトリのソース行の正しい形式は

<type of repository>  <location>  <dist-name> <components> 

たとえば、レポ行は次のようになります

  deb http://archive.ubuntu.com/ubuntu precise main

ここでは、リポジトリはhttp://archive.ubuntu.com/ubuntuでホストされているバイナリパッケージ用であり、このリポジトリはUbuntu正確(12.04)用であり、このリポジトリにはメイン(公式にサポートされているソフトウェアCanonical)コンポーネント。

  • タイプ:タイプはdebおよびになりdeb-srcます。ソースリポジトリをdeb意味するバイナリリポジトリをdeb-src意味します

  • 場所: http://archive.ubuntu.com/ubuntuリポジトリの場所。

  • Dist-name: Ubuntuリリースのディストリビューション名。Ubuntu 12.04の場合はprecise11.11の場合ですoneiric
    Ubuntu Wikiにアクセスして、Ubuntuリリースとそのコード名の最新リストを表示できます

  • コンポーネント:それはすることができmainuniversemultiverserestricted。これらの言葉は、パッケージのサポートレベルとライセンスステータスを示します。

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

行に1つ以上のコンポーネントを追加できるため、「main」、「universe」、「restricted」、および「multiverse」を1行に追加できることに注意してください。また、1行に複数のコンポーネントを追加しますが、APTシステムはそれらを1つのコンポーネントのみを含む個別の行と見なします。

だから、あなたsources.listはこのような行を持っている場合

deb http://archive.ubuntu.com/ubuntu precise universe

次に、以下のような別の行を含めることはできません(ファイルにあります)

deb http://archive.ubuntu.com/ubuntu precise main universe

これはこれらの2行に相当します

deb http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe

ユニバースを 2回複製しているため、その複製にはエラーが発生するためです。見つかった重複ごとにエラーが表示されます。

解決:

sources.listファイルを分析した結果、デフォルトでUbuntuから提供されている基本的なファイルであることがわかりました。手順に従ってデフォルトのファイルを作成できます。

  1. ターミナルを開き、最初に既存のsources.listファイルの名前をsources.list.bakfileに変更します。(これは安全に削除できますが、注意が必要です)。

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. 次に、開いsoftware-properties-gtkて新しいものを作成します。ターミナルまたはダッシュコマンドプロンプトで次のコマンドを入力しますAlt+F2

    software-properties-gtk
    

    注、Ubuntuバージョン11.10 gksu以前では、software-properties-gtkコマンドの前に使用する必要があります

  3. ウィンドウが開いたら、

    • Ubuntuソフトウェアタブで4つのカテゴリすべてを選択します
    • 選択し 、正確なセキュリティ精密・アップデートおよび精密-backportsの内のカテゴリ更新 ]タブを。
    • [ その他のソフトウェア ]タブから[ 標準パートナー]および[ 独立カテゴリ]を選択します。

それでおしまい。これで、sources.listエラーのないデフォルトのファイルができました。必要に応じて、このファイルを前のファイルと比較します。


sources.list.ddirのファイルを処理するための更新

/etc/apt/sources.list.dAPTでも使用されるディレクトリ内のファイルに重複エントリが存在する場合があります。そのため、そのディレクトリを見て、それらのファイルに重複があるかどうかを確認する必要があります。重複が同じファイルにある必要はありません。

事例:

ユーザーは、実行中にこのエラーメッセージを表示しましたsudo apt-get update

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages)
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

ただしhttp://dl.google.com、メイン/etc/apt/sources.listファイルにはエントリがありません。/etc/apt/sources.list.d/ディレクトリを見ると、これらのファイルが見つかりました。

の出力ls /etc/apt/sources.list.d/

aims-sagemath-precise.list
aims-sagemath-precise.list.save
dropbox.list
dropbox.list.save
fossfreedom-packagefixes-precise.list
fossfreedom-packagefixes-precise.list.save
google-chrome.list
google-chrome.list.save
google.list
google.list.save
sagemath-monolithic-precise.list
sagemath-monolithic-precise.list.save

これらのファイルはgoogle-chrome.listgoogle.list重複を含めるのに適した候補でした。そのため、両方のファイルの内容を確認する必要がありました。

の出力cat /etc/apt/sources.list.d/google-chrome.list

deb http://dl.google.com/linux/chrome/deb/ stable main  

との cat /etc/apt/sources.list.d/google.list

deb http://dl.google.com/linux/chrome/deb/ stable main

そのため、Aptのソースに重複したエントリがありました。以来google-chrome.list、単一のaptラインを含み、それはまたにリストされたgoogle.listファイルを、私たちは安全にコマンドを使用して、このファイルを削除することができます

sudo rm /etc/apt/sources.list.d/google-chrome.list

その後、問題は解決しました。


5
sources.list.dに重複したエントリが含まれるようにするにはどうすればよいですか?
Seanny123

@ Seanny123それは言うのが難しいです。
アンワール

1
どうもありがとうございました。重複がどのように発生したのか、何時間も思っていました。最後にsources.list.dを示しました
Isura Manchanayake

1
素敵で徹底的な答え。あなたにsources.list.dディレクトリのファイルに対処するためのアップデートあなたは、重複を与えるファイル/ラインであるについて説明します。同様に、OPで重複を与える6組の行(「ファイルには6つの重複がある」と言うので)を説明できますか?
sancho.s

1
sources.list.dを確認するヒントは、これを解決するのに役立ちました。
-lcarsos

80

Ubuntu 12.04の場合

グラフィカルに:

Alt+ F2を押して貼り付けますsoftware-properties-gtk(または[ソフトウェアセンター]を開いて[編集]> [ソフトウェアソース]に移動します)。[その他のソフトウェア]タブに移動し、重複するエントリを選択して[削除]ボタンを押します。

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


コマンドラインオプションが必要な場合は、次のとおりです。

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list  

コマンドはこれを行います:

catファイルを読み取り、perl重複した行を削除するコンテンツを渡します。その後、結果は>一時ファイルに保存され、元の/etc/apt/sources.listファイルを置き換えるために移動されます。


2
混乱を招くことなく、細部を細かく修正する方法。ありがとうございました!
ピーターM. 14

それは実際に働いた!何らかの理由で、12.04にgitをインストールできませんでした。削除する代わりに、重複した「正規パートナー」と思われるものを確認しました。
davidkonrad 14年

3
私はワンライナーを実行しましたが、sudo apt-get updateまだ何も変更されていないかのようにエントリが重複していることを訴えます。問題があれば、12.04(具体的には、基本OS Luna)を使用しています。
気難しい

cat役に立たないと使用できないようにsudo perl -i
tripleee

24

sources.listの重複エントリはどれくらい悪いですか?

私はそれがどれほど悪いかわかりませんが、重複したエントリを表示するsudo apt-get updateが好きではありません。

ちなみに、それほど悪くはなく、重複したエントリがあることを示しています。

SourcesList

sources.listファイルは、Ubuntuインストールにアプリケーションを追加またはアップグレードする際の重要な要素です。これは、システムの更新のためにシステムでも使用されます。このファイルは、基本的にシステムがインストールまたはアップグレードのためにプログラムをダウンロードする場所を知るためのロードマップです。

まさにWindowsアップデート

Y PPA Managerを使用すると、いくつかの簡単な手順で重複したエントリを削除できます。

 sudo add-apt-repository ppa:webupd8team/y-ppa-manager -y
 sudo apt-get update
 sudo apt-get install y-ppa-manager -y

y-ppa-managerフォームダッシュを開く

管理者パスワードを入力してください

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

高度なダブルクリック

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

重複したPPAをスキャンして削除し、[OK]をクリックします

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

重複したPPAをスキャンして削除するには、しばらく時間がかかります(1または2分)


2
私の場合、Y PPAは重複が見つからないと言っていました。source.listのバックアップを作成して削除し、sudo apt-get updateを実行してソースリスト(ubuntu 12.04)を再作成しました。これは私のために働いた。
michel.iamit

1
Mint 17で私のために働いてくれて、ありがとう!
spences10 14

Ubuntuの14.04..Thanksの仲間に私のために働いた... :)
ラウール・シン

1
魅力のように働いた
ベクトル

1
私の14.04の場合、 重複は見つかりませんでした
ムハンマドオメルアスラム

16

パートナーリポジトリはと内/etc/apt/sources.listで複製されます/etc/apt/sources.list.d/precise-partner.list

パートナーリポジトリが既に存在するため、これらの「正確なパートナー」ファイルを削除するだけsources.listです。

sudo rm /etc/apt/sources.list.d/precise-partner.*

私は取得していますrm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory
デニス

1
試してみてくださいsudo rm /etc/apt/sources.list.d/*partner*。また、/ etc / apt / sources.listを確認し、重複する行を探します。
エリック

運が悪く、そのディレクトリの名前に「パートナー」が含まれるファイルはありません。および/etc/apt/sources.listによる重複は含まれていませんuniq
デニス

10

sources.listのバックアップコピーを作成します。

sudo cp /etc/apt/sources.list{,.backup}

元のファイルを削除して更新します。

sudo rm /etc/apt/sources.list && sudo apt-get update

sources.listファイルなしでどのように更新できますか?
アンウォー

再入力されます。=)
wojox

私の人口はなかった
conman253

バックアップしたものに戻す
wojox

バックアップされたリストに戻るにはどうすればよいですか?削除は多くの重要なものを削除しました...これは完全に安全ではありません。
alvas15年

8

私は同じ問題を抱えていました、オープンソースソフトウェア。「標準パートナー」のチェックを外しました。競合は「正規のパートナー」と「ソフトウェアセンターによって追加された正規のパートナー」の間にあります


7

で理解できなかった場合はsource.list、次を実行します。

  1. (画面の一番上にある)設定アイコンを左クリックして、[システム設定]を選択します。
  2. ソフトウェアソースをクリックして、他のソフトウェアに移動します。
  3. 「Canonical Partners(ソースコード)-Canonicalがパートナー向けにパッケージ化したソフトウェア」ファイルの1つと「Canonical Partners-Canonicalがパートナー向けにパッケージ化したソフトウェア」ファイルの1つもチェックを外し、閉じるをクリックして終了します。
  4. ターミナルを開いてを入力するには、CTRL+ ALT+ Tキーを同時に押しますsudo apt-get update

あなたの提案に従いましたが、それでもこのエラーが発生しています。
hsinxh

犯人を知るために、ここに「ソフトウェアソース」の画像を投稿してください。
-all4naija

「その他のソフトウェア」の画像をここに投稿してください。
all4naija

6

10.10以前

アプリケーション> Ubuntuソフトウェアセンター>編集>ソフトウェアソース>その他のソフトウェア

または

システム>管理> Synaptic Packet Manager>設定>リポジトリ

ソフトウェアソース設定ウィンドウ

重複するエントリを選択して削除します。


5

Ubuntu 9.10-12.04の場合

Y-PPA-Managerと呼ばれるアプリがあり、これを行うことができます。

ターミナルからそのようにインストールできます:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get upgrade
sudo apt-get install y-ppa-manager

その後、アプリケーションを起動して、[詳細設定]メニューに移動します。

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

次に、「重複するPPAをスキャンして削除」を選択して、「OK」をクリックします。

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


それはクールなツールですが、問題を修正しません。私はこの選択をしましたが、その後も同じ警告が出ます。
nazar_art

4

/etc/apt/sources.listファイルに2つの同じ行があるように聞こえます。

ターミナルに移動してを入力しsudo editor /etc/apt/sources.list、そのファイルで同一の行を探し、見つかった場合は削除します。完了したら、保存して終了してから実行sudo apt-get updateすると、問題が解決するはずです。

それでも問題が解決しない場合は、試行錯誤のアプローチを使用する必要があります。まず、sources.listファイルのバックアップを作成してから、実際のファイルで各行をコメントアウトまたは削除し、各行apt-get updateがコメントアウトまたは削除された後に保存および削除します。このファイルを1行ずつコメントアウトして、異なる行をコメントアウトすると、最終的にどの行が余分な行であるかがわかります。apt-get update同じプロンプトがまだ表示されている場合は、コメントした行のコメントを外すことを忘れないでください。そうしないと、sources.listファイルにソースが残りません。


4

私はそのようなツールを探しましたが、見つかりませんでした...
それで、私は自分で1つをコーディングすることになりましたPHP

汚い未整理のソースコードでごめんなさい。

chkdup-スクリーンショット:

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

著者

ムバラク・アラシディ(DeaDSouL)

要件:

  1. PHP。
  2. sudo。

インストール:

  1. ターミナルを開きます。
  2. PHPがない場合にインストールするには、次を入力しますsudo apt-get install php5 php5-cli
  3. chkdupをダウンロードします
  4. 任意の場所にファイルを抽出します。
  5. タイプ:sudo sh install.sh

アンインストール:

  1. ターミナルを開きます。
  2. ツールを抽出したパスに移動します。
  3. タイプ:sudo sh uninstall.sh

それを使用する方法:

ターミナルを開いてを入力しsudo chkdupます。

よくある質問:

install.shは何をしますか?

  • インストーラが移動するchkdup.phpために/opt/、その後にシンボリックリンクを作成します/usr/bin/

uninstall.shはどうですか?

  • アンインストーラーは、次のファイルを削除します。

    1. install.sh
    2. /opt/chkdup.php
    3. /usr/bin/chkdup
    4. 自体 uninstall.sh

chkdupを使用しても安全ですか?

  • はい、そうです。何をしようとする前に、現在のsources.listのバックアップを取るからです。しかし、何かが起こった場合、私は責任を負いません。完全な責任はあなた次第です。

ライセンス

GNU General Public License


ちょうどそれを試してみました、素敵でシンプル:-)素敵な:
bmbaker

3

確認しましたls /etc/apt/sources.list.d/か?たぶんあなたはそこにいくつかの「余分な」リポジトリを持っていますか?


2

ubuntu-tweakをインストールして、そこから重複したエントリを削除します。

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

代替テキスト


これはそれを行う方法を言っていません。
RolandiXor

1

いいえ、/etc/apt/sources.listファイル内の重複したエントリを検索して削除する単一のコマンドラインはありません。

これは、はるかに単純な組み込みuniqコマンドの機能を単に複製する推奨コマンドラインがSORTEDファイルでのみ機能し、ADJACENTラインのみを削除するためです。さらに、これらのコマンドは、同一の文字列で

によって報告さapt-get updateれる重複エントリは、そのエントリとバリアントの両方に含まれるリポジトリなど、重複する関数エントリで構成されます。これらを削除する簡単で効果的な方法は、apt-get updateによって重複として報告されるリポジトリを記録し、Software Centerから削除することです。開いて、[ 編集] -> [ ソフトウェアソース] -> [ その他のソフトウェア]タブを選択します。重複するエントリを探して、チェックを外してください。(これは、すべてを削除する機会でもありますi386amd64source-code、パッケージをコンパイルしていない場合にリポジトリます)。

ただし、をapt-get update介して重複エントリを見つけるだけsources.listでなく、にあるリポジトリファイルも含むことに注意してください/var/lib/apt/lists/apt-get updateファイルが自動的に再インストールされるため、Ubuntuが必要と判断した場合、そこから重複したエントリを削除しても、エラーメッセージは一時的に削除されます。apt-get updateいくつかのリポジトリを重複として報告apt-get updateし、それらを実行して修復することを提案するという事実は、そのエラーメッセージについて本当に心配する必要がないという手がかりです。


1

私の場合、重複はprerequists-sources.listファイル内にありました。ターミナルで次のコマンドを実行して、アップグレードを続行できました。

sudo mv /etc/apt/sources.list.d/prerequists-sources.list /tmp
sudo apt-get update

次にUpdate Manager、更新プログラムをインストールします。


/ tmpに移動する必要はありません。終わらない名前に変更する.listだけで十分です
ダニエルアルダー

1

まあ、私は自分自身を/etc/apt/sources.d(ルートとして)別の名前に変更し、実行sudo apt-get updateしてディレクトリとその内容を再確立することで、重複エントリの問題を解決しました。


1

/etc/apt/sources.list手動で行ってsudo nano /etc/apt/sources.list、重複を削除しました。後apt-get update、問題は解決しました。


1

では/etc/apt/sources.list、あなたがコメントしなければなりません(追加#重複リポジトリエントリーラインの開始時に)、変更を保存します。その後、繰り返しsudo apt-get updateます。


1

Ubuntu Sources List Generatorを使用します。

  • 走る sudo -H nautilusターミナルで
  • 見つける /etc/apt/sources.list
  • テキストエディターでファイルを右クリックして開きます(クリックすると、ソフトウェアソースGUIが開きます)。
  • にコピーして貼り付けてください sources.list保存します。
  • ターミナルを終了すると完了です。

Googleには問題があるようですので、それを省くことをお勧めします。Ubuntu 12.10(Ubuntuデスクトップが追加され、別のデスクトップサインイン用のUnityが追加されたStudioバージョン)でこれを行いました。


1

ファイルを編集/etc/apt/sources.list(たとえば、使用sudo -H gedit /etc/apt/sources.list)して、重複する行を削除するか#、行の先頭にa を置きます。


1

ターミナルを使用して他のユーザーから提供された可能性を完成させようとします。

テキストベースのインストールを使用している場合はログインするか、Alt+を押しますF2 GUIを使用している場合はを gnome-terminalと入力します

次に入力

sudo nano /etc/apt/sources.list

(理解を深めるために:/etcコンピューターの(ほぼ)すべての構成ファイルを見つけることができるディレクトリと、APTがソフトウェアを更新またはインストールおよびアップグレードするために使用するすべてのリポジトリーを含むファイルをapt見つけるディレクトリでsouces.list

ファイルを編集して#、行の先頭で重複する行を削除またはコメント化します。

Ctrl+ Xを押して終了し、を押しyてファイルを保存します(または保存nせずに終了します)。

次に、更新して修正したかどうかを確認します。

sudo apt-get update

楽しんで!


また、私はvimのように進化したテキストエディタが自動的に重複を見つけることができると思いますが、私は情報の任意の種類は、興味深いものになるだろうことを行う方法がわからない
Pitto

0
S="/etc/apt/sources.list" ;
S2="$S ${S}.d/*.list" ;
grep -b "^deb\`cat $S2 |
    grep -i "^deb[[:space:]]http" |
    sort |
    uniq -dc |
    sed -e 's;[[:space:]]\\+[[:digit:]]\\+[[:space:]]\\+deb\\(.\\+$\\);\\1;g'\`$" $S2

*読みやすくするために改行が挿入されています。


2
回答またはそれを削除するリスクについて説明してください。
jokerdino

Ask Ubuntuへようこそ!jokerdinoで示されているように、説明を追加するために編集する場合(または、少なくともこれらの行をどうするかをユーザーに正確に伝える場合)、この回答は大幅に役立ちます。
エリアケイガン

この回答は、重複したエントリを削除しても、重複したソースエントリは削除しないため、間違っています。説明についてはこちらご覧ください
アンワール

0

以下を実行して重複を削除します

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list  

詳細については、

0

の場合 W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages)

開いた: sources.list.d

rm google.list

google-chrome.list残っているだけ


0

uniq重複する行を省略し、一意のエントリのみを出力する適切なジョブです。したがって、出力を取得uniqし、古いファイルをuniqの出力に置き換えることができます。

 sort /etc/apt/sources.list | uniq > /tmp/sources && sudo mv /tmp/sources  /etc/apt/sources.list

1
uniqソートされた入力が必要です。
ムル

sort -u同じ仕事をする=)
AB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.