Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Conservare gli ebuild vecchi durante un emerge sync
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
erich.guildenstern
n00b
n00b


Joined: 19 Apr 2004
Posts: 21

PostPosted: Wed May 12, 2004 9:09 am    Post subject: Conservare gli ebuild vecchi durante un emerge sync Reply with quote

Ciao.
Uso gentoo su un server di produzione, quindi sono sempre un po' restio ad aggiornare e lo faccio con prudenza, comunque faccio abbastanza regolarmente emerge sync.
La configurazione funzionante comprende apache-2.0.48-r1 e resin-2.6.1; dato che ho notato per esperienza che variare questa coppia porta un po' di problemi mi sarebbe piaciuto conservarla, ma ho notato che dopo uno degli ultimi sync apache-2.0.48-r1 non e' piu' nel portage.
La domanda e': si puo' dire ad emerge di conservare gli ebuild vecchi, o almeno quelli delle versioni installate, durante un sync?
Inoltre: c'e' qualche posto dove ripescare gli ebuild vecchi ed i loro files relativi?
Grazie!
Ciao
-Erich
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Wed May 12, 2004 9:16 am    Post subject: Re: Conservare gli ebuild vecchi durante un emerge sync Reply with quote

erich.guildenstern wrote:
Inoltre: c'e' qualche posto dove ripescare gli ebuild vecchi ed i loro files relativi?


Qualcosa tipo CVS?

apache-2.0.48-r1.ebuild
_________________
Ciao da me!
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31674
Location: here

PostPosted: Wed May 12, 2004 10:00 am    Post subject: Reply with quote

Potresti crearti /usr/local/portage e mettere li dentro gli ebuild che vuoi conservare.
_________________
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Back to top
View user's profile Send private message
erich.guildenstern
n00b
n00b


Joined: 19 Apr 2004
Posts: 21

PostPosted: Wed May 12, 2004 10:12 am    Post subject: Reply with quote

randomaze wrote:
erich.guildenstern wrote:
Inoltre: c'e' qualche posto dove ripescare gli ebuild vecchi ed i loro files relativi?


Qualcosa tipo CVS?

apache-2.0.48-r1.ebuild


Hai assolutamente ragione, grazie, del link!

fedeliallalinea wrote:
Potresti crearti /usr/local/portage e mettere li dentro gli ebuild che vuoi conservare.


e' quello che ho iniziato a fare, ma (santo cielo!) sono taaaanti!
Sto cercando di pensare ad una procedura per automatizzare la cosa, accetto qualunque tipo di suggerimento in merito!
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31674
Location: here

PostPosted: Wed May 12, 2004 10:20 am    Post subject: Reply with quote

erich.guildenstern wrote:
Sto cercando di pensare ad una procedura per automatizzare la cosa, accetto qualunque tipo di suggerimento in merito!

In questo topic ho postato uno script che il lavoro di esync cioe' ti dice gli ebuild nuovi che sono arrivati facendo una copia della lista del portage vecchio e confrontandola con quello nuovo. Modificando questo script puoi fare in modo che copi gli ebuil nuovi in /usr/local/portage senza che cancelli i vecchi cosi' avrai sempre un traccia dei vecchi ebuild. Un problema che potrebbe esserci e' che hai un doppione degli ebuild nuovi quindi non so come si comporta portage.
_________________
Questions are guaranteed in life; Answers aren't.

"Those who would give up essential liberty to purchase a little temporary safety,
deserve neither liberty nor safety."
- Ben Franklin
https://www.news.admin.ch/it/nsb?id=103968
Back to top
View user's profile Send private message
erich.guildenstern
n00b
n00b


Joined: 19 Apr 2004
Posts: 21

PostPosted: Wed May 12, 2004 10:56 am    Post subject: Reply with quote

fedeliallalinea wrote:
Modificando questo script puoi fare in modo che copi gli ebuil nuovi in /usr/local/portage senza che cancelli i vecchi cosi' avrai sempre un traccia dei vecchi ebuild. Un problema che potrebbe esserci e' che hai un doppione degli ebuild nuovi quindi non so come si comporta portage.


Quindi se ho capito bene tu mi suggerisci di duplicare l'intero portage in /usr/local/portage e poi ad ogni aggiornamento copiare gli ebuild nuovi in quest'ultimo in modo da tenere traccia di tutti quelli vecchi senza mai cancellarli.
E' un metodo un po' "dispendioso", ma puo' funzionare, devo solo controllare che /usr/local/portage abbia la precedenza (a me sembra logico che ce l'abbia, ma non si sa mai).
Cerchero' anche di lavorare sul modo di "proteggere" gli ebuild installati anche se non credo che avro' molto successo... il primo problema che mi viene in mente e': come posso proteggere anche tutti i files/ associati ad un determinato ebuild? temo proprio che non si possa.
Grazie mille per il suggerimento!
Back to top
View user's profile Send private message
neon
l33t
l33t


Joined: 04 Aug 2003
Posts: 759
Location: Catania, Italy, Europe

PostPosted: Wed May 12, 2004 12:00 pm    Post subject: Reply with quote

