انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => سایر توزیع‌های گنو/لینوکس => نویسنده: BiG در 04 دی 1400، 11:42 ق‌ظ

عنوان: حذف برنامه در apt
ارسال شده توسط: BiG در 04 دی 1400، 11:42 ق‌ظ
توی آرچ وقتی یک پکیج نصب می کنم با دستور pacman -Rnsc به طول کامل پاک میشه ولی توی دبیان بیس ها وقتی میزنم apt purge کامل پاک نمیشه مثلا یک بار کی دی ای پلاسما روی اوبونتو نصب کردم بعد از پاک کردن دیدم چند تا بسته مونده هنوز و پاک نشده راه حلی برای این موضوع وجود داره؟
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: Dragon- در 04 دی 1400، 11:49 ق‌ظ
apt autoremove معمولا پاکشون می‌کنه.
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: BiG در 04 دی 1400، 02:48 ب‌ظ
اتفاقا من این دستور هم می زنم. یک بار kde plasma نصب کردم وقتی پاکش کردم برنامه ای مونده بود به نام ktelentservice هر کاری کردم نتونستم پاکش کنم.
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: Dragon- در 04 دی 1400، 03:20 ب‌ظ
احتمالا به خاطر وابستگی بسته‌ها نمی‌تونستید پاکش کنید. اسم بسته‌ای که اون برنامه رو داشته می‌دونستید؟ احتمالا باید با خط فرمان پاکش می‌کردید.
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: BiG در 04 دی 1400، 04:09 ب‌ظ
نمی دونم ولی من بسته kde-plasma-desktop رو نصب کردم برای حذف هم همین بسته رو دوباره زدم پاک شه ولی کامل پاک نکرد در صورتی که من همین کار رو در آرچ کردم هیچ اثری از برنامه مورد نظر نبود.
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: دانیال بهزادی در 04 دی 1400، 05:04 ب‌ظ
ممکنه بسته‌ای جزو توصیه‌های بسته‌ای دیگه باشه که در این صورت خودکار پاک نمی‌شه. باید دستی پاکش کنید.
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: BiG در 04 دی 1400، 05:11 ب‌ظ
نمیشه کاری کرد که پاک بشن؟ متاسفانه این مشکل برای من خیلی مهمه چون توی طولانی مدت ممکنه سیستم من پر بشه از نرم افزار های بی استفاده.
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: دانیال بهزادی در 05 دی 1400، 11:32 ق‌ظ
قطعاً apt بهتر از انسان می‌تونه سامانه رو مدیریت کنه.
عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: esmaeelE در 05 دی 1400، 07:24 ب‌ظ
اگر بسته‌ای را حذف کنید در صورتی که وابستگی‌های آزاد داشته باشه یعنی فهرست وابستگی‌های اون با سایر برنامه‌ها مشترک نباشه خود apt پیشنهاد می‌کنه که حذفشون کنید.

با فرمان
apt autoremove
https://wiki.ubuntu.ir/wiki/APT

عنوان: پاسخ : حذف برنامه در apt
ارسال شده توسط: Dragon- در 06 دی 1400، 08:16 ب‌ظ
نمی دونم ولی من بسته kde-plasma-desktop رو نصب کردم برای حذف هم همین بسته رو دوباره زدم پاک شه ولی کامل پاک نکرد در صورتی که من همین کار رو در آرچ کردم هیچ اثری از برنامه مورد نظر نبود.
احتمالا اون چیزی که پاک نمیشده، یه وابستگی پیشنهاد شده برای یه بسته یا بسته‌های دیگه بوده، در اینصورت قابلیتِ autoremove، اون بسته رو پاک نمی‌کرده.
با دستور زیر می‌تونید ببینید چه بسته‌هایی نصبه
apt list --installedبعد اسم بسته مورد نظر رو پیدا و پاک کنید.
معمولا بسته‌های مرتبط با kde، داخل اسمشون qt یا k دارند.

یه راه برای اینکه اسم بسته رو بفهمید این هست که اول ببینید با کلیک رو آیکون اون برنامه، چه چیزی اجرا میشه. معمولا، چیزی که اجرا میشه، یه دستور هست که فایل اجرایی اون، داخل /bin/ قرار داره. بعد با apt-file، دنبال بسته‌هایی بگرید که اون فایل رو دارند و در نهایت، ببینید از بین اون بسته‌ها، کدوم نصب شده و برید پاکش کنید.
apt-file به طور پیش‌فرض نصب نیست و باید بسته apt-file رو نصب کنید تا بتونید ازش استفاده کنید‌.
بعد از نصب apt-file، یه بار باید لیست مخازن رو بروزرسانی کنید تا پایگاه داده apt-file ایجاد بشه. با توجه به اینکه چه مخازنی تعریف کردید و چقدر بسته توی اون مخازن هست، ممکنه تا 100Mib یا بیشتر، اطلاعات دانلود بشه ولی فقط بار اول اینجوری هست. دفعه‌های بعدی، فقط چیز‌هایی که عوض شدند، دریافت میشه.

