alldeb_user

Ini adalah skrip alldeb_user ciptaan Nifa Dwi Kurniawan.


#!/bin/bash
echo -e "\n~~ alldeb_user ~~"
echo "installer file alldeb"
echo "versi R-2 final"

##################
# --konfigurasi--
##################
#1
force_no_gui=0
# 0 = alldeb_user akan menggunakan GUI jika tersedia zenity/kdialog
# 1 = alldeb_user akan menggunakan mode terminal meskipun tersedia zenity/kdialog
#
#2
apt_archives="/var/cache/apt/archives"
# directory repository lokal Anda
#
##################
# --functions--
##################

function keluar0 {
rm -rf "$ruangkerja"
exit 0
}

function keluar1 {
rm -rf "$ruangkerja"
exit 1
}

function kopi {
echo -e "Menyalin semua file deb ke APT archives ..."
echo -e "Directory APT archives Anda : $apt_archives"
sudo cp -u "$ruangkerja"/*\.deb "$apt_archives"
echo -e "Selesai.\n"
}

function ins {
echo -e "Menjalankan pengecekan & install ..."
if [ `which apt-ftparchive | wc -l` -gt 0 ]; then
scanner="apt-ftparchive"
apt-ftparchive packages . 2>/dev/null | gzip > ./Packages.gz
elif [ `which dpkg-scanpackages | wc -l` -gt 0 ]; then
scanner="dpkg-scanpackages"
dpkg-scanpackages . /dev/null > ./Packages 2>/dev/null
gzip ./Packages
else
echo -e "--\nMaaf, di komputer Anda belum terinstall apt-ftparchive atau dpkg-scanpackages.\nProses install tidak dapat dilanjutkan.\n"
cd "$HOME"
keluar0
fi
echo "deb file:$ruangkerja ./" > source_sementara.list
mkdir part.d
mkdir lists
mkdir lists/partial
sudo apt-get -o dir::etc::sourcelist="$ruangkerja"/source_sementara.list -o dir::etc::sourceparts="$ruangkerja"/part.d -o dir::state::lists="$ruangkerja"/lists update 2> "$ruangkerja"/log1.txt
if [ `cat "$ruangkerja"/log1.txt | wc -l` -gt 0 ]; then
cat "$ruangkerja"/log1.txt
echo -e "\nProses install dibatalkan.\n"
cd "$HOME"
keluar1
fi
sudo apt-get -o dir::etc::sourcelist="$ruangkerja"/source_sementara.list -o dir::etc::sourceparts="$ruangkerja"/part.d -o dir::state::lists="$ruangkerja"/lists install --allow-unauthenticated -y `cat keterangan_alldeb.txt | grep \"*\" | cut -d\" -f2 | sed -n 1p` 2> "$ruangkerja"/log2.txt

if [ `cat "$ruangkerja"/log2.txt | wc -l` -gt 0 ]; then
cat "$ruangkerja"/log2.txt
echo -e "\nFile ini tidak mencukupi dependensi.\nMencoba mencari di APT archives ($apt_archives)"
echo -e "Sedang melakukan scanning. Scanner = $scanner\nMungkin agak memakan waktu. Harap tunggu ..."
mkdir "$ruangkerja"/lokal_archives
cd "$apt_archives"
if [ `which apt-ftparchive | wc -l` -gt 0 ]; then
apt-ftparchive packages . 2>/dev/null | gzip > "$ruangkerja"/lokal_archives/Packages.gz
else
dpkg-scanpackages . /dev/null > "$ruangkerja"/lokal_archives/Packages 2>/dev/null
gzip "$ruangkerja"/lokal_archives/Packages
fi
sudo mv "$ruangkerja"/lokal_archives/Packages.gz "$apt_archives"/Packages.gz
cd "$ruangkerja"
echo "deb file:$apt_archives ./" > source_sementara.list
echo "deb file:$ruangkerja ./" >> source_sementara.list
sudo apt-get -o dir::etc::sourcelist="$ruangkerja"/source_sementara.list -o dir::etc::sourceparts="$ruangkerja"/part.d -o dir::state::lists="$ruangkerja"/lists update 2> "$ruangkerja"/log3.txt
if [ `cat "$ruangkerja"/log3.txt | wc -l` -gt 0 ]; then
cat "$ruangkerja"/log3.txt
echo -e "\nProses install dibatalkan.\n"
cd "$HOME"
keluar1
fi
sudo apt-get -o dir::etc::sourcelist="$ruangkerja"/source_sementara.list -o dir::etc::sourceparts="$ruangkerja"/part.d -o dir::state::lists="$ruangkerja"/lists install --allow-unauthenticated -y `cat keterangan_alldeb.txt | grep \"*\" | cut -d\" -f2 | sed -n 1p` 2> "$ruangkerja"/log4.txt
sudo rm -f "$apt_archives"/Packages.gz
#--selesai
if [ `cat "$ruangkerja"/log4.txt | wc -l` -gt 0 ]; then
echo -e "\nMaaf, File ini tidak memenuhi dependensi komputer Anda.\nInstallasi dibatalkan.\n"
#cat "$ruangkerja"/log4.txt
sudo apt-get --no-download update
ls -1 "$ruangkerja" | grep "\.deb" > filter.txt
sudo apt-get -y --print-uris install `cat keterangan_alldeb.txt | grep \"*\" | cut -d\" -f2 | sed -n 1p` | grep "\.deb" | grep -v --file=filter.txt > file_tak_ada.txt
if [ `cat "$ruangkerja"/file_tak_ada.txt | wc -l` -gt 0 ]; then
echo -e "\nDaftar file yang tidak tersedia :\n--"
cat file_tak_ada.txt
echo -e "--\n"
else
echo -e "\nPesan error dari apt-get :\n"
cat log4.txt
echo -e "\n"
fi
cd "$HOME"
keluar1
else
sudo apt-get --no-download update
fi
else
sudo apt-get --no-download update
fi
echo -e "Selesai.\n"
}
##################
# --utama--
##################

ruangkerja="$HOME/.ruangkerjaalldebuserR2"
rm -rf "$ruangkerja"
if [ `which zenity | wc -l` -gt 0 -a $force_no_gui -eq 0 ]; then
echo -e "\nSilahkan pilih file alldeb yang akan diproses."
dd_file=`zenity --file-selection --title="alldeb_user : Pilih File alldeb..." --filename="$HOME"/ 2> /dev/null`
if [ ! -f "$dd_file" ]; then
echo -e "Dibatalkan.\n"
exit 0
fi
elif [ `which kdialog | wc -l` -gt 0 -a $force_no_gui -eq 0 ]; then
echo -e "\nSilahkan pilih file alldeb yang akan diproses."
dd_file=`kdialog --getopenfilename "$HOME" --title "alldeb_user : Pilih File alldeb..." 2> /dev/null`
if [ ! -f "$dd_file" ]; then
echo -e "Dibatalkan.\n"
exit 0
fi
else
if [ $force_no_gui -eq 0 ]; then
echo -e "\n-- Di komputer Anda belum terinstall zenity atau kdialog, alldeb_user menggunakan mode terminal --"
fi
echo -e "\nSilahkan tentukan file alldeb yang akan diproses."
echo -e "\nFile alldeb yang akan diproses : \c"
read -r dd_file
eval dd_file=$dd_file
if [ ! -f "$dd_file" ]; then
echo -e "File $dd_file tidak ditemukan.\n"
exit 0
fi
fi
echo -e "File yang dipilih : $dd_file"
echo -e "Membaca file yang dipilih."
if [ ! -r "$dd_file" ]; then
echo -e "--\nMaaf, file $dd_file tidak dapat dibaca.\n"
exit 0
fi
if [ ! `tar -tzf "$dd_file" 2> /dev/null | grep -sv "\.deb$"|wc -l` -eq 1 ]; then
echo -e "--\nMaaf, file $dd_file tidak dikenali sebagai file alldeb.\n"
exit 1
elif [ ! `tar -tzf "$dd_file" 2> /dev/null | grep -sv "\.deb$"` == keterangan_alldeb.txt ]; then
echo -e "--\nMaaf, file $dd_file tidak dikenali sebagai file alldeb.\n"
exit 1
fi

echo -e "\nmd5sum : `md5sum "$dd_file" | cut -f1 "-d "`"
echo -e "\n-- Perhatian --\nJangan menginstall file alldeb dari sumber yang tidak Anda percaya.\n"
mkdir "$ruangkerja"
cp "$dd_file" "$ruangkerja"/file_alldeb
cd "$ruangkerja"
tar -xzf file_alldeb
rm file_alldeb
if [ ! -f keterangan_alldeb.txt ]; then
echo -e "--\nMaaf, terjadi kesalahan pada proses ekstraksi.\nProses dibatalkan.\n"
cd - > /dev/null
keluar1
fi
echo -e "\nKeterangan di dalam file $dd_file\n------------------------------"
cat keterangan_alldeb.txt
echo -e "------------------------------\n\nInstall file alldeb ini?"
echo -e " 1=Install\n 2=Copy ke APT archives\n 3=Install & Copy\n 4=Batal\n\nPilih : \c"
read -r konfirmasi
if [ $konfirmasi -eq 1 ]; then
ins
elif [ $konfirmasi -eq 2 ]; then #kopi
kopi
elif [ $konfirmasi -eq 3 ]; then #install&copy
ins
kopi
elif [ $konfirmasi -eq 4 ]; then #batal
echo -e "Installasi dibatalkan.\n"
else
echo -e "Pilihan Anda tidak dikenali. Installasi dibatalkan.\n"
fi
keluar0
##################
# --notes--
##################
##september 2013
#script ini bebas dan gratis dimanfaatkan untuk tujuan yang benar
#jika ada pertanyaan/masukan silahkan kirim email ke
#elektronifa[at]yahoo.co.id (maaf, hanya email)

Iklan

Mohon jangan gunakan emotikon:

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s