Ubuntu 17.10 रिपॉजिटरी में एकेक खोजने में असमर्थ


14

मैं के ackमाध्यम से स्थापित करने की कोशिश कर रहा हूँ, aptलेकिन ऐसा लगता है कि यह अब रिपॉज में उपलब्ध नहीं है। दोनों:

sudo apt install ack
sudo apt install ack-grep

निम्नलिखित त्रुटि दें:

E: Package 'ack-grep' has no installation candidate

क्या यह अब 17.10 रिपॉजिटरी में उपलब्ध नहीं है?


सबसे पहले, प्रयास करें sudo apt update
अरूपगश

1
@muru धन्यवाद लेकिन अपने लिंक से पता चलता है यह नहीं के बाद से उपलब्ध artfulसूचीबद्ध नहीं है, सही है? packages.ubuntu.com/search?suite=artful&keywords=ack

3
हाँ, हम्म, launchpad.net/ubuntu/+source/ack/2.14-5/+publishinghistory इंगित करता है यह तोड़ा जा रहा है की वजह से हटा दिया गया था
muru

3
नमस्ते, यहाँ ack के निर्माता। मैं स्थिति से अवगत हूं, लेकिन मुझे नहीं पता कि अगर मैं व्यक्तिगत रूप से इसके बारे में कुछ भी कर सकता हूं तो क्या होगा। यहाँ अधिक जानकारी के साथ ack बग ट्रैकर में एक टिकट है: github.com/beyondgrep/ack2/issues/652
एंडी लेस्टर

जवाबों:


12

उक ने उबंटू 17.10 आर्टफुल में एक परीक्षण विफलता है और इसे उबंटू से बाहर रखा गया है जब तक कि यह गुजरता नहीं है। पर्ल को आर्टफुल पर अपग्रेड किया गया है और पुराने पर्ल संस्करण को नए पर्ल द्वारा समर्थित नहीं किया गया है। नया संस्करण इसके सभी परीक्षणों को पारित नहीं करता है। परीक्षण की विफलता उबंटू के तहत चलने वाले परीक्षण ढांचे के साथ समस्याओं के कारण होती है (तब भी जब यह डेबियन में ठीक काम करता है।) एक नया संस्करण जो गुजरता है वह जल्द ही जारी किया जाएगा

इस बीच, एक वैकल्पिक हल CPAN के माध्यम से इसे स्थापित करने के लिए है जैसा कि ack होमपेज पर सुझाया गया है । यदि आपके पास पहले से CPAN स्थापित नहीं है, तो आपको इसे पहले इंस्टॉल करना होगा:

sudo apt install cpanminus

तब आप इसका उपयोग ack को स्थापित करने के लिए कर सकते हैं:

sudo cpanm install App::Ack

यह इसका निर्माण और परीक्षण करेगा, इसलिए इसमें लगभग 2 मिनट लगते हैं, लेकिन ऐसा होने के बाद यह आपके रास्ते में होगा /usr/local/bin/ack

मुझे यह इंस्टॉलेशन विकल्प पसंद है क्योंकि यह मानक एपेट और सेपन रिपॉजिटरी का उपयोग करता है। यह पर्ल लाइब्रेरी का उपयोग करता है जो स्वचालित टूल द्वारा अपग्रेड हो जाएगा। इसे आंसिबल जैसे स्वचालित उपकरणों में आसानी से लागू किया जा सकता है।


2
संभवत: यदि आप वास्तव में cpanminus स्थापित कर रहे हैं तो आप इसका उपयोग करना चाहते हैं sudo cpanm App::Ack:।
जोएल बर्जर

3
दरअसल, जैसा कि वर्तमान में यह खड़ा है यह पर्ल या एकक के साथ कोई समस्या नहीं है (परीक्षण लगभग समान डेबियन प्रणाली में समान संस्करणों के साथ पास होते हैं)। वर्तमान में इसे उबंटू बिल्ड सिस्टम में एक बग माना जाता है।
mniess

6

अफसोस ackकी बात यह है कि 17.10 रिपॉजिटरी में नहीं है। वर्कअराउंड इसे अपनी वेबसाइट पर दिए गए निर्देशों के अनुसार मैन्युअल रूप से इंस्टॉल करना है ।

यहाँ मैंने क्या किया है:

$ sudo su
# curl https://beyondgrep.com/ack-2.18-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack

2
हालाँकि यह बेतरतीब वेबसाइटों से सॉफ़्टवेयर इंस्टॉल करने के लिए एक तरह की खोज योग्य लगती है, फिर भी परे thegrep.com आधिकारिक वेबसाइट है।
स्टीफन ओस्टरमिलर

1
Ack का एकल फ़ाइल संस्करण आवश्यक पुस्तकालयों की अपनी प्रतियों का उपयोग करता है जो कि स्वचालित रूप से अद्यतन नहीं होंगे यदि उनमें कोई सुरक्षा दोष पाया जाता है। यह लाइब्रेरी संस्करणों का उपयोग कर रहा है जैसे कि ऐक का निर्माण किया गया था, जो आपके द्वारा इंस्टॉल किए गए समय पर भी अद्यतित संस्करणों में सबसे अधिक नहीं हो सकता है। यदि आप इस समाधान का उपयोग करते हैं, तो आपको पता होना चाहिए कि एकल-फ़ाइल इंस्टॉल के साथ अतिरिक्त सुरक्षा चिंताएं हैं।
स्टीफन ओस्टरमिलर

उपयोग करने के बजाय एक लाइनर sudo su: ack="/usr/local/bin/ack" && curl -s https://beyondgrep.com/ack-2.18-single-file | sudo tee "$ack" > /dev/null && sudo chmod 0755 "$ack"
स्टीफन ओस्टरमिलर

कृपया नहीं। बल्कि एक और Ubuntu रिलीज (या यहां तक ​​कि डेबियन) से ack .deb पैकेज का उपयोग करें। इसलिए आप कम से कम सभी उपयोग किए गए पुस्तकालयों के लिए सुरक्षा अद्यतन प्राप्त करें।
एक्सल बेकर्ट

यह एकमात्र तरीका था जिसने मेरे लिए काम किया।
थियोडोर आर। स्मिथ

4

वे पैकेज जो उबंटू के स्वचालित रूप से स्थापित पैकेज परीक्षण में विफल होते हैं, एक रिलीज में शामिल नहीं होते हैं, कम से कम ब्रह्मांड संग्रह (जो नियमित रूप से आयात किया जाता है और डेबियन अनस्टेबल से स्वचालित है) से नहीं।

उबंटू 17.10 के दौरान एक परिवर्तन के कारण आर्टिफिशल रिलीज़ साइकिल ने उबंटू में एके के ऑटोपेक्टेस्ट को तोड़ दिया और इसलिए उक को उबुनू रिलीज में शामिल होने से रोक दिया। आप इसे वर्तमान विकास स्नैपशॉट में भी नहीं पा सकते हैं bionic, लेकिन यदि आप bionic-proposedअपने लिए एक पंक्ति जोड़ते हैं तो आप इसे स्थापित कर सकते हैं sources.list

यह अभी भी स्पष्ट नहीं है, कि वास्तव में यह परिवर्तन क्या था, क्रमशः क्या कारण है (शायद उबंटू के ऑटोपेक्टेस्ट बुनियादी ढांचे में एक बग) और ट्रिगर क्या है। (शायद पर्ल 5.26 पर स्विच करने से उबंटू के ऑटोपेक्टस्ट इंफ्रास्ट्रक्चर में एक समस्या प्रदर्शित हुई।)

हालांकि यह स्पष्ट है कि यह मुद्दा ubuntu-specific है क्योंकि डेबियन में ack का ऑटोपेक्टेस्ट बिना किसी मुद्दे के गुजरता है। और Ubuntu 18.04 बायोनिक के एक विकास स्नैपशॉट पर स्थानीय रूप से ऑटोपेक्टेस्ट चलाना इन परीक्षण विफलताओं को प्रदर्शित नहीं करता है । (और यह उबंटू पर बनाने के लिए लगता है। और बहुत ही परीक्षण सूट बिल्ड-टाइम पर भी चलाया जाता है, और यदि यह पारित नहीं हुआ, तो पैकेज का निर्माण नहीं होगा जो कि अधिक गंभीर मुद्दा माना जाता है।)

एक और संकेत है कि मुद्दा उबंटू के ऑटोपेक्टेस्ट इन्फस्ट्रक्चर में कहीं छिपा हुआ है, यह तथ्य है कि अधिकांश परीक्षण विफलताओं ने अपेक्षित फ़ाइलों के बजाय अपने इनपुट को अचानक STDIN के रूप में माना है

