প্রশ্ন ফাইলটি সরবরাহকারী প্যাকেজটি কীভাবে খুঁজে পাব?


সহজ যথেষ্ট প্রশ্ন: আমি কি কিছু শেল কমান্ড (বা জিআইআই পদ্ধতি) ব্যবহার করতে পারি, যেটি আমার সিস্টেমে একটি ফাইলের পথ দেওয়া হয়েছে, আমাকে কোন প্যাকেজটি সেখানে রাখে? প্রকৃতপক্ষে ফাইলটি আসছে একটি প্যাকেজ থেকে আসা, যে।

বোনাস প্রশ্ন: যদি এটি আমার সিস্টেমে ইনস্টল করা কোন ফাইল না হয়? সেখানে, বলুন, এমন একটি ওয়েবসাইট যা আমাকে একটি ফাইল দেখাবে এবং কোন প্যাকেজগুলি, যদি থাকে, তা প্রদান করে?


382
2017-07-30 08:10


উত্স


আমি সর্বদা এই সম্পর্কে অবাক হয়েছি - আমি YUM এর সাথে জানি, আপনি yum কি করতে পারেন <filepath> / <filename> কিন্তু প্যাকেজ ওয়েবসাইটের ব্যতীত অন্য কোনও অ্যাপটিউডটিতে আমি তার কোনও বিকল্প খুঁজে পাইনি - Marco Ceppi♦
SU এ একই: superuser.com/questions/10997/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
এখানে কোন উত্তর আসলে আচ্ছাদন Provides: পদ্ধতি. কিছু বিস্তারিতভাবে, একটি কমান্ড মত mailx অথবা sendmail একটি বাইনারি হিসাবে অন্তর্ভুক্ত করা হয় না কোন প্যাকেজ; পরিবর্তে, বিভিন্ন প্যাকেজগুলি তাদের নিজস্ব বাইনারিগুলি ইনস্টল করে এবং তারপরে তাদের মধ্যে কয়েকটি "ক্যানোনিকাল" নামের মাধ্যমে উপলব্ধ করে /etc/alternatives। আরো দেখুন askubuntu.com/questions/366135/... - tripleee


উত্তর:


তুমি ব্যবহার করতে পার dpkg ইনস্টল করা প্যাকেজটি কোনও ফাইলের মালিক খুঁজে বের করতে কমান্ড:

থেকে man dpkg:

-এস, - অনুসন্ধান ফাইলনাম-অনুসন্ধান-প্যাটার্ন ...
                  ইনস্টল করা প্যাকেজ থেকে একটি ফাইলের নাম জন্য অনুসন্ধান করুন।

উদাহরণ:

$ dpkg -S /bin/ls
coreutils: /bin/ls

আপনি একটি সম্পূর্ণ পাথ বা শুধুমাত্র ফাইলের নামের সাথে অনুসন্ধান করতে পারেন।

আপনি যদি আপনার কম্পিউটারে ইনস্টল না হওয়া ফাইলগুলির জন্য অনুসন্ধান করতে চান তবে আপনি এটি ব্যবহার করতে পারেন উবুন্টু প্যাকেজ অনুসন্ধান


360
2017-07-30 08:42



আমি অত্যন্ত dlocate ব্যবহার করে সুপারিশ, দ্রুত সন্ধানের জন্য প্রতিদিন আপডেট করা হয়। - Daniel T Chen
ইঙ্গিত: যদি আপনি পুরো পথটি জানেন না তবে কেবলমাত্র কমান্ডের নামটি ব্যবহার করুন which তিনি প্রোগ্রাম খুঁজে পেতে: dpkg -S `which firefox` - Lekensteyn
এটি লাইব্রেরিগুলির জন্যও কাজ করে, যা বিশেষভাবে কার্যকর, যদি আপনার কোনও বাইনারি থাকে যা চালানো হবে না কারণ আপনি এটি অদৃশ্যের সাথে পরিদর্শন করতে পারেন এবং আপনার অনুপস্থিত প্যাকেজগুলি খুঁজে পেতে সম্পূর্ণ লাইব্রেরি পাথ ব্যবহার করতে পারেন। - Alain O'Dea
@ ড্যানিয়েলটেনহেন, কিন্তু dlocate কাজ নাও করতে পারে, যদি ডলক্যাটের ডাটাবেসটি পুরনো হয়। আপনি কল করতে হবে sudo update-dlocatedb এটি আপডেট করতে। - jarno
যদি dpkg সঠিক পথ কিছু ফেরত দেয় না (উদাঃ। dpkg /usr/bin/java), শুধুমাত্র এক্সিকিউটেবলের নামটি চেষ্টা করুন (উদাঃ। dpkg java)। - Dan Dascalescu


