چگونه می توانم بسته ای را که یک پرونده ارائه می دهد پیدا کنم؟


به جواب پذیرفته شده بروید




سؤال كافی ساده: آیا دستور پوسته (یا روش GUI) وجود دارد كه می توانم از آن استفاده كنم ، با توجه به مسیری كه به یك فایل در سیستم من وارد می شود ، به من می گوید كه چه بسته ای آن را در آنجا قرار داده است؟ به فرض این که پرونده در واقع از یک بسته حاصل شده است ، یعنی.

سوال جایزه: اگر این فایلی باشد که روی سیستم من نصب نشده باشد ، چه خواهد بود؟ آیا وب سایت وجود دارد که به من اجازه می دهد پرونده ای را جستجو کنم و ببینم در صورت وجود چه بسته هایی آن را تهیه می کنند؟


492









8 :تعداد پاسخها


می توانید از dpkg دستور استفاده کنید تا دریابید که بسته نصب شده دارای یک پرونده است:

از man dpkg :

-S ، - جستجوی الگوی نام-جستجو-الگوی ...
                  نام بسته های نصب شده را جستجو کنید.

مثال:

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

می توانید با یک مسیر کامل یا فقط با نام پرونده جستجو کنید.

اگر می خواهید فایلهایی که هنوز روی رایانه خود نصب نشده اید را جستجو کنید ، می توانید از جستجوی بسته های اوبونتو استفاده کنیدhttp://packages.ubuntu.com


451



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
 

اما یک راه بسیار دوستانه تر استفاده از وب سایت جستجوی بسته های اوبونتو است . آنها گزینه ای برای "جستجوی محتوای بسته ها" برای یک نام خاص دارند.


247



همچنین یک فایل مناسب برای جستجوی پرونده ها در بسته هایی که نصب نشده اند وجود دارد. مثلا:

 apt-file list packagename
 

44



می توانید محتویات بسته های موجود در نسخه های مختلف اوبونتو را در وب سایت بسته های اوبونتو جستجو کنید. تحت عنوان " جستجوی محتوای بسته ها " را جستجو کنید.

به عنوان مثال ، در اینجا نتایج جستجو برای libnss3.so در روشن (10.04):

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


17



منظور شما این است که کدام بسته و کدام برنامه نیست. این برنامه مدیر بسته شماست ، به عنوان مثال 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 .


توضیحات تصویر را اینجا وارد کنید

مثال


توضیحات تصویر را اینجا وارد کنید


13



این افزونه ای برای پاسخ عالی Alexx Roche است . من سعی کردم به آن پاسخ ویرایش کنم ، اما آن را رد کرد (اگرچه توسط الکسکس)


من سعی می کردم آنچه را که 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 [email protected]) 2>/dev/null)"
[ -z "$BINARY" ] && BINARY="[email protected]"
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 به طوری که این آن چیزی است که منجر شده است:

 [email protected]:~ $ apt-whatprovides ping
Searching for /bin/ping
inetutils-ping: /bin/ping
iputils-ping: /bin/ping

[email protected]:~ $ 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


4



من سعی می کردم آنچه را که which روی سیستم من نصب شده است ، ردیابی کنم. بعد از یک کار کوچک ، من مناسب و مناسب را ایجاد کردم

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

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

اگرچه برای اکثر موارد فقط می توانید از آنها استفاده کنید

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

3



یکی از دلایلی که ممکن است مجبور شوید این کار را انجام دهید اینست که اگر در حال گردآوری نرم افزاری هستید که قبلاً یک بسته اوبونتو وجود دارد ، می توانید آن را اجرا کنید apt-get build-dep $PACKAGENAME . که تمام بسته های مورد نیاز برای کامپایل را نصب می کند $PACKAGENAME .


2



انتشارات مرتبط


فایل صحیح php.ini را پیدا کنید

پرونده های بسیار باز - نحوه یافتن مقصر

چگونه می توان تعداد بسته های نیاز به بروزرسانی را از خط فرمان پیدا کرد؟

چگونه بیت یک فایل mp3 را از طریق خط فرمان پیدا کنیم؟

چگونه بسته ای را نصب کنیم که شامل علائم اشکال زدایی هسته اوبونتو باشد؟

چگونه نصب CD / DVD را به عنوان منبعی برای بسته های مناسب دریافت کنید هنگام نصب ویژگی های جدید؟

چگونه پیوند فرآیند حذف پرونده را پیدا کنیم؟

چگونه می توان تفاوت بین یک اسکریپت و یک فایل باینری را پیدا کرد؟

چه کسی تمام بسته هایی را که بخشی از اوبونتو هستند تشکیل می دهد؟

چگونه خطوط را از پرونده ای که حاوی نقطه نیست حذف کنیم؟

[package-management] سوال برچسب


چگونه می توان PPA ها را حذف کرد؟

وحدت بارگیری نمی شود ، هیچ پرتاب ، هیچ Dash ظاهر نمی شود

چکمه رایانه من به صفحه سیاه است ، چه گزینه هایی برای رفع آن دارم؟

'sudo su -' vs 'sudo -i' vs 'sudo / bin / bash' - چه زمانی اهمیت دارد که مورد استفاده قرار می گیرد یا اصلاً اهمیت دارد؟

چگونه بسته های وابسته (وابستگی معکوس) را لیست کنیم؟

تنظیم مجدد گذرواژه در Ubuntu / Linux Bash در ویندوز

چگونه می توانم کاربر را به گروه "sudo" اضافه کنم؟

چگونه mod_rewrite را در آپاچی فعال کنیم؟

نصب PHP 5.6 در Xenial (16.04) [کپی]