अंतिम संपादन (2017-09-13) :
यह समाधान अब Chrome रिलीज़ 60 और उसके बाद के लिए काम नहीं करता है । नवीनतम पैकेज libc6 17 2.17 पर निर्भर करते हैं जो Ubuntu 12.04 पर स्थापित नहीं किए जा सकते हैं। यदि आप अभी भी Precise का उपयोग कर रहे हैं, तो आपको या तो उन्नयन पर विचार करना चाहिए (जैसे मैंने किया), या यदि आप अभी भी ऐसा नहीं कर सकते हैं, तो किसी अन्य ब्राउज़र पर स्विच करें (हालांकि इस बिंदु पर आपको कोई भी ऐसा नहीं मिलेगा जिसकी अभी भी देखरेख की जा रही है)।
संपादित करें (2016-12-06) : लगता है कि क्रोम भी अब libfontconfig1 के अपडेटेड संस्करण पर निर्भर करता है (। 2.9.0)। मैंने उसी हिसाब से स्क्रिप्ट को अपडेट किया है। नया संस्करण अब तक ठीक काम कर रहा है, लेकिन कृपया ध्यान दें कि प्रत्येक निर्धारित निर्भरता के साथ आप एप्लिकेशन को कम स्थिर होने की उम्मीद कर सकते हैं।
संपादित करें (2017-06-10) : Chrome 59 नई निर्भरता (libfontconfig1 11 2.11, libpango, और libpangocairo) के साथ आता है। मैंने इन्हें हटाने के लिए स्क्रिप्ट को अपडेट कर दिया है। Chrome की स्थिरता के समान ही चेतावनी फिर से लागू होती है।
Ubuntu 12.04 64bit पर निर्भरता मुद्दों के लिए समाधान
Ubuntu संस्करण 12.04 के लिए आधिकारिक क्रोम समर्थन समाप्त हो गया है, लेकिन इसका मतलब यह नहीं है कि आपको अभी क्रोम को छोड़ना होगा। Ubuntu 12.04 64-बिट पर नवीनतम क्रोम रिलीज़ (2016-06-28 तक) को कैसे स्थापित किया जाए, इस पर एक त्वरित ट्यूटोरियल है।
चेतावनी : यह बहुत ही हैकिश समाधान है जो किसी भी समय काम करना बंद कर सकता है। कृपया सुनिश्चित करें कि आप जानते हैं कि आगे बढ़ने से पहले आप क्या कर रहे हैं।
पूर्व आवश्यक वस्तुएँ
अद्यतन कर्नेल
महत्वपूर्ण: कृपया ध्यान दें कि अपने कर्नेल को अपडेट करना अपने स्वयं के मुसीबतों और हार्डवेयर संगतता मुद्दों के सेट के साथ आ सकता है। सुनिश्चित करें कि आप जानते हैं कि इस चरण के साथ आगे बढ़ने से पहले एक पुराने कर्नेल पर कैसे स्विच करें।
हाल के क्रोम रिलीज़ सैंडबॉक्सिंग से संबंधित कई कर्नेल सुविधाओं पर निर्भर करते हैं जो उबंटू 12.04 के डिफ़ॉल्ट कर्नेल (3.2.0) में उपलब्ध नहीं हैं। यदि आपने अधिक हाल की छवि (बिंदु रिलीज़ 12.04.2 और ऊपर) का उपयोग करके उबंटू 12.04 स्थापित किया है, तो संभावना है कि आप पहले से ही एक अद्यतन कर्नेल खेल रहे हैं; लेकिन अगर आप अभी भी मूल कर्नेल रिलीज़ पर हैं, तो आप LTS हार्डवेयर सक्षमता स्टैक पैकेज के माध्यम से Ubuntu 14.04 के कर्नेल स्टैक को अपडेट कर सकते हैं :
sudo apt-get install --install-recommends linux-generic-lts-trusty
कर्नेल अपग्रेड करने के बाद अपने सिस्टम को रिबूट करना सुनिश्चित करें। अगर सब कुछ ठीक हो गया तो आपका सिस्टम अब लिनक्स कर्नेल 3.13.X का उपयोग करना चाहिए।
निर्भरता के मुद्दे
यदि आप हाल ही के क्रोम बिल्ड को स्थापित करने का प्रयास करते समय प्राप्त होने वाले त्रुटि संदेश को देखते हैं, तो आपको दो अलग-अलग निर्भरता मुद्दे दिखाई देंगे:
libstdc++6 (>= 4.8.0)
: यह जीएनयू मानक C ++ पुस्तकालय है। Chrome 50.X रिलीज़ करता है और इस लाइब्रेरी के संस्करण 4.8.0 पर निर्भर करता है, लेकिन Ubuntu 12.04 केवल डिफ़ॉल्ट रूप से 4.6.3 के साथ आता है।
lsb-base (>= 4.1)
: यह लिनक्स स्टैंडर्ड बेस पैकेज है। यह लिनक्स फाउंडेशन द्वारा निर्धारित मानकों के एक सेट के साथ वितरण के अनुपालन को इंगित करता है। Chrome ने 50.X + को रिलीज़ किया है, जिसे एलएसबी बेस 4.1 में परिभाषित मानकों के अनुपालन की आवश्यकता है, लेकिन उबंटू 12.04 केवल 4.0 के अनुरूप है।
चूंकि यह पता चलता है कि ये दोनों मुद्दे आसानी से तय किए जा सकते हैं:
libstdc ++ 6 (> = 4.8.0)
महत्वपूर्ण: libstdc ++ 6 एक महत्वपूर्ण सिस्टम लाइब्रेरी है, जिस पर कई अलग-अलग पैकेज निर्भर करते हैं। इस पैकेज को नए रिलीज़ पर अपग्रेड करना खतरनाक हो सकता है और सिस्टम स्थिरता के मुद्दों को जन्म दे सकता है। मैंने उन दो प्रणालियों पर स्वयं किसी भी समस्या का अनुभव नहीं किया है जिन्हें मैंने इस अपग्रेड पर किया है, लेकिन हमेशा की तरह - आपका माइलेज भिन्न हो सकता है।
सौभाग्य से, हमारे लिए, libstdc++6
4.8.X आधिकारिक उबंटू टूलचिन परीक्षण में उपलब्ध है जो पीपीए बनाता है । पहले चरण के रूप में हम इस PPA को अपने सॉफ़्टवेयर स्रोतों में जोड़ेंगे:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
इस बिंदु से Google Chrome को स्थापित करने libstdc++6
से PPA से निर्भरता खींच ली जाएगी , पहला निर्भरता समस्या को समाप्त कर देगा। इस हल के साथ, दूसरे मुद्दे पर आगे बढ़ते हैं।
lsb- बेस (> = 4.1)
यह पता चला है कि क्रोम चलने के हाल के संस्करणों को प्राप्त करने के लिए हमें वास्तव में इस पैकेज के एक अद्यतन संस्करण को स्थापित करने की आवश्यकता नहीं है। अभी के लिए क्रोम वास्तव में एलएसबी बेस 4.1 में किसी भी संशोधित मानकों पर निर्भर नहीं है, इसलिए निर्भरता lsb-base (>= 4.1)
एक नरम निर्भरता प्रतीत होती है जिसे हम आसानी से हटा सकते हैं।
आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन मैंने एक स्क्रिप्ट लिखी है जो आपके लिए निम्नलिखित चरणों का सबसे अधिक ध्यान रखती है।
स्थापना स्क्रिप्ट
#!/bin/bash
# Name: Chrome installer for Ubuntu 12.04 LTS 64-bit
# Author: (c) 2016-2017 Glutanimate
# License: GNU GPLv3
# Manual: http://askubuntu.com/a/792442/
# Description:
#
# Downloads latest chrome release and makes it compatible with 12.04.
#
# This is a hack that will likely stop working at some point,
# but for those of us who can't upgrade Ubuntu just yet
# it's better than running a completely obsolete Chrome release.
set -e
tmpDir=$(mktemp -d /tmp/deb.XXXXXXXXXX)
debUrl="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
debFile="$tmpDir/chrome.deb"
cleanup () {
[[ -n "$tmpDir" ]] && [[ -d "$tmpDir" ]] && rm -r "$tmpDir"
}
trap "cleanup" EXIT
echo "Downloading latest Chrome release..."
mkdir -p "$tmpDir/build"
buildDir="$tmpDir/build"
wget "$debUrl" -O "$tmpDir/chrome.deb" || exit 1
echo "Extracting original deb file..."
dpkg-deb -x "$debFile" "$buildDir"
dpkg-deb --control "$debFile" "$buildDir/DEBIAN"
echo "Updating dependencies..."
perl -pe 's|lsb-base \(\>\= 4\.1\)|lsb-base \(\>\= 4\.0\)|g' "$buildDir/DEBIAN/control" > "$buildDir/DEBIAN/control.1"
perl -pe 's|libfontconfig1 \(\>\= 2\.11\)|libfontconfig1 \(\>\= 2\.8\.0\)|g' "$buildDir/DEBIAN/control.1" > "$buildDir/DEBIAN/control"
perl -pe 's|libpango-1\.0-0 \(\>\= 1\.14\.0\), libpangocairo-1\.0-0 \(\>\= 1\.14\.0\), ||g' "$buildDir/DEBIAN/control" > "$buildDir/DEBIAN/control.1"
mv "$buildDir/DEBIAN/control.1" "$buildDir/DEBIAN/control"
echo "Building new deb file..."
dpkg -b "$buildDir" "$tmpDir/chrome_modified.deb"
echo "Installing new Chrome version. Please enter your password:"
sudo dpkg -i "$tmpDir/chrome_modified.deb"
उपरोक्त स्क्रिप्ट को कॉपी करें, इसे सहेजें install_chrome.sh
और इसे निष्पादन योग्य के रूप में चिह्नित करें (या तो chmod +x install_chrome.sh
या आपके फ़ाइल प्रबंधक के गुण संवाद के माध्यम से )।
ऐसा करने से आप स्क्रिप्ट का उपयोग कर सकते हैं:
./install_chrome.sh
स्क्रिप्ट नवीनतम स्थिर क्रोम रिलीज को डाउनलोड करने के लिए आगे बढ़ेगी, इसे संशोधित करके lsb-base 4.1 पर निर्भरता को हटा देगी और आपको अपडेट की गई .deb
फ़ाइल को इंस्टॉल करने के लिए संकेत देगी dpkg
।
बधाई हो, अब आप Ubuntu 12.04 पर Google Chrome की एक अद्यतन रिलीज़ का उपयोग कर रहे हैं!
अपडेट
Chrome को अपडेट करने के लिए बस स्क्रिप्ट फिर से चलाएं।
भविष्य की अनुकूलता
महत्वपूर्ण: क्योंकि यह समाधान किसी भी समय काम करना बंद कर सकता है, इसलिए मैं आपको सलाह दूंगा कि नवीनतम कार्यशील संशोधित .deb
फ़ाइल को बैकअप के रूप में सहेजने के मामले में क्रोम अचानक अपडेट के कारण शुरू होने से इनकार कर दे।
स्क्रिप्ट को sudo
चलाने के तुरंत बाद स्क्रिप्ट के अस्थायी निर्देशिका में जाने के लिए नवीनतम संशोधित इंस्टॉलर को सहेजने के लिए, स्क्रिप्ट चलाने के दौरान पासवर्ड प्रॉम्प्ट करें (यानी संशोधित प्रविष्टि स्थापित करने से ठीक पहले .deb
)। अस्थायी निर्देशिका को कहीं /tmp/deb.XXXXXXXXX
(जहां XXXXXXXXX
एक यादृच्छिक स्ट्रिंग है) के तहत स्थित होना चाहिए ।