2010-02-16 11 views
1

J'ai un doute. Je fais un projet lié au concept de restauration du système sous Linux. Là, je prévois de procéder à un rollback en cas d'échec. Est-il possible de comprendre quels sont tous les fichiers utilisés par une application dans le système?Trouver les fichiers liés à un logiciel

Ok. Je vais le rendre un peu clair. Par exemple, considérez l'application firefox. Quand il est installé, de nombreux fichiers sont écrits à partir du fichier .deb vers des dossiers comme/etc,/usr,/opt etc. Dans Windows tous les fichiers sont installés dans un dossier sous les fichiers programme alors que dans Linux ce n'est pas le cas. Donc, y a-t-il un moyen de comprendre les fichiers qui appartiennent à un logiciel?

Merci.

+0

Que voulez-vous dire par "application-wise". A partir de la ligne de commande, un utilisateur peut fournir * n'importe quel * nom de fichier à une application. Que voulez-vous dire par "application-sage"? Veuillez fournir une sorte de définition ou de règle qui définit "application-wise". –

+0

Oui !! Ici ça va !! Dans Linux, le logiciel existant prend en charge la sauvegarde de l'ensemble du système dans son ensemble. Mais ce que j'ai prévu est si une application dit firefox qui a fonctionné dans une certaine version disons 2.4 après avoir été mis à jour à 2.5 n'a pas fonctionné !!Dans ce cas, j'ai prévu de restaurer la version 2.4 en restaurant les fichiers qui ont été sauvegardés !! Donc, pour ce faire, j'ai besoin de trouver les fichiers liés à un logiciel !! Y a-t-il un moyen de trouver ça? Merci –

+0

de nombreux systèmes fournissent déjà cette fonctionnalité grâce à la gestion des paquets –

Répondre

5

Eh bien cela peut couvrir plusieurs choses.

Si vous voulez dire, quels fichiers sont fournis par l'installation de votre application? Alors la réponse est, utilisez la gestion décente de paquet, fournissez votre logiciel comme rpm/deb/... n'importe quel paquet, et la désinstallation s'occupera du repos.

Si vous voulez dire, quelles bibliothèques sont référencées par notre application? Ensuite, vous pouvez utiliser ldd pour indiquer quelles bibliothèques dynamiques sont utilisées lors de l'exécution de cette application.

Si vous voulez dire, quels sont les fichiers que mon application utilise activement? Jetez ensuite un oeil à la sortie de lsof (lsof = liste des fichiers ouverts) (ou bien ls/proc // fd /), cela affichera tous les descripteurs de fichier ouverts par votre application (fichiers, sockets, pipes, tty, ...

Ou vous pouvez utiliser tout ce qui précède.

Une chose que vous ne pouvez pas suivre (sauf si vous vous connectez vous-même) est quels fichiers ont été créés par votre application pendant sa durée de vie.

+0

Votre réponse est plus complète, upvoting. – dubiousjim

+0

Ici ça va !! Dans Linux, le logiciel existant prend en charge la sauvegarde de l'ensemble du système dans son ensemble. Mais ce que j'ai prévu est si une application dit firefox qui a fonctionné dans une certaine version disons 2.4 après avoir été mis à jour à 2.5 n'a pas fonctionné !! Dans ce cas, j'ai prévu de restaurer la version 2.4 en restaurant les fichiers qui ont été sauvegardés !! Donc, pour ce faire, j'ai besoin de trouver les fichiers liés à un logiciel –

+1

bien c'est exactement ce que la gestion des paquets dans votre distribution devrait faire pour vous. Cependant, cela ne couvre pas les fichiers créés lors de l'exécution (par exemple les caches firefox), car ce lien n'est conservé nulle part. Gardez à l'esprit que les progiciels nécessitent des bibliothèques et que les progiciels de rétrogradation peuvent impliquer des restaurations de bibliothèques, ce qui peut impliquer des problèmes dans d'autres applications utilisant les mêmes bibliothèques (encore confus?). –

1

Pour déterminer tous les fichiers installés avec l'application dépend du gestionnaire de package. Tous ceux que j'ai traités (apt, pacman) ont eu cette capacité.

Pour déterminer tous les fichiers actuellement ouverts par une application, utilisez lsof.

0

Eh bien, ça dépend ...

La plupart des systèmes Linux ont une sorte de logiciel de gestion de paquets, comme aptitude à debian et ubuntu. Là, vous avez des informations sur ce qui appartient à un paquet. Vous pourriez être en mesure d'utiliser cette information. Cela ne couvre pas les fichiers créés pendant l'exécution des applications.

0

Si vous utilisez un RPM distro basé

# rpm -Uvh --repackage pkg-1-1.i386.rpm 

va reconditionner les anciens fichiers et mettre à jour dans une transaction afin que vous puissiez plus tard rollback en cas de problème. Pour rollback à l'état d'hier par exemple

# rpm -Uvh --rollback yesterday 

Voir this article pour d'autres exemples.

Questions connexes