इन अजीब ubuntu-autopkgtest- विशिष्ट परीक्षण विफलताओं के अंतर्निहित कारणों पर कोई संकेत या तो लॉन्चपैड बग रिपोर्ट के अनुसार या अपस्ट्रीम बग रिपोर्ट के अनुसार बहुत सराहना की जाती है


2

जैसा कि @muru ने टिप्पणी में इंगित किया है कि पैकेज के ऊपर हटा दिया गया है क्योंकि इसे 17.10 में तोड़ा गया है, हां, ackअब के लिए 17.10 रिपॉजिटरी में नहीं ।

लगता है कि मुझे यह जानने के लिए https://packages.ubuntu.com/search?suite=artful&keywords=ack पर नजर रखनी चाहिए कि यह कब उपलब्ध होगा।


1
यह शायद नहीं होगा। यह एक पैकेज के लिए अत्यंत दुर्लभ है जो पहले से ही बैकपोस्ट के माध्यम से उपलब्ध कराने के लिए रिपोज में नहीं है। आप लॉन्चपैड.net/ubuntu/bionic/+source/ack पर नज़र रख सकते हैं कि क्या यह 18.04 के लिए कटौती करता है (क्योंकि यह एक lts है, शायद अधिक प्रयास इसे काम करने में डाला जा सकता है)
muru

जहाँ तक मैं बता सकता हूँ, "टूटा हुआ" जो इस समस्या का कारण था, एक वर्तनी त्रुटि थी जो कि डेबियन पैकेजिंग को उलझा देती है।
एंडी लेस्टर

1
@AndyLester: नहीं, वर्तनी की त्रुटि का इससे कोई लेना-देना नहीं था। यह भी डेबियन पर्ल टीम द्वारा एक लिंटियन ओवरराइड के माध्यम से झूठी सकारात्मक के रूप में चिह्नित किया गया था।
एक्सल बेकर्ट

"टूटा हुआ" (Cc @muru) का अर्थ इस मामले में है कि यह स्वचालित रूप से इंस्टॉल किए गए पैकेज परीक्षण के रूप में विफल रहा है (संक्षिप्त: ऑटोपेक्टेस्ट)। संबंधित पृष्ठ पर नजर रखने के लिए autopkgtest.ubuntu.com/packages/ack है और यह उप पृष्ठ है। और यह स्पष्ट रूप से एक उबंटू-विशिष्ट मुद्दा है क्योंकि ऐक डेबियन के ऑटोपेक्टेस्ट से गुजरता है ।
Axel Beckert

@AxelBeckert मुझे पता है। हमने टिकट पृष्ठ पर इस पर चर्चा की है। मैंने छह सप्ताह पहले उस वर्तनी की टिप्पणी लिखी थी।
एंडी लेस्टर

1

मैं अपने Ubuntu 17.10 बॉक्स पर Ubuntu 18.04 पैकेज स्थापित करने में सक्षम था:

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.10
DISTRIB_CODENAME=artful
DISTRIB_DESCRIPTION="Ubuntu 17.10"
$ sudo apt install libfile-next-perl
...snip...
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/ack_2.18-2_all.deb
...snip...
$ sudo dpkg -i ack_2.18-2_all.deb
...snip...
$ ack --version
ack 2.18
Running under Perl 5.26.0 at /usr/bin/perl

Copyright 2005-2017 Andy Lester.

This program is free software.  You may modify or distribute it
under the terms of the Artistic License v2.0.

अगर द dpkg कमांड आपके लिए विफल हो जाती है, तो यह संभवत: इसलिए है क्योंकि आपको कुछ निर्भरता याद आ रही है जो मेरे पास पहले से है। apt installकिसी भी लापता निर्भरता का प्रयास करें और फिर से dpkgलाइन चलाएं ।

मुझे CPAN का उपयोग करने से बेहतर यह दृष्टिकोण पसंद है, क्योंकि APT / dpkg अभी भी देख सकता है कि यह पैकेज स्थापित है और बाद में उबंटू अपनी बिल्ड स्थिति को सुलझा लेने के बाद इसे अपग्रेड कर पाएगा।

(लॉन्चपैड बग रिपोर्ट के लिंक को पोस्ट करने के लिए धन्यवाद एक्सल बेकर्ट, जहां मुझे यह विचार मिला है।)

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