দ্য apt-file কমান্ড লাইন থেকে আপনার জন্য এই কাজ করতে পারেন। উৎস থেকে প্যাকেজ নির্মাণ যখন আমি ঘন ঘন এটি ব্যবহার। প্যাকেজগুলি দ্বারা উপলব্ধ ফাইলগুলির জন্য যা ইতিমধ্যে আপনার সিস্টেমে ইনস্টল করা আছে, apt-cache অন্য পছন্দ।

স্থাপন করা apt-file, কর

sudo apt-get install apt-file

তারপরে, আপনাকে এটির ডেটাবেস আপডেট করতে হবে:

apt-file update

এবং, অবশেষে, ফাইলটি অনুসন্ধান করুন:

$ apt-file find kwallet.h
kdelibs5-dev: /usr/include/kwallet.h
libkf5wallet-dev: /usr/include/KF5/KWallet/kwallet.h

তবে অনেক বন্ধুত্বপূর্ণ উপায় ব্যবহার করা হয় উবুন্টু প্যাকেজ অনুসন্ধান ওয়েবসাইট। তাদের একটি নির্দিষ্ট ফাইলের নামের জন্য "প্যাকেজগুলির সামগ্রী অনুসন্ধানের" বিকল্প রয়েছে।


187
2017-08-11 02:43



আমার মতে এই গ্রহণযোগ্য উত্তর হতে হবে। কিন্তু প্রতিক্রিয়া উবুন্টু প্যাকেজ অনুসন্ধান, আমি যুক্তি দিতে পারি যে একটি শেল প্রোগ্রাম এই সহজটি অত্যন্ত বন্ধুত্বপূর্ণ এবং মনে রাখা সহজ (একবার আপনি এটি জানেন)। আপনি যদি আপনার মান সরঞ্জামগুলির মতো ডিপিকিজি, অ্যাপটি-পাওয়ার, বা দক্ষতা ব্যবহার করেন তবে ইন্টারনেট সার্ফ করার জন্য Chrome কে ফায়ারিংয়ের জন্য বন্ধুত্বপূর্ণ কিছু নেই! - user2097818
@ user2097818 কারণ এটি গ্রহণযোগ্য উত্তর নয় যে আমার প্রাথমিক প্রশ্নটি ইনস্টল করা সিস্টেম এবং প্যাকেজগুলিতে ফাইলগুলিতে সীমাবদ্ধ। apt-file প্রায়ই মিথ্যা ইতিবাচক, যেমন প্যাকেজ ইনস্টল করা হয় না। অবশ্যই এই উত্তর "বোনাস প্রশ্ন" জন্য মহান। - David Z
পৃথিবীর রেহাত পার্শ্বের জন্য যারা - apt-file search <> নিকটতম এনালগ হয় dnf/yum whatprovides <>। - ffledgling


ইনস্টল করা নয় এমন প্যাকেজগুলির মধ্যে ফাইলগুলি সন্ধান করার জন্য apt-file রয়েছে। উদাহরণ স্বরূপ:

apt-file list packagename

35
2017-07-30 08:49



ঠিক কি আমি জন্য অনুসন্ধান করা হয়। ধন্যবাদ - NES


আপনি বিভিন্ন উবুন্টু রিলিজে অন্তর্ভুক্ত প্যাকেজের বিষয়বস্তু অনুসন্ধান করতে পারেন উবুন্টু প্যাকেজ ওয়েবসাইট। শিরোনাম অধীনে দেখুন "প্যাকেজের বিষয়বস্তু অনুসন্ধান করুন"।

