Pagina 1 di 2
Togliere pacchetti vecchio kernel non e' cosi semplice
Inviato: gio 26 gen 2006, 1:48
da first
Una volta che ho preso il kernel 2.6.15.1 e me lo sono compilato con le mie manine mi sono detto:" e ora che me ne faccio dei pacchetti precompilati del 2.4.31 di serie della mia slack 10.2?" e cosi do pkgtool e tolgo tutti i pacchetti relativi al "vecchio" e inutile kernel.
Problema, dovevo fare delle aggiunte al "nuovo" kernel, vado in /usr/src/linux e do make menuconfig e mi da una serie di errori di include e non si avvia il menu grafico......
Questa notte entro in chat e trovo un gentilissimo Harp che mi aiuta a risolvere il problema
Codice: Seleziona tutto
[01:13] <Harp00> cd /usr/include
[01:13] <Harp00> rm -Rf asm asm-generic linux asm-i386
[01:13] <Harp00> cp -ax /usr/src/linux/include/asm-i386 asm
[01:13] <Harp00> ln -s /usr/src/linux/include/asm-generic
[01:13] <Harp00> ln -s /usr/src/linux/include/linux
lancio quelle 4 righe e zacchete tutto risolto gli include sono di nuovo ritornati dove dovevano.
Da quello che abbiamo capito il problema e' nato dal fatto che rimuovendo gli header del "vecchio" kernel, slack ha pensato di rimuovere anche quelli del "nuovo"....
Io ero deluso al massimo dalla mia slack che si era comportata come un Windows qualsiasi, le dico rimuovi un pacchetto e lei pensa bene di andare a rimuovere cose "non sue", incasinando gli altri programmi. Poi Harp mi ha fatto giustamente notare che se ero su Windows non avrei nemmeno avuto modo di risolvere da me il problema se non con un classico format c:
Un po di amarezza rimane ancora in background, non mi e' andata giu che la rimozione di un pacchetto inutile potesse danneggiare l'intero sistema.
Inviato: gio 26 gen 2006, 1:56
da 5m0k3r
Questi headers andranno benissimo anche per il tuo 2.6.15
ftp://ftp.slackware.at/slackware-curren ... i386-1.tgz
Inviato: gio 26 gen 2006, 2:14
da samiel
Da quello che abbiamo capito il problema e' nato dal fatto che rimuovendo gli header del "vecchio" kernel, slack ha pensato di rimuovere anche quelli del "nuovo"....
Ma, oltre al kernel nuovo,
avevi installato anche i suoi headers?
Immagino che tu sappia che non basta
compilare un kernel per avere anche
i suoi headers...
Dubito che pkgtool rimuova di suo
cose che non c'entrano.
M.
Inviato: gio 26 gen 2006, 2:22
da gallows
Slackware non prende iniziative, è tecnicamente impossibile che abbia deciso di metterti nei guai.
Puoi comunque consultare i log in /var/log/removed_packages
Mmm, ho riletto meglio il tuo post.
Mi sa che non hai tanto chiara la faccenda degli headers...
Inviato: gio 26 gen 2006, 10:00
da Luci0
Io ero deluso al massimo dalla mia slack che si era comportata come un Windows qualsiasi, le dico rimuovi un pacchetto e lei pensa bene di andare a rimuovere cose "non sue", incasinando gli altri programmi. Poi Harp mi ha fatto giustamente notare che se ero su Windows non avrei nemmeno avuto modo di risolvere da me il problema se non con un classico format c:
Un po di amarezza rimane ancora in background, non mi e' andata giu che la rimozione di un pacchetto inutile potesse danneggiare l'intero sistema.
Stiamo parlando di kernel non di patatine ... tra tutti i pacchetti proprio il kernel dovevi andare a levare ... già che c' eri potevi rimuovere anche le gclib che occopano un casino spazio ...
..
Inviato: gio 26 gen 2006, 10:40
da first
Mi sa che non avete chiara voi la faccenda degli headers o forse non mi sono espresso bene io.
Se uno vuole un kernel precompilato gli servono due cose:
il pacchetto del kernel
il pacchetto degli headers
Se uno decide di compilarsi il suo kernel gli serve UNA cosa sola:
il sorgente del kernel cosi come lo si trova su kernel.org
Quando si scompatta il kernel vengono create diverse dir tra cui gli HEADERS.
Il mio problema e' stato che seguendo howto di slacky sul compilare il kernel tra le varie cose viene detto di creare un link simbolico(cancellando quello vecchio) chiamato linux che punta alla directory dei sorgenti
Codice: Seleziona tutto
# cd /usr/src
# tar xjvf linux-2.6.xx.tar.bz2
Cancellate e ricreate il link simbolico
# rm linux | ln -s linux-2.6.xx linux
quando poi mi sono trovato a togliere i "pacchetti" del vecchio kernel precompilato pkgtool cosa ha fatto? e' andato a rimuovere quello che trovava in usr/include/linux.
usr/include/linux pero' e' un link simbolico a /usr/src/linux/include/linux
Credo ora di essere stato piu chiaro ma in parole povere lo riassumo di nuovo: seguendo howto di slacky e dopo rimuovendo il PACCHETTO del vecchio kernel con relativi headers, quello che si ottiene e' anche la rimozione dei NUOVI headers.
PS chiedo a lorys se puo correggere howto in maniera che nessuno possa incorrere in questo problema.
PPS io saro' un nuovo utente del mondo linux pero' ho visto che anche alcuni "vecchi" non e' che ne capiscano molto

