روش صحیح حذف کامل برنامه چیست؟


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




من برای چنین اطلاعاتی شبکه را جستجو کردم و مانند این موارد خط فرمان مختلفی را پیدا کردم:

 sudo apt-get remove application
sudo apt-get remove application*

sudo apt-get remove --purge application
sudo apt-get remove --purge application*

sudo apt-get purge application
sudo apt-get purge application*
 

بنابراین ، روش صحیح چیست؟ آیا استفاده از آن "*" ضروری است؟

پس از آن ، من این دستورات را نیز یافتم:

 sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
 

565









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


  • apt-get remove packagename

    دودویی ها را حذف می کند ، اما پیکربندی یا پرونده های داده بسته را حذف نمی کند packagename . همچنین وابستگی های نصب شده با آن در زمان نصب را دست نخورده باقی می گذارد.

  • apt-get purge packagename یا apt-get remove --purge packagename

    همه چیز در مورد بسته را حذف می کند packagename ، اما وابستگی های نصب شده با آن را در نصب ندارد. هر دو دستور معادل هستند.

    به ویژه هنگامی که می خواهید "از همه شروع کنید" با یک برنامه کاربردی مفید است زیرا پیکربندی را اشتباه گرفته اید. با این حال ، پیکربندی یا پرونده های داده ساکن در دایرکتوری های خانه کاربران ، معمولاً در پوشه های مخفی در آنجا ، حذف نمی شود. هیچ راهی آسان برای از بین بردن افراد نیز وجود ندارد.

  • apt-get autoremove

    بسته های یتیم شده ، یعنی بسته های نصب شده را که قبلاً به عنوان یک وابستگی نصب می شدند ، حذف می کند ، اما دیگر وجود ندارد. بعد از جدا کردن بسته ای که وابستگی های نصب شده به شما دیگر علاقه مند نیست ، از این کار استفاده کنید.

  • aptitude remove packagename یا aptitude purge packagename (به همین ترتیب)

    همچنین سعی خواهد کرد سایر بسته های مورد نیاز packagename را حذف کند ، اما به هیچ بسته باقی مانده لازم نیست. توجه داشته باشید که aptitude فقط اطلاعات وابستگی را برای بسته هایی که نصب کرده است ، به خاطر می آورد.

و بسیاری دیگر وجود دارد. از dpkg معلمان سطح پایین استفاده می شود (پیشرفته) یا ابزارهای رابط کاربری گرافیکی مانند Muon ، Synaptic ، مرکز نرم افزار ، و غیره. هیچ راه صحیحی برای حذف برنامه ها یا انجام سایر کارها با مدیریت بسته شما وجود ندارد.