اول apt-file رو نصب کنید.
sudo apt install apt-fileبعد از نصب، میگه که لیست مخازن رو بروزرسانی کنید.

لیست مخازن رو بروزرسانی کنید.
sudo apt updateمی‌تونید از دستورات دیگه هم برای اینکار استفاده کنید. مثل apt-get یا aptitude، خود apt-file هم این قابلیت رو داره.
این مرحله با توجه به پهنای باند اینترنت شما و مخازنی که دارید و تعداد بسته‌هایی که توی مخازن هست، ممکنه طول بکشه.

الان فرض کنید که برنامه System Settings که مربوط به kde هست، توی منوی برنامه‌ها وجود داره و می‌خواهید پاکش کنید اما اسم بسته رو نمی‌دونید.
اول باید ببینید که با زدن روی آیکن برنامه، چی اجرا میشه.

برای اینکه ببینید با کلیک روی یه برنامه چه چیزی اجرا میشه، توی میزکار‌های مختلف، فرق داره. توی kde، اگه روی برنامه کلیک چپ کنید، edit application رو انتخاب کنید و اونجا برید توی زبانه application، توی قسمت command، چیزی که اجرا میشه، نوشته شده. برای گنوم، فکر کنم باید یه menu editor نصب کنید، مطمئن نیستم. در مورد بقیه میزکار‌ها چیزی نمی‌دونم.
به طور کلی، برنامه‌هایی که آیکون دارند  یا می‌تونید توی منوی برنامه‌ها ببینید، یه فایل توی مسیر زیر دارند.
/usr/share/applications
با یکم جست‌و‌جو مشخص میشه که با کلیک روی این برنامه، دستورِ systemsettings5 اجرا میشه.

با استفاده از which ببینید که چه فایلی اجرا میشه.
which systemsettings5
خروجی باید این باشه.
/usr/bin/systemsettings5چون توی نسخه جدید اکثر توزیع‌ها، /bin/ یه لینک به /usr/bin/ هست و معمولا /usr/bin/ زودتر از /bin/، توی متغیر PATH تعریف شده، خروجی which برای همه دستورات معمولی،  فایل رو داخل/usr/bin/ رو نشون میده. این قضیه برای دستوراتی که داخل /sbin/ هستند هم ثابته.
مسیر‌های زیر هم مثل /bin/ و /sbin/ شدند، یعنی در واقع یه لینک به دایرکتوری هم نام خودشون توی /usr/ هستند.
/lib /lib64 /lib32 /libx32
بهتره که /usr/ رو از مسیر دستورات بردارید چون ممکنه فایل‌های یه بسته، توی /bin/ قرار بگیریند، اما به خاطر چیزی که بالا گفتم، which محل دستورات رو داخل /usr/bin/ نشون بده و بعد با apt-file که جست‌و‌جو می‌کنید، به نتیجه نرسید.
برای مثال بسته dash، فایل اجرایی خودش رو توی /bin/ قرار میده ولی وقتی که which dash رو اجرا می‌کنید، گفته مبشه فایل زیر اجرا میشه.
/usr/bin/dashاگه با apt-file دنبال فایل بالا بگرید، نتایجی متفاوت، از اون که انتظار دارید، دریافت می‌کنید.

/usr/ رو در صورتی بردارید که مسیر، یکی از اینها باشه.
/usr/lib /usr/lib64 /usr/lib32 /usr/libx32 /usr/bin /usr/sbinاگه هر چی غیر از بالایی‌ها بود، /usr/ رو برندارید.
مثلا توی نمونه‌های زیر، نباید /usr/ رو بردارید.
/usr/share /usr/include /usr/src
حالا با apt-file دنبال بسته‌هایی بگردید که اون فایل رو دارند. /usr/ رو از مسیر بردارید، بالا گفتم چرا.

apt-file search /bin/systemsettings5خروجی دستور میگه که بسته systemsettings، این برنامه رو داره.
الان می‌تونید بسته systemsettings رو پاک کنید تا System Settings هم پاک بشه.