(senza offesa e'! siamo qui tutti per imparare.......anche dai newbie

)
Inviato: gio 26 gen 2006, 11:44
da gallows
first ha scritto:Se uno decide di compilarsi il suo kernel gli serve UNA cosa sola:
il sorgente del kernel cosi come lo si trova su kernel.org
Non è esatto.
Quando si scompatta il kernel vengono create diverse dir tra cui gli HEADERS.
Ok, ma a cascata da dove scompatti.. Mica in /usr/include......
usr/include/linux pero' e' un link simbolico a /usr/src/linux/include/linux
Questo è un problema tuo, di default non è così.
Hai sbagliato tu.
PS chiedo a lorys se puo correggere howto in maniera che nessuno possa incorrere in questo problema.
No, su una slackware default quell'howto non crea alcun problema.
/usr/include/asm-i386 e /usr/include/linux NON sono link simbolici.
Inviato: gio 26 gen 2006, 12:01
da first
ok gallow che ti devo dire...
Se non ci credi prova .....
prenditi un kernel da kernel.org
segui pedissequamente howto di slacky e compila il kernel
rimuovi il pacchetto kernel/header precompilato "vecchio" che hai abordo
vai in usr/src/linux
dai make menuconfig
mi sembra di non aver fatto niente di cosi strano... io ho fatto SOLO i passi descritti sopra
e vediamo se ti funziona
contento tu...
Inviato: gio 26 gen 2006, 12:13
da gallows
Se seguo passo passo questo, non c'è bisogno di provare, NON funziona perché mi ritrovo senza header.
Ma è come svuotare il serbatoio dell'auto e poi incazzarsi con la fiat perché non si mette in moto.
PS. non hai ribattuto sulla questione dei symlink.
PPS. peraltro ho capito benissimo qual è stato il tuo problema, ma sinceramente mi hai fatto passare la voglia di spiegartelo.
Inviato: gio 26 gen 2006, 13:01
da waka_jawaka
gallows ha scritto:
first ha scritto:Se uno decide di compilarsi il suo kernel gli serve UNA cosa sola:
il sorgente del kernel cosi come lo si trova su kernel.org
Non è esatto.
Spieghi per favore? Perche io ho sempre fatto così e non ho mai avuto problemi, ma, dato che non è che io sia un guru, qualche informazione in più non fa mai male.
Inviato: gio 26 gen 2006, 13:21
da gallows
Beh, devi leggere "non è esatto" nel contesto (e come un eccesso di pedanteria :P)
Anche io ho sempre fatto così... Generalmente è ok, ma nel suo caso non basta o meglio, deve fare un passaggio in più.
Se gli header (in /usr/include) non ci sono non puoi compilare nulla (a meno che non imposti delle flag specifiche per gcc)
Si può comunque ovviare come ha giustamente suggerito Harp00, quindi alla fine usando lo stesso tarball.
Solo che ho l'impressione che per first basti scompattare il tarball con i sorgenti in /usr/src per avere gli header belli e pronti. Altrimenti non si spiega la sua rimozione degli header del 2.4.
Inviato: gio 26 gen 2006, 13:37
da first
acc questo argomento mi sta appassionando.
cercando su google "/usr/include/limits.h" slackware ho trovato moltissimi link di persone che hanno avuto il mio stesso problema: compilare nuovo kernel, rimuovere pacchetti header vecchio kernel, scomparsa di qualsiasi header in /usr/include.
Ricostruisco quello che ho capito:
di default in slack vengono installati gli header in /usr/include
quando si va a compilare un nuovo kernel per la compilazione vengono usati gli header di /usr/include (erroneamente credevo che venissero usati gli stessi presenti nella directory del nuovo kernel).
A questo punto se uno decide di togliere i pacchetti dei "vecchi" header il compilatore cerca in /usr/include e non trova piu traccia di header anche se essi sono presenti nella directory del nuovo kernel.
Ora sorge un probelma esistenziale:
E' meglio usare gli header di default oppure gli header creati compilando un nuovo kernel?
Per quanto riguarda l'howto di slacky sul compilare u nuovo kernel io aggiungerei questo passaggio dopo che si e' scompattato il kernel:
cd /usr/include
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/asm-i386 asm
Cosi non e' piu necessario avere dei qualsivoglia header preinstallati ma verrano usati quelli compresi nel tar stesso del nuovo kernel.
PS gallow non ti imbruttire e il mio problema l'ho capito da me usando il prezioso aiuto di harp, il mio post e' solo inteso a chi come me si rifiuta di avere cose ridondanti sulla sua slack ( se io ho un nuovo kernel compilato dai sorgenti perche mai mi devo tenere gli header dei vecchi pacchetti precompilati??? ).
Inviato: gio 26 gen 2006, 13:42
da first
gallows ha scritto:
Solo che ho l'impressione che per first basti scompattare il tarball con i sorgenti in /usr/src per avere gli header belli e pronti. Altrimenti non si spiega la sua rimozione degli header del 2.4.
Leggi sopra e trovi la risposta alle tue false credenze

