OVH Cloud OVH Cloud

[FreeBSD] et pkg data bases

21 réponses
Avatar
JJ
Bonjour,

Suite à un installworld d'une 5.3-RELEASE en -p6, après cvsup, les
commandes pkg_XXX et pkgdb échouent, inconsistances.
Après un make index, portsdb -uU, le man de pkgdb donnant -fu pour
reconstruire la database, j'ai fait un rm dans /var/db/pkg, après avoir
sauvegardé /pkg, puis l'ai écrabouillé ensuite avec les gros doigts.
Je sais, pas taper... :)

pkgdb -fu me crée juste un minuscule fichier pkgdb.db. A quoi sert il ?.

Le pkgtools.conf est basique, avec juste la déclaration des répertoires
db par défaut.

J'ai réussi à faire un portupgrade -R portupgrade, et maintenant je peux
installer/désinstaller via les ports (et aussi via pkg_add), les
nouveaux venus apparaissant/disparaissant bien dans /var/db/pkg.

Comment faire pour avoir de nouveau dans la db les packages dejà
installés sur la machine, car il ne les voit plus.

Merci. JJ

10 réponses

1 2 3
Avatar
Mathieu Arnold
JJ écrivait:
reconstruire la database, j'ai fait un rm dans /var/db/pkg, après avoir

Comment faire pour avoir de nouveau dans la db les packages dejà
installés sur la machine, car il ne les voit plus.


Si tu as effacé tout /var/db/pkg, il n'y a rien a faire.

--
Mathieu Arnold

Avatar
JJ
Mathieu Arnold wrote:
JJ écrivait:

reconstruire la database, j'ai fait un rm dans /var/db/pkg, après avoir


Comment faire pour avoir de nouveau dans la db les packages dejà
installés sur la machine, car il ne les voit plus.



Si tu as effacé tout /var/db/pkg, il n'y a rien a faire.

Ok, je m'en doutais un peu, snif...

Il me reste le /usr/ports/distfiles, au complet depuis l'install
d'origine, une idée ?.

j'ai installé deux ou trois bricoles par les ports pour voir, avec cette
pkg incomplète, est ce qu'il peut encore gérer les dépendances ?.

En tous cas, merci pour la réponse négative :)
JJ


Avatar
JJ
Xavier wrote:
Mathieu Arnold wrote:


Comment faire pour avoir de nouveau dans la db les packages dejà
installés sur la machine, car il ne les voit plus.


Si tu as effacé tout /var/db/pkg, il n'y a rien a faire.



Ben si : `portugrade -af`

XAv


Ben non : Cela ne travaille que sur les ports que j'ai installés
après pour voir.
Sinon, suivi d'un pkgdb -F, il semble tenir compte des dépendances des
installs précédentes.

JJ



Avatar
Mathieu Arnold
Xavier écrivait:
Mathieu Arnold wrote:


Comment faire pour avoir de nouveau dans la db les packages dejà
installés sur la machine, car il ne les voit plus.


Si tu as effacé tout /var/db/pkg, il n'y a rien a faire.



Ben si : `portugrade -af`


Je vois mal ce que portupgrade va pouvoir faire, étant donné qu'il va
aller voir dans /var/db/pkg pour savoir ce qui est installé.

--
Mathieu Arnold



Avatar
Mathieu Arnold
JJ écrivait:
Mathieu Arnold wrote:

JJ écrivait:

reconstruire la database, j'ai fait un rm dans /var/db/pkg, après avoir


Comment faire pour avoir de nouveau dans la db les packages dejà
installés sur la machine, car il ne les voit plus.




Si tu as effacé tout /var/db/pkg, il n'y a rien a faire.

Ok, je m'en doutais un peu, snif...

Il me reste le /usr/ports/distfiles, au complet depuis l'install
d'origine, une idée ?.

j'ai installé deux ou trois bricoles par les ports pour voir, avec cette
pkg incomplète, est ce qu'il peut encore gérer les dépendances ?.


Il va voir des choses qui sont présentes mais pas référencées, ça risque
de causer des problèmes. Je ne sait pas combien de ports tu avais
installé, mais je dirais que si tu as encore tout dans
/usr/ports/distfiles, tu peut aller y jeter un œuil et réinstaller les
ports qui y ont leurs distfile.

--
Mathieu Arnold



Avatar
Marwan Burelle
In article <425149d4$0$12182$, Mathieu Arnold wrote:
j'ai installé deux ou trois bricoles par les ports pour voir, avec cette
pkg incomplète, est ce qu'il peut encore gérer les dépendances ?.



Pour la gestion des dépendances, en fait ça ne devrait pas trop poser
de problème. Le système de dépendance des ports vérifie l'existance
des libs ou des binaires la plus part du temps et pas si le port est
installé. Par exemple, la ligne de dépendace suivante (extrait de
devel/ocaml-pcre) :

LIB_DEPENDS= pcre.0:${PORTSDIR}/devel/pcre

indique que le port dépend du fait que ld trouve libpcre.0* et pour le
cas où la dépendance n'est pas satisfaite, cette ligne indique un port
permettant de la satisfaire.

Il va voir des choses qui sont présentes mais pas référencées, ça risque
de causer des problèmes. Je ne sait pas combien de ports tu avais
installé, mais je dirais que si tu as encore tout dans
/usr/ports/distfiles, tu peut aller y jeter un œuil et réinstaller les
ports qui y ont leurs distfile.