Ma in questo modo si vengono ad avere due copie di portage uguali, di cui una crescerebbe a dismisura.
La cosa più comoda sarebbe creare uno script che alla fine di emerge controlla gli ebuild presenti e se qualche versione installata non è presente la scarica dal cvs e la mette in /usr/local/portage (ovviamente il controllo fatto dopo aver aggiornato altrimenti scarica tutto :wink:).
Non credo sia eccessivamente complicata come cosa, lo farei io avendo un pò di tempo, ma il povero gufo ha la precedenza (ormai caduto in no-coding da mesi). Nel frattempo vai di package.mask >net-www/apache-2.0.48-r1 ecc ecc e manualmente aggiungi i pacchetti al local portage (che confermo ha la precedenza)
_________________
Io credo che le tecnologie siano moralmente neutrali fino a quando non le utilizziamo - William Gibson

LINEE GUIDA DEL FORUM
Back to top
View user's profile Send private message
doom.it
Guru
Guru


Joined: 23 May 2003
Posts: 430
Location: Pavia, Italy

PostPosted: Wed May 12, 2004 12:49 pm    Post subject: Reply with quote

Code:

PORTDIR_OVERLAY="/usr/portage/overlay"

for line in `qpkg -nc -I -v`; do
        category=${line/\/*/};
        package_version=${line/*\//};
        package=${package_version/-[0-9]*/};
        version=${package_version/pkg-/};

        old_ebuild="/usr/portage/"$category"/"$package"/"$package_version".ebuild"
        save_position=$PORTDIR_OVERLAY"/"$category"/"$package"/"

        if [ -f $old_ebuild ]; then
                [ -f $save_position ] || `mkdir -p "$save_position"`
                cp $old_ebuild $save_position;
                echo $package_version "SAVED";
        else
                echo "SKIPPING "$package_version;
        fi
done


Cambia la dir con quella del tuo PORTDIR_OVERLAY,
e lancialo... :)
TI salva tutti e soli gli ebuild delle versioni dei pacchetti che hai installato.
Nota che richiede gentoolkit per usare qpkg.
Per vedere quali ebuild non sono piu presenti sul sistema (e quindi non backuppabili) fai un

nomescript | grep "SKIPPING"
oppure commenta la riga


Code:
 echo $package_version "SAVED";



P.S. grazie a fonderia per il supporto :)
_________________
I have discovered photography. Now I can kill myself. I have nothing else to learn.
Pablo Picasso
Back to top
View user's profile Send private message
FonderiaDigitale
Veteran
Veteran


Joined: 06 Nov 2003
Posts: 1710
Location: Rome, Italy

PostPosted: Wed May 12, 2004 1:40 pm    Post subject: Reply with quote

potresti fare un wrapper per emerge sync che copi i file piu vecchi di tot tempo dentro la directory overlay. Preso dalla solita foga ho fatto il solito script :D.

Sta qui
_________________
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Wed May 12, 2004 1:44 pm    Post subject: Reply with quote

FonderiaDigitale wrote:
Preso dalla solita foga ho fatto il solito script :D.


Ti vedo abbastanza iperattivo ultimamente :-D
_________________
Ciao da me!
Back to top
View user's profile Send private message
erich.guildenstern
n00b
n00b


Joined: 19 Apr 2004
Posts: 21

PostPosted: Wed May 12, 2004 2:36 pm    Post subject: Reply with quote

Grazie a tutti per l'aiuto!
Ho deciso di adottare la soluzione di doom con qualche modifica:
Code:

PORTDIR_OVERLAY=$(. /etc/make.conf ; echo $PORTDIR_OVERLAY)
                                                                                                                                                     
[ -z "$PORTDIR_OVERLAY" ] && echo "Cannot continue, overlay dir is not specified in make.conf" && exit 1
mkdir -p ${PORTDIR_OVERLAY}
                                                                                                                                                     
LOG="${PORTDIR_OVERLAY}/protect.log"
LAST_LOG="${PORTDIR_OVERLAY}/protect.last.log"
                                                                                                                                                     
echo -e "\n" >> $LOG
date >> $LOG
echo >> $LOG
                                                                                                                                                     
date > $LAST_LOG
echo >> $LAST_LOG
                                                                                                                                                     
for line in $(qpkg -nc -I -v); do
   category=${line/\/*/};
   package_version=${line/*\//};
   package=${package_version/-[0-9]*/};
   version=${package_version/pkg-/};
                                                                                                                                                     
   source_dir="/usr/portage/${category}/${package}"
   old_ebuild="${source_dir}/${package_version}.ebuild"
   save_position="${PORTDIR_OVERLAY}/${category}/${package}/"
                                                                                                                                                     
   if [ -f $old_ebuild ]; then
      [ -f $save_position ] || $(mkdir -p "$save_position")
      if [ -f "${save_position}/${package_version}.ebuild" ] ; then
         echo "$package_version EXISTING" | tee -a $LOG | tee -a $LAST_LOG
      else
         cp -aui "${source_dir}/files" "${save_position}"
         cp -i $old_ebuild $save_position
         echo "$package_version SAVED" | tee -a $LOG | tee -a $LAST_LOG
      fi
   else
      echo "$package_version SKIP" | tee -a $LOG | tee -a $LAST_LOG
   fi
done

Lo script scrive un paio di file di log nella overlay dir, non sovrascrive ebuild esistenti, chiede conferma prima di sovrascrivere files e salva anche le sottodir files/
Accetto ovviamente tutti i possibili suggerimenti :)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum