पीपीए का उपयोग करते समय या अपनी पैकेज सूचियों को अपडेट करते समय मैं 404 त्रुटि कैसे ठीक कर सकता हूं?


266

PPA लगातार ऑफ़लाइन होने लगता है। जब भी मैं उपयोग करता हूं sudo apt-get update, यह त्रुटि दिखाई जाती है:

W: Failed to fetch http://ppa.launchpad.net/ 404  Not Found

मैं इन त्रुटियों को कैसे ठीक करूं?


चूँकि यह उत्तर देने में मुख्य "असफल रहा" में से एक प्रतीत होता है, मैं यहाँ बताना चाहता हूँ कि यह Ubuntu. पार्टनर "URL" के साथ भी हो सकता है। यह देखने के लिए अपनी त्रुटियों की जाँच करें कि क्या वे हैं और उन्हें टिप्पणी करने का प्रयास करें। मैं क्वेटज़ल से उस मुद्दे (और समाधान) के उन्नयन में भाग गया।
joseph_morris

जवाबों:


305

स्वचालित निष्कासन

उबंटू 15.04 से पहले सभी ubuntu संस्करणों के लिए आक्रामक सॉफ़्टवेयर-स्रोतों को हटाने के लिए एक स्क्रिप्टेड तरीके के लिए इस उत्तर के नीचे छोड़ें

404 त्रुटियां क्या हैं

404 या नहीं मिला त्रुटि संदेश एक HTTP मानक प्रतिक्रिया कोड है जो यह दर्शाता है कि क्लाइंट सर्वर के साथ संवाद करने में सक्षम था, लेकिन सर्वर को वह नहीं मिला जो अनुरोध किया गया था।

वेब साइट होस्टिंग सर्वर आमतौर पर "404 - पेज नॉट फाउंड" वेब पेज उत्पन्न करेगा, जब उपयोगकर्ता टूटे हुए या मृत लिंक का पालन करने का प्रयास करते हैं।

अद्यतन-प्रबंधक में इन त्रुटियों के कारण क्या हैं

आमतौर पर, तीन मुख्य क्षेत्र इन त्रुटियों का कारण बनते हैं update-manager

  1. एक उपयोगकर्ता ने अभी-अभी उन्नत किया है और एक पीपीए सॉफ्टवेयर-स्रोत को फिर से सक्षम किया है जो अब मौजूद नहीं है यहां छवि विवरण दर्ज करें
  2. किसी उपयोगकर्ता ने मैन्युअल रूप से एक नए सॉफ़्टवेयर स्रोत में गलत तरीके से टाइप किया है यहां छवि विवरण दर्ज करें
  3. एक पीपीए जोड़ा गया था, लेकिन अनुरक्षक ने बाद में पीपीए के कुछ / सभी को हटा दिया है

ये सॉफ़्टवेयर-स्रोत कहाँ हैं

PPA आमतौर पर दो स्थानों में से एक में सहेजे जाते हैं

  1. /etc/apt/sources.list
  2. /etc/apt/sources.list.d/उदाहरण के लिए .list फ़ाइल-एक्सटेंशन के साथ उचित रूप से नामित फ़ाइल मेंwebupd8team-jupiter-natty.list

इस सूची फ़ाइल में आम तौर पर शामिल हैं:

deb http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main
# deb-src http://ppa.launchpad.net/webupd8team/jupiter/ubuntu oneiric main

ध्यान दें #कि टेक्स्ट की एक पंक्ति के सामने का अर्थ है कि यह टिप्पणी की गई है और पैकेज प्रबंधक द्वारा जाँच नहीं की गई है।

इन त्रुटियों को कैसे समाप्त किया जाए

आमतौर पर, अगर आप sudo apt-get updateटर्मिनल से चलते हैं या रिफ्रेश बटन दबाए जाने के बाद अपडेट मैनेजर में विवरण बटन पर क्लिक करते हैं , तो आपको त्रुटियां दिखाई देंगी जैसे:

यहां छवि विवरण दर्ज करें

यदि त्रुटि PPA के कारण है - आमतौर पर त्रुटि संदेश में दिखाए गए URL के साथ PPA के समान नाम को अनटैक करना इसे हल करेगा।

यहां छवि विवरण दर्ज करें

यदि 404 त्रुटि एक अतिरिक्त रिपॉजिटरी के कारण थी, जिसे /etc/apt/sources.listतब जोड़ा गया है तो #लाइन को शुरू करने के लिए चरित्र को जोड़ना आसान हो सकता है ताकि आपत्तिजनक रिपॉजिटरी को टिप्पणी कर सकें।

gksu gedit /etc/apt/sources.list

यहां छवि विवरण दर्ज करें

और जानकारी

इस समस्या को हल करने के लिए अद्यतन प्रबंधक पर एक बग रिपोर्ट दी गई है:

यदि आपको PPA के बिना ये समस्याएँ हो रही हैं, तो इस प्रश्न को देखें:


बहुत बहुत धन्यवाद।
एंड्रयूज बी एंथोनी

51

404 की स्वचालित निष्कासन स्क्रिप्ट के माध्यम से PPA नहीं मिला

यह स्वचालित रूप से सभी 404 को हटाने के लिए एक स्क्रिप्ट है। पीपीए को नहीं मिला। नीचे दिए गए कोड को कॉपी करें और इसे एक फ़ाइल में पेस्ट करें और इसे नाम दें ppa-remove

#!/bin/bash
sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait" 
sudo apt-get update >> /tmp/update.txt 2>&1; awk '( /W:/ && /launchpad/ && /404/ ) { print substr($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt; sort -u /tmp/awk1.txt > /tmp/awk2.txt
tput sgr0
if [ -s /tmp/awk2.txt ]
then
  tput setaf 1
  printf "PPA's going to be removed\n%s\n" "$(cat /tmp/awk2.txt)"
  tput sgr0
  while read -r line; do echo "sudo add-apt-repository -r ppa:$line"; done < /tmp/awk2.txt > out
  bash out
else
  tput setaf 1
  echo "No PPA's to be removed"
  tput sgr0
fi

स्क्रिप्ट को निष्पादित करने की अनुमति दें

sudo chmod +x ppa-remove

ppa-removeफाइल को /usr/binडायरेक्टरी में कॉपी और पेस्ट करें। ताकि आप इसे कहीं से भी एक्सेस कर सकें।

प्रयोग

sudo ppa-remove

स्क्रिप्ट विवरण

[ -f /tmp/update.txt ] && sudo rm /tmp/update.txt; tput setaf 6; echo "Initializing.. Please Wait" || echo "No update file"

tput setaf 6 कमांड टर्मिनल टेक्स्ट के रंग को हरे रंग में बदल देता है। और फिर यह "इनिशियलिंग ..प्लीज वेट" को हरे रंग में प्रदर्शित करता है।

sudo apt-get update >> /tmp/update.txt 2>&1; awk '( /W:/ && /launchpad/ && /404/ ) { print substr($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt; uniq /tmp/awk1.txt > /tmp/awk2.txt
  1. sudo apt-get update >> /tmp/update.txt 2>&1;

    कमांड के stdout और stderr दोनों sudo apt-get updateको फाइल में लिखा जाता है/tmp/update.txt

  2. awk '( /W:/ && /launchpad/ && /404/ ) { print substr($5,26) }' /tmp/update.txt > /tmp/awk.txt; awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;

Awk लाइन के होते हैं जो की खोज करता है W:, launchpad, 404में /tmp/update.txtfile.If यह पाया गया कि उसके बाद उस लाइन में यह प्रदर्शित करता है (stdout) सभी column5.This मानक आउटपुट पुनः निर्देशित किया गया था में 26 वें स्थान से शुरू पत्र (लिखित) करने के लिए /tmp/awk.txtफ़ाइल।

उदाहरण के लिए:

W: Failed to fetch http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages  404  Not Found

5 वीं कॉलम - http://ppa.launchpad.net/pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

26 वें चरित्र से शुरू होने वाले 5 वें कॉलम में- pitti/postgresql/ubuntu/dists/saucy/main/binary-i386/Packages

यह उपर्युक्त लाइन /tmp/awk.txtफ़ाइल में संग्रहीत की गई थी। अब अगला कमांड,

awk -F '/' '{ print $1"/"$2 }' /tmp/awk.txt > /tmp/awk1.txt;  

awk कॉलम 1 और कॉलम 2 को सीमांकक के साथ ढूंढता है /जहां कॉलम 1 और कॉलम 2 को फाइल /से हटा दिया जाता /tmp/awk.txtहै और फिर फाइल को स्टडआउट रीडायरेक्ट (लिखा) किया जाता /tmp/awk1.txtहै।

अब /tmp/awk1.txtफाइल में pitti/postgresqlलाइन है।

uniq /tmp/awk1.txt > /tmp/awk2.txt

यदि दो समान लाइनें हैं, तो uniqueकमांड डिस्प्ले (stdout) सिंगल लाइन है। सिंगल लाइन को /tmp/awk2.txt आखिरकार /tmp/awk2.txtअद्वितीय PPA नामों से लिखा गया है ।