gli header ci sono e sono gia belli e pronti.
Inviato: gio 26 gen 2006, 14:01
da gallows
cercando su google "/usr/include/limits.h" slackware ho trovato moltissimi link di persone che hanno avuto il mio stesso problema: compilare nuovo kernel, rimuovere pacchetti header vecchio kernel, scomparsa di qualsiasi header in /usr/include.
Non è un problema, è un'ovvietà!
first ha scritto:Leggi sopra e trovi la risposta alle tue false credenze

gli header ci sono e sono gia belli e pronti.
Ma se tu stesso l'hai confermato:
quando si va a compilare un nuovo kernel per la compilazione vengono usati gli header di /usr/include (erroneamente credevo che venissero usati gli stessi presenti nella directory del nuovo kernel).
Se tu avessi avuto le idee chiare su questo punto non saresti caduto in errore. Ti sei ritrovato senza header (eliminati da te!) e hai dato la colpa a pkgtool

Inviato: gio 26 gen 2006, 14:46
da first
Io non capisco, credevo di aver fatto un servizio alla comunita condividendo un problema e sopratutto la sua soluzione e mi vedo rispondere con supponenza che sono ovvieta' etc etc. quando sono sicuro che l'80% di quelli che usano slackware non sappiano che compilandosi il kernel, in fase di una qualsiasi compilazione in seguito, utilizzano gli header di un kernel diverso da quello che e' stato compilato.
Comunque non c'e' problema da ora in poi, se questo e il clima, mi faccio gli affari miei