C'est probablement la seule solution ...

--
Burelle Marwan,
Equipe Bases de Donnees - LRI
http://www.cduce.org
( | )


Avatar
Mathieu Arnold
Marwan Burelle écrivait:
In article <425149d4$0$12182$, Mathieu Arnold wrote:

j'ai installé deux ou trois bricoles par les ports pour voir, avec cette
pkg incomplète, est ce qu'il peut encore gérer les dépendances ?.




Pour la gestion des dépendances, en fait ça ne devrait pas trop poser
de problème. Le système de dépendance des ports vérifie l'existance
des libs ou des binaires la plus part du temps et pas si le port est
installé. Par exemple, la ligne de dépendace suivante (extrait de
devel/ocaml-pcre) :

LIB_DEPENDS= pcre.0:${PORTSDIR}/devel/pcre

indique que le port dépend du fait que ld trouve libpcre.0* et pour le
cas où la dépendance n'est pas satisfaite, cette ligne indique un port
permettant de la satisfaire.


Vouy, *mais*, comme la base de données des packages installés n'est pas
la, des que pcre sera mis a jour dans les ports, portupgrade ne saura
pas qu'il est installé et ne pourra pas le mettre a jour. De même, si la
libpcre a son numéro de version incrémenté, il restera des vieux
fichiers non référencés.

Il va voir des choses qui sont présentes mais pas référencées, ça risque
de causer des problèmes. Je ne sait pas combien de ports tu avais
installé, mais je dirais que si tu as encore tout dans
/usr/ports/distfiles, tu peut aller y jeter un œuil et réinstaller les
ports qui y ont leurs distfile.
C'est probablement la seule solution ...



C'est même certain :-)
Apres, il faudra y aller a coup de
find /usr/X11R6 /usr/local -type f -print0 | xargs -0 pkg_which -vf|grep
': ?$'
pour savoir quels sont les fichiers qui ne sont pas référencés par un port.

--
Mathieu Arnold



Avatar
Marwan Burelle
In article <42515cdd$0$11969$, Mathieu Arnold wrote:
Vouy, *mais*, comme la base de données des packages installés n'est pas
la, des que pcre sera mis a jour dans les ports, portupgrade ne saura
pas qu'il est installé et ne pourra pas le mettre a jour. De même, si la
libpcre a son numéro de version incrémenté, il restera des vieux
fichiers non référencés.


Effectivement. Mais, la question semblait porter sur l'installation de
nouveau port. Dans tous les cas un system sans /var/db/pkg, n'est pas
franchement viable. Mais bon, sans update et en attendant de faire
mieux, ça peut marcher.

Par, contre dans l'absolue, on doit pouvoir dire à portupgrade de
poser sa base ailleurs que dans /var/db/pkg, et peut être ainsi
pouvoir reconstruire quelque chose si /var/db/pkg morfle. Je tenterais
bien, dès que j'ai un peu de temps et une machine "cassable" ...

C'est même certain :-)
Apres, il faudra y aller a coup de
find /usr/X11R6 /usr/local -type f -print0 | xargs -0 pkg_which -vf|grep
': ?$'
pour savoir quels sont les fichiers qui ne sont pas référencés par un port.


Oui ... pareil, pour être tranquil, moi je sauvegarde la liste de mes
ports installés (via pkg_info -oqa) histoire de toujours savoir ce qui
a été installé. En cas de soucis, je récup ce qui est n'est pas des
ports dans /usr/local ainsi que mes conf dans les différents etc, je
vire local et X11R6 et je résintalle les ports ...

--
Burelle Marwan,
Equipe Bases de Donnees - LRI
http://www.cduce.org
( | )

Avatar
Laurent Lefevre
(Xavier) writes:

Pour ma défense, je fais comme Marwan, je sauvegarde régulièrement la
sortie de pkg_info. J'ai réinstallé from_scratch un serveur (*) comme ça
la semaine dernière. C'était plus rapide que dump/bsdlabel/newfs/restore


C'est sur, c'est beaucoup plus rapide de reinstaller tout les ports,
plutot que de faire un bete dump/restore....

Ca doit etre trop compliqué les sauvegardes...c'est vachement mieux de
se faire chier a tout reinstaller apres.

--
Laurent

Avatar
Laurent Lefevre
(Xavier) writes:

Ca doit etre trop compliqué les sauvegardes...c'est vachement mieux de
se faire chier a tout reinstaller apres.


Quand le systèmpe est en cours d'install (ie PAS de données à
conserver), qu'il n'y a rien d'autre à faire que

1- cd sysutils/portinstall && make install
2- portinstall <tout ce qu'il y avait auparavant>

Oui, c'est plus rapide qu'un dump/bsdlabel/newfs/restore. Enormément.


Ce n'est pas de ça dont on parlait au départ. Remet les choses dans le
contexte.
Un type qui bouzille un db, trouve plus malin de tout reinstaller
plutot que de taper un restore de la db, je trouve que là, les
conneries ca suffit...

Depuis le depart, vous cherchez tout azimut, alors que l'initiateur du
fil a fait une premiere erreur dont personne n'a parlé: pas de
sauvegarde.

--
Laurent


1 2 3