tput sgr0

यह कमांड टर्मिनल टेक्स्ट के रंग को सफेद में बदलता है।

अंत में ifसशर्त बयान निष्पादित होंगे। if [ -s /tmp/awk2.txt ]/tmp/awk2.txt फ़ाइल की सामग्री के लिए जाँच करें या नहीं। यदि हाँ, तो यह पहली पंक्ति से लेता है /tmp/awk2.txtऔर sudo add-apt-repository -r ppa:$lineकमांड निष्पादित करता है । यह अंतिम पंक्ति तक जारी रहता है।

यदि नहीं, तो इसका मतलब है कि कोई सामग्री नहीं है। यदि यह कहता है कि "कोई पीपीए हटाया नहीं जाना है"।

स्क्रीनशॉट

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


/ usr / bin / ppa-remove: लाइन 32: वाक्यविन्यास त्रुटि: फाइल का अप्रत्याशित अंत
श्रावण 40

21

आपको ये त्रुटियां हो रही हैं क्योंकि आपके पीपीए रिपॉजिटरी उबंटू (यानी? quantal) के वितरण के लिए पैकेज प्रदान नहीं करते हैं ।

निम्नलिखित स्क्रीनशॉट देखें:

पीपीए: petrakis / WDT-मुख्य लॉन्चपैड लोगो

WDT-मुख्य

पीपीए: screenlets / ppa लॉन्चपैड लोगो

screenlets

आप देख सकते हैं कि निर्देशिका quantalगायब है और इसलिए आपको मिल रही है 404 Not Found Error Messages

इन संदेशों से छुटकारा पाने के लिए आपको अपने सिस्टम से इन पीपीए रिपॉजिटरी को हटाना होगा। PPA हटाने के तरीके के बारे में इस प्रश्न का पालन करें:


इसकी जांच कैसे करें और इस निष्कर्ष पर कैसे आएं?

ये wdt-mainPPA के लिए आपको मिलने वाले त्रुटि संदेश हैं :

W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/source/Sources  404  Not Found
, W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/binary-amd64/Packages  404  Not Found
, W:Failed to fetch http://ppa.launchpad.net/petrakis/wdt-main/ubuntu/dists/quantal/main/binary-i386/Packages  404  Not Found

अपना ब्राउज़र टैब खोलें और उस लिंक को खोलें जो 404 Not Found Errors देता है। इस मामले में http://ppa.launchpad.net/petrakis/और लिंक के अनुसार गहराई से जाएं जो त्रुटियां देता है। आप देख पाएंगे कि वास्तविक समस्या क्या है।


17

सबसे अधिक संभावना यह है कि ऐसा हो रहा है कि पीपीए का रखरखाव नहीं किया गया है और इसे हटाने की आवश्यकता है। आप इसका उपयोग कर सकते हैं:

sudo rm /etc/apt/sources.list.d/ppaname-ppa-$(lsb_release -sc).list*

3
यह सिर्फ एक डुप्लिकेट प्रश्न को पोस्ट होने से बचाता है .. मेरे पास मेरा क्यू तैयार था और जैसे ही मैंने अपना शीर्षक टाइप करना शुरू किया, लिंक पाया गया .. वे एक जगह पर सारी सूची क्यों नहीं रखते! वहाँ कुछ सूचीबद्ध हैं /etc/apt/sources.listजहाँ मैंने जाँच की थी, लेकिन मुझे पता नहीं था कि मुझे /etc/apt/sources.list.d/भी देखना है .. धन्यवाद ..
सटीक

यह और फिर उचित नए PPA को जोड़ना मेरे लिए सबसे अच्छा (केवल काम करने वाला) समाधान निकला।
मार्कस-थारुन

4

पुराना रिपॉजिटरी चुनें

यदि आपको वास्तव में उस भंडार से संकुल की आवश्यकता है, तो आप पुराने रिलीज से दर्पण का उपयोग कर सकते हैं।

हालांकि, कृपया ध्यान दें कि सभी पुराने रिलीज पिछड़े संगत नहीं हैं ; उनमें से कुछ आपके मुख्य पैकेज भंडार के साथ टकराव का कारण बनते हैं।

केवल एक चीज आप कर सकते हैं जब यह संघर्ष या तो स्रोत से निर्माण कर रहा है या तब तक इंतजार करता है जब तक कि प्रदाता आपके उबंटू संस्करण के लिए भंडार को जारी नहीं करता है। हमें ठीक से पता नहीं है कि पैकेज प्रदाता कब हमारे संस्करण के लिए अपना पैकेज जारी करेंगे, इसलिए आप अपनी रिहाई के लिए उनके भंडार की जांच करने के लिए प्रभारी हैं।