لیستی که پیدا کردید فقط نمونه است. مطمئن شوید که معانی را درک کرده اید و قبل از پذیرش عمل ، آنچه را که می خواهد انجام دهد را امتحان کنید (باید Y قبل از انجام عمل مطابق آنچه که انجام شد ، فشار دهید .

نسخه ستاره در سوال احتمالاً اشتباه است ؛ apt-get یک عبارت منظم را می پذیرد و نه یک الگوی گلوب به عنوان پوسته. پس چه اتفاقی می افتد

 sudo apt-get remove application*
 

موارد زیر است:

  1. پوسته سعی می کند با application* نگاه کردن به پرونده های موجود در فهرست موجود ، گسترش یابد . اگر (به طور معمول) هیچ چیزی پیدا نکرد ، الگوی جهان را بدون تغییر ( bash با فرض رفتار پیش فرض در اینجا --- zsh خطایی خواهد کرد) برمی گرداند .

  2. apt-get بسته هایی را که نام آنها شامل رشته ای است که عبارت منظم را برآورده می کند application* ، حذف می کند ، یعنی به applicatio دنبال آن تعداد دلخواهی از n : applicatio ، application ، applicationn ، libapplicatio و غیره وجود دارد.

  3. برای دیدن اینکه چگونه این می تواند خطرناک باشد ، امتحان کنید (بدون ریشه برای امنیت مضاعف) apt-get -s remove "wine*" ( -s به جای انجام این کار ، کار را شبیه سازی می کنید) --- گفته خواهد شد که تمام بسته هایی را که "برنده" به نام خود و افراد وابسته حذف کرده اند ، تقریبا کل سیستم ...

احتمالاً ، دستوری که منظور آن واقعاً بوده است

  sudo apt-get remove "^application.*"
 

(به نقل قول ها و نقطه توجه داشته باشید) که تمام بسته هایی را که نام آنها شروع می شود حذف می کند application .

این دستورات ،

 sudo updatedb                  # <-- updates the locate database (index). harmless
sudo locate application        # <-- locates the file 'application'. harmless
sudo rm -rf (file/folder name) # <-- removes files/dirs recursively. dangerous.
 

کاملاً خارج از محدوده مدیریت بسته بندی هستند. پرونده های متعلق به بسته ها را بدون استفاده از مدیر بسته حذف نکنید! سردرگم خواهد شد و روش اشتباهی برای انجام کارهاست.

اگر نمی دانید پرونده به کدام بسته تعلق دارد ، این را امتحان کنید:

 dpkg -S /path/to/file
 

728



برای اوبونتو 12.04 و شاید بالاتر ، روش صحیح:

 sudo apt-get --purge autoremove packagename
 

همانطور که در اینجا شرح داده شده است

از آن استفاده نکنید packagename* که می تواند بسته های ناخواسته را حذف کرده و مشکلات بیشتری را نسبت به حل آن ایجاد کند. و یا اگر شما باید حداقل آن را اجرا کنید با یک -s ، --simulate ، --dry-run پرچم برای اولین بار به دیدن دقیقا همان چیزی آن را بدون انجام آن انجام دهد.


115



می توانید از این دستور استفاده کنید:

 sudo apt-get purge --auto-remove packagename
 

این بسته های مورد نیاز را به همراه وابستگی هایی که با آن بسته ها نصب می شوند ، پاک می کند. --auto-remove گزینه (که نام مستعار autoremove ) کار شبیه به sudo apt-get autoremove . با استفاده از این دستور می توانیم یک فرمان واحد را اجرا کنیم:

 sudo apt-get purge --auto-remove packagename
 

بجای:

 sudo apt-get purge packagename
sudo apt-get autoremove
 

20



شما می توانید با خیال راحت sudo apt-get remove --purge application و یا sudo apt-get remove applications 99٪ از زمان استفاده کنید. هنگامی که از purge پرچم استفاده می کنید ، به سادگی تمام پرونده های پیکربندی را نیز حذف می کند. بسته به اینکه بخواهید مجدداً برنامه گفتنی را نصب کنید ، بسته به اینکه آیا می خواهید باشد ، ممکن است باشد یا نباشد. این application* برنامه با همه برنامه های شروع شده مطابقت دارد application که معمولاً افزونه ها ، ویژگی های اضافی و غیره برنامه اصلی حذف شده هستند. یعنی

 sudo apt-get remove gedit*
 

که حذف gedit ، gedit-plugins و gedit-common . به طور معمول انجام این کار ضروری نیست ، زیرا بیشتر افزونه ها / برنامه های مرتبط به برنامه اصلی بستگی دارند و هنگام حذف برنامه اصلی ، به طور خودکار حذف می شوند (یا برای حذف مشخص می شوند).

آخرین دستور شما فقط حذف موارد باقی مانده از برنامه هایی است که مشخص می شود دارای حذف کننده های کثیف هستند ، و این فقط حذف بقایای برنامه است.


7



من چند پیام خطا برای حذف یک بسته دریافت کردم ، تنها راهی که من پیدا کردم که کار کرده است این است:

 mv /var/lib/dpkg/info/package.* /tmp/
dpkg --remove --force-remove-reinstreq package
 

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

 dpkg --remove --force-remove-reinstreq package
 

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

 mv /var/lib/dpkg/info/package.* /tmp/
 

بسته جایگزین را با نام برنامه خود جایگزین کنید. در اوبونتو از sudo استفاده کنید و در دبیان ریشه دار شوید.


5



این دستور را در اینترنت پیدا کردم.

 dpkg --purge --force-depends application
 

http://www.debian-administration.org/article/Rinstalling_packages_to_fix_problems .


3



بستگی به برنامه ای که می خواهید حذف کنید ، بستگی دارد. همیشه حتماً قبل از صدور فرمان بله ، وابستگی های آن را بررسی کنید. وقتی چیزی را از طریق خط فرمان حذف کنید ، بعضی اوقات تعداد معدودی کتابخانه را نشان می دهد که دیگر نیازی به آن نیست. اینها را می توان با استفاده از خودکار محور حذف کرد.

توجه داشته باشید که با استفاده از دستوراتی مانند sudo apt-get remove --purge ممکن است برخی از وابستگی های مورد نیاز سایر برنامه ها را از بین ببرد و به همین ترتیب ممکن است سیستم شما را خراب کند.

اگر می خواهید به روش ایمن تر این کار را انجام دهید ، همیشه می توانید آن را فقط با استفاده از مرکز نرم افزار یا حذف نام برنامه کاربردی apt-get حذف کنید. اگر دیگر به وابستگی ها نیازی ندارید ، بعداً به طور خودکار موقت خود را صادر کنید.


1



من فقط می خواستم یک چیز را روشن کنم که به نظر می رسد در اینجا سردرگمی است. این dpkg ابزار در مورد وابستگی بسته ها در رابطه با یکدیگر نمی داند ، و این دلیل بزرگی apt بود که به اعتقاد من ایجاد شده است. می توانید در مورد 8.6 در این صفحه درباره Debian GNU / Linux FAQ - ابزارهای مدیریت بسته Debian مطالعه کنید

  • با apt: اگر می خواستم پکیج A را تمیز کنم و یک وابستگی به نام بسته B داشته باشد و بسته B هیچ بسته وابسته دیگری نداشته باشد ، پس بسته A و B پاک می شود. اگر بسته B DID بسته های وابسته دیگری داشته باشد ، فقط بسته A پاک می شود.

  • با dpkg: چه وابستگی؟ شما فقط به من گفتید که
    بسته لعنتی را پاک کنید تا این کاری باشد که من کردم! برنامه ریزی ضعیف از طرف شما
    اضطراری نیست.

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

 dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --dry-run --purge

apt-get autoremove -y; apt-get --dry-run purge -y $(dpkg --list |grep '^rc' |awk '{print $2}')
 

حذف --dry-run به انجام عملیات پاکسازی واقعی به جای گزارش چه اقداماتی آن را گرفته اند.


1



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


روش صحیح نصب درایورهای ویدئویی اختصاصی ATI Catalyst (fglrx) به طور مستقیم از AMD چیست؟

روش صحیح ویرایش پرونده crontab چیست؟

روش صحیح برای شروع مجدد udev چیست؟

روش صحیح استفاده از git با repon gnome-keyring و http (s) چیست؟

آیا راهی برای حذف کامل "اخیراً استفاده شده" از گفتگوهای باز و ذخیره شده وجود دارد؟

روش صحیح برای به اشتراک گذاشتن دایرکتوری ها با اوبونتو در حال اجرا در Virtual Box VM با مجوزهای صحیح چیست؟

روش صحیح نصب Maven و Eclipse چیست؟

روش ترجیحی برای ذخیره تنظیمات برنامه چیست؟

راه درست برای به اشتراک گذاشتن یک محیط جوجو چیست؟

روش صحیح بازگشت حالت سخت Mysql 5.7 به نحوه بازگشت آن در 5.6 چیست؟

[command-line] سوال برچسب


چگونه یک بسته را از طریق apt-get کم کنیم؟

چگونه می توان اسکریپت را فقط با دوبار کلیک کردن روی فایل های .EXE در ویندوز اجرا کرد؟

پوشه و زیر پوشه را به مسیر دیگری منتقل کنید

چگونه می توان از تصاویر ثابت (ترجیحا با خط فرمان) یک gif متحرک ایجاد کرد؟

چگونه می توان پوشه را از یک پارتیشن دیگر سوار کرد؟

من نمی توانم .bash_profile را در اوبونتو پیدا کنم

چرا اکثر افراد توصیه می کنند که سرعت تعویض را تا 10-20 کاهش دهید؟

چگونه می توانم وحدت را از منبع ایجاد کنم؟

چگونه کلمه عبور LUKS را تغییر دهیم؟

چگونه می توانم یک خواننده اثر انگشت را در Lenovo ThinkPad نصب کنم؟