یک اسکریپت خوب برای راحت تر کردن pacman
همون طور که میدونید pacman مدیر بسته ها در آرچ هست. دستورات زیادی داره که کار کردن با اونها ممکنه در ابتدا سخت باشه. وجود یک اسکریپت که کار رو ساده تر کنه لازم دیدم، اما هر چه گشتم چیزیو که میخواستم پیدا نکردم. بنابراین دست به کار شدم و خودم یک اسکریپت نوشتم. از نتیجه کار راضی ام. شما هم میتونید این اسکریپت رو داشته باشید. به ادامه مطلب برید و اسکریپت رو در یک فایل ذخیره کنید. مجوز اجرایی رو بهش بدید و اون رو در usr/local/bin/ کپی کنید.
روش کار چنین هست که با دستور pm و متعلقاتش میتونید بکیج ها رو مدیریت کنید. مثلا:
pm -i mplayer یا pm install mplayer بسته ی mplayer رو از مخازن نصب میکنه
pm -d mplayer یا pm delete mplayer بسته ی mplayer رو با تمام بسته هایی که به اون dependent هستند پاک میکنه.
هر کسی هم که این اسکریپت رو میبینه و فکر میکنه میتونه بهتر و ساده تر بشه، میتونه تغییرش بده یا پیشنهاد بده.
#! /bin/sh
#
# pm is a simple script to make pacman easier.
# pacman is the package manager of Arch based linux distroes.
# I'm not a developer, and I wrote this script just for my needs.
# 30 Murch 2014
# Amin Abdollahzade: medicamin@gmail.com http://linuxvaman.mihanblog.com
# Feel free to make this script better :)
#
if [ $# -lt 1 ]
then
echo
echo "pm is a simple script to make pacman easier"
echo "Usage: pm option package"
echo
echo -e " \033[1m \x1b[31m Options:\033[0m "
echo " -h, help : Show this help"
echo " -i, install : Install a package from repo"
echo " -ip, install-pkg : Install the given package"
echo " -r, remove : Remove a single package"
echo " -d delete : Delete a package with all dependencies"
echo " -s, search : Search the given name"
echo " -u, update : Updates the system"
echo " -uy, update-yes : Updates the system with YES to all questions"
echo " -um, update-mirror : Updates the mirrors using reflector"
echo " You must install reflector before"
echo " -z, size : Sort all packages by installed size"
echo " -f info : Display information about a package"
echo
echo -e " \033[1m \x1b[31m Examples:\033[0m"
echo " pm -uy :updates all packages without confirmation"
echo " pm install vlc :install vlc"
echo
echo
exit
fi
function show_help {
echo
echo "pm is a simple script to make pacman easier"
echo "Usage: pm option package"
echo
echo -e " \033[1m \x1b[31m Options:\033[0m "
echo " -h, help : Show this help"
echo " -i, install : Install a package from repo"
echo " -ip, install-pkg : Install the given package"
echo " -r, remove : Remove a single package"
echo " -d delete : Delete a package with all dependencies"
echo " -s, search : Search the given name"
echo " -u, update : Updates the system"
echo " -uy, update-yes : Updates the system with YES to all questions"
echo " -um, update-mirror : Updates the mirrors using reflector"
echo " You must install reflector before"
echo " -z, size : Sort all packages by installed size"
echo " -f info : Display information about a package"
echo
echo -e " \033[1m \x1b[31m Examples:\033[0m"
echo " pm -uy :updates all packages without confirmation"
echo " pm install vlc :install vlc"
echo
echo
}
function reflector {
sudo reflector --verbose -l 10 -p http --sort rate --save /etc/pacman.d/mirrorlist
}
case $1 in
-h|--help)
show_help
exit 0
;;
-um|update-mirror)
reflector
exit 0
;;
-s|search)
sudo pacman -Ss $2
exit 0
;;
-i|install)
sudo pacman -S $2
exit 0
;;
-ip|install-pkg)
sudo pacman -U $2
exit 0
;;
-u|update)
sudo pacman -Syu
exit 0
;;
-uy|update-yes)
sudo pacman -Syu --noconfirm
exit 0
;;
-d|delete)
sudo pacman -Rns $2
exit 0
;;
-r|remove)
sudo pacman -R $2
exit 0
;;
-f|info)
sudo pacman -Si $2
exit 0
;;
-z|size)
echo "wait a moment..."
sudo pacman -Qi | egrep "^(Name|Installed Size)" | sed -e 'N;s/\n/ /' | awk '{ print $7, $3}' | sort -n > ~/pkgsize
echo "packages list sorted by size: $HOME/pkgsize"
exit 0
;;
esac