حالا مثلا می‌خواهیم در مورد فایرفاکس esr اینکار رو انجام بدیم و فرض می‌کنیم اسم بسته رو نمی‌دونیم.
چیزی که با زدن روی آیکون فایرفاکس اجرا میشه، این هست.
/usr/lib/firefox-esr/firefox-esr
با apt-file دنبال بسته‌هایی بگردید که اون فایل رو دارند. بهتره /usr/ اولش رو بردارید. در مورد فایرفاکس و مثال قبلی، حتی اگه /usr/ رو برندارید، باز هم جست‌و‌جو درست انجام میشه چون هر دو، واقعا فایل‌های خودشون رو توی دایرکتوری‌های داخل /usr/ قرار میدن، اما ممکنه برای یه برنامه دیگه، اینطور نباشه.
apt-file search /lib/firefox-esr/firefox-esrتوی خروجی مشخص میشه که بسته firefox-esr، این برنامه رو داره.

البته فایرفاکس چندین فایل داره.
/usr/bin/firefox
/usr/bin/firefox-esr
/usr/lib/firefox/firefox
اولی معمولا یه اسکریپت هست که یا دستور firefox-esr (فایل دومی) رو اجرا می‌کنه یا اینکه مستقیم، فایل اجرایی فایرفاکس رو از داخل /usr/lib/ اجرا می‌کنه.
دومی معمولا یه لینک هست به فایل اجرایی فایرفاکس، داخل /usr/lib/
آخری هم خود فایل اجرایی هست که کامپایل شده.
اگه از firefox-esr استفاده کنید، اسم فایل آخری و دایرکتوری داخل /usr/lib/، برابر firefox-esr هست.

اگه با apt-file دنبال هر کدوم از فایل‌های بالا بگرید، باید بسته firefox یا firefox-esr (بسته به اینکه کدوم نصب شده) رو پیدا کنید.
apt-file فقط برای اینکار نیست، می‌تونید باهاش، فایل‌های یه بسته رو ببینید، حتی اگه اون بسته نصب نشده باشه.

با apt-file می‌تونید دنبال بسته‌هایی بگردید که یه فایل خاص رو دارند، این برای مواقعی که می‌خواهید یه چیزی رو کامپایل کنید اما کتابخانه موردنیاز رو ندارید و نمی‌دونید چه بسته‌ای اون کتابخانه رو داره، خیلی کمک کننده هست. یا اینکه ببینید یه دستور، توی چه بسته‌ای قرار داره.

با dpkg -S هم می‌تونید دنبال بسته‌هایی بگردید که شامل یه فایل خاص هستند اما این راه فقط برای بسنه‌هایی که نصب شدن، کار میده. نحوه جست‌و‌جو اون dpkg با apt-file متفاوته. به طوری که اگه دستور زیر، بگه فایل مربوط به بسته tor هست،
apt-file search /bin/torدستور زیر میگه که بسته‌ای که این فایل رو داشته باشه پیدا نشد.
dpkg -S /bin/torدلیل این هست که بسته tor، فایل اجرایی خودش رو توی /usr/bin/ قرار میده. برای اینکه دستور بالا جواب داشته باشه، باید مسیر درست فایل رو بدید. یعنی اینجوری
dpkg -S /usr/bin/torبه همین دلیل، اگه بخوام از dpkg برای اینکار استفاده کنم و مسیری که فایل داخلش هست، یکی از مسیر‌های زیر باشه، یه بار جست‌و‌جو رو همراه /usr/ و یه بار بدون اون انجام میدم.
/usr/bin /usr/sbin /usr/lib /usr/lib64 /usr/lib32 /usr/libx32
اگه tor نصب نباشه، کلا dpkg فایل‌های اون رو پیدا نمی‌کنه. چون فقط بسته‌های نصب شده رو جست‌و‌جو می‌کنه.
برای من apt-file خیلی سریع‌تر از dpkg هست.

توی آرچ و توزیع‌ها مبتنی بر اون هم چنین قابلیت‌هایی هست. pacman -Q شبی قابلیت‌های جست‌و‌جو dpkg عمل می‌کنه (نه فقط مثل dpkg -S، کلا برای اطلاعات گرفتن از بسته‌های نصب شده استفاده میشه.) pacman -F هم شبیه apt-file عمل می‌کنه.
برای اطلاعات بیشتر، صفحه man مربوط رو ببینید یا توی یه موضوع دیگه بپرسید.