यह किसी भी डेबियन-आधारित भंडार के साथ उपयोग किया जा सकता है। हालांकि, इस बात की कोई गारंटी नहीं है कि यह सफल होगा।

कदम

  1. sudo apt updateपीपीए / रिपॉजिटरी को जोड़ने के बाद सामान्य रूप से करें । आप देख सकते हैं कि अपडेट करते समय 404 त्रुटियां हैं; बस इस पर ध्यान न दें। 404 त्रुटि
  2. रिपॉजिटरी निर्देशिका खोलें जो आपके ब्राउज़र के साथ 404 त्रुटि का कारण बनती है; इस मामले में यह है https://dl.winehq.org/wine-builds/ubuntu। आमतौर पर, उपलब्ध रिलीज़ में स्थित हैं dists/दर्पण
  3. आपके पास स्थित होने के बाद, सॉफ़्टवेयर और अपडेट खोलें, और उपलब्ध रिलीज़ के साथ अपना रिलीज़ नाम बदलें; अधिमानतः नवीनतम या एलटीएस एक। बाइनरी और सोर्स कोड मिरर्स में 'डिस्ट्रीब्यूशन' सेक्शन को बदलें। इस मामले में, मैं के bionicसाथ बदल रहा हूँ artfulयहां छवि विवरण दर्ज करें
  4. sudo apt updateफिर से करो ।
  5. हो गया! अब आपकी पैकेज सूचियों को अपडेट करते समय आपके पास 404 त्रुटियां नहीं हैं। यहां छवि विवरण दर्ज करें
  6. जब आपके उबंटू संस्करण के लिए पैकेज जारी किया जाता है, तो अपने वितरण नाम के साथ 'वितरण' अनुभाग को प्रतिस्थापित करके चरण 3 और 4 को दोहराएं।

2

ध्यान दें कि यह पहले से ही मेरे साथ हुआ था और मैं इन स्थितियों से बाहर था। और इसने मेरे एक दोस्त के लिए भी काम किया। यहां तक ​​कि यह समझाने में सक्षम नहीं होने के कारण कि, कुछ ऐसा है जो उस समस्या को हल करता है:

  1. अपने सभी PPA को अक्षम करें;
  2. sudo apt-get updateटर्मिनल से चलाएं ;
  3. अपने PPA को फिर से सक्षम करें;
  4. भागो sudo apt-get update;

और अचानक यह काम कर गया। मुझसे कारण मत पूछो।


मेरे लिए कोई फर्क नहीं पड़ा। फिर भी 404 से।
क्वोक्सर

मैंने कुछ अवांछित PPA को निष्क्रिय कर दिया और कोशिश की sudo apt-get updateऔर इसकी पूरी तरह से काम किया।
शाशनथ

1

यदि आपको आधिकारिक रिपॉजिटरी (पीपीए नहीं) से सुरक्षा या सिस्टम फ़ाइलों को प्राप्त करने की कोशिश में 404 त्रुटि हो रही है, तो आप इस समस्या को हल करने के लिए एक अलग दर्पण चुन सकते हैं।

आप या तो यह कर सकते हैं:

ए) इस सूची की समीक्षा करके और सबसे वर्तमान दर्पण का चयन करके एक मैन्युअल रूप से निर्धारित करें । (आप दूरी और बैंडविड्थ जैसे अन्य कारकों को ध्यान में रखना चाह सकते हैं) या

बी) अपने आप एक चुनें।

किसी भी तरह से आप सॉफ्टवेयर और अपडेट एप्लिकेशन के साथ शुरू कर सकते हैं जैसा कि नीचे दिखाया गया है: फिर अन्य के बाद से डाउनलोड का चयन करें। फिर आप सूची से या तो मैन्युअल रूप से अपनी पसंद का दर्पण चुन सकते हैं या सर्वश्रेष्ठ सर्वर बटन का चयन कर सकते हैं, जो कुछ परीक्षण चलाएगा और आपके लिए वर्तमान परिस्थितियों पर निर्भर सबसे अच्छा सर्वर का चयन करेगा।

SNU


1

मैंने हर मुमकिन जवाब देने की कोशिश की है, लेकिन एकमात्र समाधान उबंटू 16.04 Xenial default /etc/apt/sources.list फ़ाइल को कॉपी करना था /etc/apt/sources.list

स्रोत: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

जिससे मेरा लिनक्स बच गया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.