Togliere pacchetti vecchio kernel non e' cosi semplice

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Togliere pacchetti vecchio kernel non e' cosi semplice

Messaggio 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.

Avatar utente
5m0k3r
Linux 2.x
Linux 2.x
Messaggi: 306
Iscritto il: mer 6 ott 2004, 0:00
Località: Augusta

Messaggio da 5m0k3r »

Questi headers andranno benissimo anche per il tuo 2.6.15
ftp://ftp.slackware.at/slackware-curren ... i386-1.tgz

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Messaggio 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.

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio 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...

Avatar utente
Luci0
Staff
Staff
Messaggi: 3591
Iscritto il: lun 27 giu 2005, 0:00
Nome Cognome: Gabriele Santanché
Slackware: 12.2 14.0
Kernel: 2.6.27.46- gen 3.2.29
Desktop: KDE 3.5.10 Xfce
Località: Forte dei Marmi
Contatta:

Messaggio 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 ...

..

first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Messaggio 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 :D )

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio 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.

first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Messaggio 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...

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio 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.

Avatar utente
waka_jawaka
Linux 3.x
Linux 3.x
Messaggi: 781
Iscritto il: mer 10 ago 2005, 0:00
Nome Cognome: Alberto Palillo
Kernel: 2.6.35
Desktop: KDE 4.5
Distribuzione: Archlinux

Messaggio 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.

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio 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.

first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Messaggio 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??? ).

first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Messaggio 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.

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio 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 ;)

first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Messaggio 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

Rispondi