উদাহরণস্বরূপ, এখানে libnss3.so এর সুস্পষ্ট অনুসন্ধান ফলাফল রয়েছে (10.04):

http://packages.ubuntu.com/search?searchon=contents&keywords=libnss3.so&mode=exactfilename&suite=lucid&arch=any


16
2017-08-11 02:42





আপনি মানে, কোন প্যাকেজ এবং কোন অ্যাপ্লিকেশন নয়। অ্যাপ্লিকেশন আপনার প্যাকেজ ম্যানেজার, যেমন। Software Center

ব্যবহার dpkg:

dpkg -S /usr/lib/tracker/tracker-store
dpkg -S tracker-extract
dpkg -S tracker-miner-fs

উদাহরণ

% dpkg -S /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store

ব্যবহার apt-file:

apt-file search /usr/lib/tracker/tracker-store

অথবা সম্ভব:

apt-file search --regex /tracker-extract$
apt-file search --regex /tracker-miner-fs$

উদাহরণ

% apt-file search /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store

অথবা অনলাইন এখানে, বিভাগে Search the contents of packages

enter image description here

উদাহরণ

enter image description here


10
2017-11-29 15:57



আপনি মানে, কোন প্যাকেজ এবং কোন অ্যাপ্লিকেশন নয়। অ্যাপ্লিকেশন আপনার প্যাকেজ ম্যানেজার, যেমন। সফ্টওয়্যার সেন্টার। ঠিক আছে. ধন্যবাদ! :) - ReyKev
সব সাহায্যের জন্য আপনাকে ধন্যবাদ! এই পরামর্শগুলির মধ্যে কোনটি আমাকে কোন প্যাকেজটি ইনস্টল করে নি যদিও এই অ্যাপ্লিকেশনগুলিকে ইনস্টল করেছে। সমস্ত অনুসন্ধান শুধু "ট্র্যাকার" ফিরে যান। আমি সন্দেহ করেছিলাম যদিও এটি ছিল ইকব্টস ক্যানোপি। যে মাইল দীর্ঘ ই EULA আমাকে আমার পুরানো মাইক্রোসফ্ট উইন্ডোজ ডেজের কথা মনে করিয়ে দেয়, যার সাথে আমি আর আনন্দিত নই। আমি ট্র্যাকারটি গতকাল ইন্সটল করেছি দেখেছি, রুট হিসাবে, আমি ইফেক্টস ক্যানোপি বরাবর এটি পরিত্রাণ পেয়েছি এবং সব সমস্যার সমাধান করা হয়েছে। আমি সত্যিই আপনার সব সাহায্যের জন্য আপনাকে ধন্যবাদ। এটা যেমন সমর্থন আছে এমন একটি মহান জিনিস। আবার ধন্যবাদ! কেভিন - ReyKev


আমি ইনস্টল কি নিচে ট্র্যাক করার চেষ্টা করা হয় which আমার সিস্টেমে। একটু কাজ করার পর আমি apt-whatprovides তৈরি

#!/bin/sh
#apt-whatprovides ver. 201801010101 Copyright alexx, MIT Licence
#rdfa:deps="[realpath,apt-file,grep,which,sh,echo]"

BINARY=$(realpath $(which $@))
PACKAGE=$(apt-file search $BINARY|grep -E ":\s*${BINARY}$")
echo ${PACKAGE%:*}

যদিও বেশিরভাগ জিনিসই আপনি ব্যবহার করতে পারেন

apt-file search $(realpath $(which THING))|grep 'THING$'

2
2018-03-17 15:25



