لینوکس و من

یک اسکریپت خوب برای راحت تر کردن 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

 

دسته:

ترفند

کلیدواژه:

archlinux

pacman

نظرات  (۱)

مشکل alias ها چی بوده که این اسکریپت رو نوشتید؟!
پاسخ:
اون موقع alias ها رو نمیشناختم. و اینم یجور کنجکاویه دیگه همچنین شما میتونین با تایپ دستور خالی pm خلاصه ای از دستوراتش رو ببینید. فکر نکنم alias چنین باشه.