mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
Update:
* Pakfire - umfassende Änderungen und Erweiterungen git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@249 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
This commit is contained in:
1
src/pakfire/installed/BASE
Normal file
1
src/pakfire/installed/BASE
Normal file
@@ -0,0 +1 @@
|
||||
VER=0
|
||||
@@ -4,32 +4,20 @@
|
||||
# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben d<>rfen. #
|
||||
############################################################################################
|
||||
|
||||
# Verzeichnis von Pakman
|
||||
VERZ=$(get_conf.sh HOME)
|
||||
check_pak() {
|
||||
|
||||
# Update-Verzeichnis
|
||||
UP_DIR=$(get_conf.sh UP_DIR)
|
||||
|
||||
# Verzeichnis mit nicht Installierten Paketen
|
||||
NIP_DIR=$(get_conf.sh NIP_DIR)
|
||||
|
||||
# Verzeichnis mit Installierten Paketen
|
||||
IP_DIR=$(get_conf.sh IP_DIR)
|
||||
|
||||
# Patchliste
|
||||
PATCH_LIST=$(get_conf.sh DEST_DIR)/$(get_conf.sh LIST_NAME)
|
||||
#if [ ! -f $PAKHOME/cache/$PACKAGES_LIST ]; then
|
||||
# exit 1
|
||||
#fi
|
||||
|
||||
# Zerlegte Listen
|
||||
ZERL_PATCH=$(get_conf.sh DEST_DIR)/zerl_
|
||||
ZERL_PATCH=$TMP_DIR/zerl_
|
||||
|
||||
# Listen Verzeichnis
|
||||
LIST_DIR=$(get_conf.sh DEST_DIR)
|
||||
|
||||
# Zerlegen der Liste erst jede Zeile fuer sich bei maximal 99998 Eintr<74>gen
|
||||
for (( i=1 ; i<99999 ; i++))
|
||||
# Zerlegen der Liste erst jede Zeile fuer sich bei maximal 9998 Eintr<74>gen
|
||||
for (( i=1 ; i<9999 ; i++))
|
||||
do
|
||||
|
||||
patch=$(head -${i} ${PATCH_LIST} | tail -1)
|
||||
patch=$(head -${i} $PAKHOME/cache/${PACKAGE_LIST} | tail -1)
|
||||
echo $patch >${ZERL_PATCH}$i
|
||||
|
||||
if [ "${patch}" = "###EOF###" ]
|
||||
@@ -38,11 +26,11 @@ do
|
||||
break
|
||||
fi
|
||||
|
||||
if [ $i -ge 99999 ]
|
||||
if [ $i -ge 9999 ]
|
||||
then
|
||||
echo "Defektes Patchfile!!!"
|
||||
/bin/rm -f ${ZERL_PATCH}*
|
||||
exit 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
done
|
||||
@@ -51,9 +39,8 @@ done
|
||||
(( i-- ))
|
||||
|
||||
# Jedes Paket nach Name zerlegen
|
||||
for list in $(find $LIST_DIR -type f -name "zerl_*")
|
||||
for list in $(find $TMP_DIR -type f -name "zerl_*")
|
||||
do
|
||||
|
||||
# Zeile lesen Zeile
|
||||
zeile=$(cat $list)
|
||||
|
||||
@@ -62,29 +49,19 @@ do
|
||||
|
||||
# Auf Version reduzieren
|
||||
vers=${zeile#*-}
|
||||
vers=${vers%%_*}
|
||||
vers=${vers%% *}
|
||||
|
||||
ipfver=${zeile#*_*}
|
||||
# Testen ob aktuelle Verson schon installiert ist
|
||||
if [ -e ${IP_DIR}${name}-${vers} ]
|
||||
then continue
|
||||
else
|
||||
# Testen ob eine <20>ltere Version installiert ist
|
||||
if [ -e ${IP_DIR}${name}-* ]
|
||||
then
|
||||
# Erst alte Update Vorschl<68>ge l<>schen
|
||||
/bin/rm -f ${UO_DIR}${name}-*
|
||||
/bin/touch ${UP_DIR}${name}-${vers}
|
||||
else
|
||||
# Erst alte Paket Vorschl<68>ge l<>schen
|
||||
/bin/rm -f ${NIP_DIR}${name}-*
|
||||
/bin/touch ${NIP_DIR}${name}-${vers}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Erst alte Paket Vorschl<68>ge l<>schen
|
||||
/bin/rm -f $DB_DIR/${name}
|
||||
/bin/echo "VER=${vers}" > $DB_DIR/${name}
|
||||
/bin/echo "IPFVER=${ipfver}" >> $DB_DIR/${name}
|
||||
done
|
||||
|
||||
# L<>schen der Hilfslisten
|
||||
/bin/rm -f ${ZERL_PATCH}*
|
||||
|
||||
}
|
||||
|
||||
################################### EOF ####################################################
|
||||
|
||||
26
src/pakfire/lib/get_base.sh
Normal file
26
src/pakfire/lib/get_base.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
############################################################################################
|
||||
# Version 0.1a, Copyright (C) 2006 by IPFire.org #
|
||||
# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben d<>rfen. #
|
||||
############################################################################################
|
||||
|
||||
get_base() {
|
||||
|
||||
. $IP_DIR/BASE
|
||||
|
||||
OLD_VER=$VER
|
||||
|
||||
VER=""
|
||||
. $DB_DIR/BASE
|
||||
|
||||
if [ "$OLD_VER" -lt "$VER" ]; then
|
||||
pakfire_logger "There is one ore more updates for the base system!"
|
||||
for i in `seq $(($OLD_VER+1)) $VER`
|
||||
do
|
||||
$PAKHOME/pakfire install BASE-$i
|
||||
done
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
################################### EOF ####################################################
|
||||
@@ -4,57 +4,40 @@
|
||||
# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben d<>rfen. #
|
||||
############################################################################################
|
||||
|
||||
# Verzeichnis von Pakman
|
||||
VERZ=$(get_conf.sh HOME)
|
||||
|
||||
# Version des IPFire ermitteln
|
||||
VERS=$(get_conf.sh VERS print)
|
||||
|
||||
# Patch URLs ermitteln
|
||||
PURL=$(get_conf.sh PURL print)
|
||||
|
||||
# Logfile festlegen
|
||||
LOG_file=$(get_conf.sh LOG)
|
||||
|
||||
# Listenname
|
||||
LIST_NAME=$(get_conf.sh LIST_NAME)
|
||||
|
||||
# Ziel Verzeichnis
|
||||
DEST_DIR=$(get_conf.sh HOME)/list
|
||||
|
||||
# Host Tester
|
||||
HOST_TEST=$(get_conf.sh HOST_TEST)
|
||||
get_list () {
|
||||
|
||||
# Alle URLs durcharbeiten bis erste per ping erreichbar erreichbar
|
||||
url=$($HOST_TEST "$PURL")
|
||||
url=$(. $HOST_TEST "$PURL")
|
||||
if [ -n $url ]
|
||||
then URL=${url}
|
||||
fi
|
||||
|
||||
# Falls URL nicht gesetzt wurde abbruch des Scripts
|
||||
if [ -z $URL ]
|
||||
then echo "Kann keinen Listenserver finden.">>$LOG_file
|
||||
exit 1
|
||||
then pakfire_logger "Kann keinen Listenserver finden."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Verzeichnis in Zielverzeichnis wechseln f<>r Download
|
||||
cd $DEST_DIR
|
||||
cd $PAKHOME/cache
|
||||
|
||||
# Pruefen ob bereits ein File vorhanden ist - falls ja, dann wird sie nun gel<65>scht
|
||||
if [ -f ${DEST_DIR}/${LIST_NAME} ]
|
||||
then rm ${DEST_DIR}/${LIST_NAME}
|
||||
if [ -f $PACKAGE_LIST ]
|
||||
then rm $PACKAGE_LIST
|
||||
fi
|
||||
|
||||
# Download der Liste
|
||||
if /usr/bin/wget -q $URL/${VERS}/${LIST_NAME} >/dev/null 2>&1
|
||||
if /usr/bin/wget $URL/$PACKAGE_LIST > /dev/null 2>&1
|
||||
then
|
||||
cd -
|
||||
echo "Updateliste heruntergeladen von $URL">>$LOG_file
|
||||
exit 0
|
||||
pakfire_logger "Updateliste heruntergeladen von $URL"
|
||||
return 0
|
||||
else
|
||||
cd -
|
||||
echo "Updateliste konnnte nicht heruntergeladen werden von $URL">>$LOG_file
|
||||
exit 1
|
||||
pakfire_logger "Updateliste konnnte nicht heruntergeladen werden von $URL"
|
||||
return 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
################################### EOF ####################################################
|
||||
|
||||
@@ -5,27 +5,32 @@
|
||||
|
||||
get_mirror() {
|
||||
|
||||
# Testen ob Server erreichbar ist
|
||||
if ! $HOST_TEST $($URL_ZERL $H_MIRROR get_host) >/dev/null 2>&1
|
||||
then exit 1
|
||||
fi
|
||||
# Testen, ob der Server erreichbar ist
|
||||
#if ! $HOST_TEST $($PAKHOME/lib/url_zerl.sh $H_MIRROR get_host) >/dev/null 2>&1
|
||||
# then return 1
|
||||
#fi
|
||||
|
||||
# Ins Verzeichnis wechseln
|
||||
cd $HOME
|
||||
# Ins Cache-Verzeichnis wechseln
|
||||
cd $PAKHOME/cache
|
||||
|
||||
# <20>berpr<70>fen ob File schon vorhanden ist
|
||||
if [ -e $HOME/$($URL_ZERL $H_MIRROR get_file) ]
|
||||
then rm $HOME/$($URL_ZERL $H_MIRROR get_file)
|
||||
if [ -e $PAKHOME/cache/$SERVERS_LIST ]
|
||||
then rm -f $PAKHOME/cache/$SERVERS_LIST
|
||||
fi
|
||||
|
||||
# File herunterladen
|
||||
if /usr/bin/wget -q $H_MIRROR >/dev/null 2>&1
|
||||
then
|
||||
then
|
||||
COUNT=0
|
||||
for i in `cat $SERVERS_LIST`; do
|
||||
COUNT=$(($COUNT+1))
|
||||
done
|
||||
#. $PAKHOME/lib/test_host.sh `cat $SERVERS_LIST`
|
||||
cd -
|
||||
exit 0
|
||||
return 0
|
||||
else
|
||||
cd -
|
||||
exit 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
@@ -4,45 +4,35 @@
|
||||
# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben d<>rfen. #
|
||||
############################################################################################
|
||||
|
||||
# Download Zielverzeichnis
|
||||
DOWN_DEST=$(get_conf.sh DOWN_DEST)
|
||||
|
||||
# Mirror Liste
|
||||
PURL=$(get_conf.sh PURL print)
|
||||
|
||||
# Logfile festlegen
|
||||
LOG_file=$(get_conf.sh LOG)
|
||||
|
||||
# Version des IPFire ermitteln
|
||||
VERS=$(get_conf.sh VERS print)
|
||||
|
||||
# Host Tester
|
||||
HOST_TEST=$(get_conf.sh HOST_TEST)
|
||||
get_pak() {
|
||||
|
||||
# Alle URLs durcharbeiten bis erste per ping erreichbar erreichbar
|
||||
URL=$($HOST_TEST "$PURL")
|
||||
URL=$(. $HOST_TEST "$PURL")
|
||||
|
||||
# Falls URL nicht gesetzt wurde abbruch des Scripts
|
||||
if [ -z $URL ]
|
||||
then echo "Kann keinen Patchserver finden">>$LOG_file
|
||||
then pakfire_logger "Kann keinen Patchserver finden"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verzeichnis in Zielverzeichnis wechseln f<>r Download
|
||||
cd $DOWN_DEST
|
||||
cd $CACHE_DIR
|
||||
|
||||
# Download Source festlegen
|
||||
DOWN_SRC=${URL}/${VERS}/${1}.tar.gz
|
||||
. $DB_DIR/$1
|
||||
|
||||
FILE="$1-${VER}_${IPFVER}.tar.gz"
|
||||
|
||||
# Paket Downloaden
|
||||
if /usr/bin/wget -q ${DOWN_SRC} >/dev/null 2>&1
|
||||
if /usr/bin/wget $URL/packages/$FILE{,.md5} >> $LOG 2>&1
|
||||
then
|
||||
cd -
|
||||
exit 0
|
||||
else
|
||||
cd -
|
||||
echo "Probleme mit dem Download ${DOWN_SRC}"
|
||||
pakfire_logger "Cannot download $URL/packages/$FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
################################### EOF ####################################################
|
||||
|
||||
34
src/pakfire/lib/get_upgrade.sh
Normal file
34
src/pakfire/lib/get_upgrade.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
############################################################################################
|
||||
# Version 0.1a, Copyright (C) 2006 by IPFire.org #
|
||||
# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben d<>rfen. #
|
||||
############################################################################################
|
||||
|
||||
get_upgrade() {
|
||||
|
||||
updates=""
|
||||
|
||||
for list in $(find $IP_DIR -type f -name "*")
|
||||
do
|
||||
list=$(basename $list)
|
||||
. $IP_DIR/$list
|
||||
OLD_VER=$VER
|
||||
OLD_IPFVER=$IPFVER
|
||||
|
||||
VER=""
|
||||
IPFVER=""
|
||||
. $DB_DIR/$list
|
||||
|
||||
if [ "$OLD_IPFVER" -lt "$IPFVER" ]; then
|
||||
updates="$list $updates"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
for i in $updates
|
||||
do
|
||||
pakfire_logger "New version of $i available."
|
||||
done
|
||||
}
|
||||
|
||||
################################### EOF ####################################################
|
||||
@@ -4,12 +4,9 @@
|
||||
# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben d<>rfen. #
|
||||
############################################################################################
|
||||
|
||||
# URL Zerleger
|
||||
URL_ZERL=$(get_conf.sh URL_ZERL)
|
||||
|
||||
# Z<>hlen wie viele Host <20>bergeben wurden
|
||||
# Z<EFBFBD>hlen wie viele Hosts <20>bergeben wurden
|
||||
i=0
|
||||
for host in $1
|
||||
for host in $PURL
|
||||
do
|
||||
((i++))
|
||||
done
|
||||
@@ -29,9 +26,9 @@ do
|
||||
((i++))
|
||||
if [ $i -eq $rand ]
|
||||
then
|
||||
if ping $($URL_ZERL $host get_host) -c 1 -s 0 >/dev/null 2>&1
|
||||
if ping $($PAKHOME/lib/url_zerl.sh $host get_host) -c 1 -s 0 >/dev/null 2>&1
|
||||
then echo $host
|
||||
exit 0
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
if [ $i -gt $rand ]
|
||||
@@ -42,13 +39,13 @@ done
|
||||
|
||||
for host in $1
|
||||
do
|
||||
if ping $($URL_ZERL $host get_host) -c 1 -s 0 >/dev/null 2>&1
|
||||
if ping $($PAKHOME/lib/url_zerl.sh $host get_host) -c 1 -s 0 >/dev/null 2>&1
|
||||
then
|
||||
echo $host
|
||||
exit 0
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
exit 1
|
||||
return 1
|
||||
|
||||
################################### EOF ####################################################
|
||||
|
||||
@@ -5,15 +5,53 @@
|
||||
############################################################################################
|
||||
|
||||
. /etc/pakfire.conf
|
||||
. $HOME/lib/get_mirror.sh
|
||||
. $PAKHOME/lib/get_mirror.sh
|
||||
. $PAKHOME/lib/get_list.sh
|
||||
. $PAKHOME/lib/check_pak.sh
|
||||
. $PAKHOME/lib/get_upgrade.sh
|
||||
. $PAKHOME/lib/get_base.sh
|
||||
. $PAKHOME/lib/get_pak.sh
|
||||
|
||||
case "$1" in
|
||||
update) get_mirror
|
||||
update)
|
||||
get_mirror
|
||||
get_list
|
||||
check_pak
|
||||
;;
|
||||
|
||||
*) echo -e "IPFire - Pakfire\nHilfe:\npakfire install [Paket]\t- Installiert ein neues Paket.\npakfire update\t\t- L<>dt die Liste aller Pakete neu.\npakfire remove [Paket]\t- Deinstalliert ein Paket.\npakfire upgrade\t\t- <20>berpr<70>ft nach neuen Updates."
|
||||
upgrade)
|
||||
get_upgrade
|
||||
get_base
|
||||
;;
|
||||
|
||||
install)
|
||||
case "$2" in
|
||||
BASE-*)
|
||||
echo $2
|
||||
;;
|
||||
*)
|
||||
if [ -e $DB_DIR/$2 ]; then
|
||||
if [ -e $IP_DIR/$2 ]; then
|
||||
pakfire_logger "$2 is already installed on this system."
|
||||
else
|
||||
get_pak $2
|
||||
fi
|
||||
else
|
||||
pakfire_logger "There is no paket with this name: $2"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
*)
|
||||
echo -e "IPFire - Pakfire $PAKVER:"
|
||||
echo -e "===\t===\t===\t===\t===\t===\t===\t==="
|
||||
echo -e "pakfire install [packet]\t- Installs a new packet."
|
||||
echo -e "pakfire remove [paket]\t\t- Uninstalls a paket."
|
||||
echo -e "pakfire update\t\t\t- Reloads the package list."
|
||||
echo -e "pakfire upgrade\t\t\t- Searches for new updates."
|
||||
echo -e "===\t===\t===\t===\t===\t===\t===\t==="
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
|
||||
@@ -3,29 +3,31 @@
|
||||
# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben d<>rfen; #
|
||||
############################################################################################
|
||||
|
||||
# Home Verzeichnis von Pakman
|
||||
HOME=/opt/pakfire
|
||||
PAKVER=2.0beta
|
||||
|
||||
# Verionsfile von IPFire
|
||||
VERS=/etc/ipfire_vers
|
||||
# Home Verzeichnis von Pakman
|
||||
PAKHOME=/opt/pakfire
|
||||
|
||||
SERVERS_LIST=servers.list_$PAKVER
|
||||
PACKAGE_LIST=packages_list.txt
|
||||
|
||||
# Haupt-Mirrorliste
|
||||
H_MIRROR=http://download.ipfire.eu/servers/$SERVERS_LIST
|
||||
|
||||
# URL Mirrorfile
|
||||
PURL=/opt/pakfire/patch.http
|
||||
PURL=`cat /opt/pakfire/cache/$SERVERS_LIST`
|
||||
|
||||
# LOG_file
|
||||
LOG=/var/log/pakfire.log
|
||||
|
||||
# Filename der Patchliste
|
||||
LIST_NAME=packages_list.txt
|
||||
|
||||
# Zielverzeichnis der Patchliste
|
||||
DEST_DIR=/opt/pakfire/list/
|
||||
# Datenbank
|
||||
DB_DIR=/opt/pakfire/database
|
||||
|
||||
# Update Verzeichnis
|
||||
UP_DIR=/opt/pakfire/updates/
|
||||
|
||||
# Verzeichnis mit nicht installierten Paketen
|
||||
NIP_DIR=/opt/pakfire/notinstalled/
|
||||
# temp directory
|
||||
TMP_DIR=$PAKHOME/tmp
|
||||
|
||||
# Verzeichnis mit Installierten Paketen
|
||||
IP_DIR=/opt/pakfire/installed/
|
||||
@@ -33,14 +35,11 @@ IP_DIR=/opt/pakfire/installed/
|
||||
# Download Zielverzeichnis
|
||||
DOWN_DEST=/opt/pakfire/download/
|
||||
|
||||
# Haupt- Mirrorliste
|
||||
H_MIRROR=http://mirror.ipfire.org/packages/files.http
|
||||
|
||||
# URL Zerlegungs- Script
|
||||
URL_ZERL=/opt/pakfire/url_zerl.sh
|
||||
|
||||
# Host Tester
|
||||
HOST_TEST=/opt/pakfire/test_host.sh
|
||||
HOST_TEST=$PAKHOME/lib/test_host.sh
|
||||
|
||||
# Paket Filenamen festlegen
|
||||
# Das eigentliche Paket
|
||||
@@ -54,3 +53,9 @@ PAK_UNINST=uninstall.sh
|
||||
|
||||
# Cacheverzeichnis
|
||||
CACHE_DIR=/opt/pakfire/cache/
|
||||
|
||||
pakfire_logger() {
|
||||
|
||||
echo "`date -u '+%b %e %T'` $*" | tee -a $LOG
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user