Alexx, আমি এই উত্তর ভালোবাসি। আমি আশা করি আপনি আমার সম্পাদনাটি মনস্থ করবেন না। আমি এটি সিস্টেমে ইনস্টল করা ফাইল জন্য কাজ করে তোলে। আমি একটি ব্যাকআপ তৈরি gist.github.com/RichardBronosky/... এবং যদি আপনি এটি প্রত্যাহার / প্রত্যাখ্যান যদি আমার নিজের উত্তর তৈরি করতে হবে। - Bruno Bronosky
হালনাগাদ: এটি উত্তরটিকে পাস্তাটি অনুলিপি করতে এবং এটিতে সূক্ষ্ম পরিবর্তনগুলি করতে অসম্মান বোধ করে, তবে আমার সম্পাদনাটি প্রত্যাখ্যাত হয়েছে। আমি আশা করি আপনি আপনার উত্তর সততা বজায় রাখা অনুভব করেন আমার মাঝে। - Bruno Bronosky
সম্পাদনা বা হ্যাক বিনামূল্যে বোধ; এমন কিছু যা আপনার জন্য এটি আরও ভাল করে তোলে (তাই আমি এমআইটি লাইসেন্স যোগ করেছি! আমারও ক্রেডিট দরকার নেই।) - Alexx Roche


এটি একটি এক্সটেনশান Alexx Roche এর চমৎকার উত্তর। আমি যে উত্তর একটি সম্পাদনা করতে চেষ্টা, কিন্তু এটা প্রত্যাখ্যাত হয়েছে (যদিও Alexx দ্বারা নয়)


আমি ইনস্টল কি নিচে ট্র্যাক করার চেষ্টা করা হয় which আমার সিস্টেমে। একটু কাজ করার পর আমি তৈরি /usr/local/bin/apt-whatprovides

#!/bin/sh
#apt-whatprovides ver. 201801010101 Copyright alexx, MIT Licence
#rdfa:deps="[realpath,apt-file,grep,which,sh,echo]"

BINARY="$(realpath $(which $@) 2>/dev/null)"
[ -z "$BINARY" ] && BINARY="$@"
echo Searching for $BINARY
PACKAGE="$(apt-file search $BINARY|grep -E ":.*[^-.a-zA-Z0-9]${BINARY}$")"
echo "${PACKAGE}"

যদিও বেশিরভাগ থিংস ইনস্টল করার জন্য আপনি কেবল ব্যবহার করতে পারেন:

apt-file search $(realpath $(which THING)) | grep 'THING$'

ইনস্টল করা না থিংস জন্য, আপনি ব্যবহার করতে পারেন:

apt-file search THING | grep '/THING$'

দ্য apt-whatprovides স্ক্রিপ্ট আপনার সিস্টেমে থাকা ফাইলগুলির জন্য কাজ করে। উদাহরণস্বরূপ, আমার সিস্টেমের অভাব dig কিন্তু ছিল ping তাই এটি এর ফলে কি ঘটেছে:

pi@raspberrypi:~ $ apt-whatprovides ping
Searching for /bin/ping
inetutils-ping: /bin/ping
iputils-ping: /bin/ping

pi@raspberrypi:~ $ apt-whatprovides dig
Searching for dig
dnsutils: /usr/bin/dig
epic4: /usr/share/epic4/script/dig
epic4-help: /usr/share/epic4/help/8_Scripts/dig
knot-dnsutils: /usr/bin/dig

লক্ষ্য করুন Searching for জন্য একটি সম্পূর্ণ পথ ping (ইনস্টল করা) এবং শুধুমাত্র বাইনারি নাম dig ইনস্টল করা না. এই আমাকে আবিষ্কার করতে সাহায্য করেছিল যে আমি ইনস্টল করার প্রয়োজন dnsutilsঅনুসন্ধান যেতে প্রয়োজন ছাড়া https://packages.ubuntu.com/#search_contents


2
2017-07-18 05:45



এটাই ভালো উত্তর যে আমার খনি মুছে ফেলতে হবে! - Alexx Roche


আপনি যদি এমনটি করতে পারেন তবে এটি একটি কারণ যা আপনি সফ্টওয়্যার কম্পাইল করছেন যা ইতিমধ্যে একটি ubuntu প্যাকেজ রয়েছে, আপনি চালাতে পারেন apt-get build-dep $PACKAGENAME। যে কম্পাইল করার জন্য আপনার প্রয়োজন সমস্ত প্যাকেজ ইনস্টল করা হবে $PACKAGENAME


1
2017-08-11 19:31