Lorsque je suis sur le serveur de mon service, je ne peux pas utiliser des commandes telles que "apt-get install nethack". Je dois construire le nethack à partir de fichiers binaires pour le faire fonctionner, du moins, on m'a dit. Je ne peux pas comprendre la raison. Pourquoi ai-je besoin de construire des choses à partir de binaires? Pourquoi l'utilisation des commandes, telles que "apt-get", est-elle interdite? Pourquoi n'ai-je pas besoin d'un accès root pour construire à partir de binaires?Pourquoi le bâtiment à partir de fichiers binaires ne nécessite pas d'accès root?
Répondre
Lorsque vous compilez un programme à partir de la source, vous pouvez lui donner le '--prefix = ~ /'. Cela l'amène à s'installer par rapport à votre propre répertoire personnel (donc les programmes binaires se retrouvent généralement dans '~/bin', les pages man dans '~/man' etc). Cela ne pose aucun problème car vous avez déjà la permission d'écrire ici. D'autre part, Apt-get installe les paquets dans le système de fichiers global ('/ bin /', '/ usr/bin /', etc), ce qui peut avoir un impact sur les autres utilisateurs et donc, à juste titre, nécessiter un accès administratif .
Si vous voulez installer un programme, vous pouvez utiliser la commande
apt-get source app-name
Ce va fonctionnera même si vous n'êtes pas racine car il extraient que le code source à l'application nom et le mettre dans le répertoire courant, ce qui est plus facile que de devoir traquer la source et il y a une meilleure chance de le faire fonctionner, puisque vous téléchargez la version qui devrait fonctionner sur votre système.
Vous pouvez également installer votre programme pour installer les programmes dont vous avez besoin, car c'est son travail (et si vous en avez besoin, il est probable que le reste de votre équipe le fasse aussi).
+ un grand merci pour la commande :) –
Parce que apt-get va installer un système de programme large.
Les emplacements dans lesquels apt-get écrit les fichiers installés (/ bin,/usr/bin, ...) sont limités à l'accès root. J'imagine que lorsque vous construisez à partir de la source, vous n'exécutez pas l'étape d'installation du bulid. Vous allez avoir besoin de définir un préfixe pour l'installation de sorte que les paquets finissent quelque part que vous pouvez écrire. This thread parle un peu sur la définition de préfixes pour apt-get et vous aurez probablement envie de mettre votre préfixe à quelque chose comme
~/software/
puis ajoutez les répertoires bin résultant à votre PATH.
apt-get
est une commande au niveau du système qui installe les packages pour tous les utilisateurs.
Si vous téléchargez et compilez, vous ne créez que des "copies" locales des fichiers binaires, pas du système. Si vous avez essayé de terminer le processus d'installation avec make install
cela échouerait probablement car vous n'avez pas les privilèges suffisants pour installer le programme pour l'accès de tous les utilisateurs (même raison que vous ne pouvez pas exécuter apt-get install
)
Je suis intéressé d'en savoir plus sur les commandes à l'échelle du système. Cela signifie-t-il que les programmes ne peuvent pas utiliser les commandes système? Prenons une autre perspective, est-il possible de construire un programme à partir de fichiers source pour avoir accès à des commandes système? –
+1 pour commencer à comparer les choses locales et les choses au niveau du système. –
Il s'agit d'autorisations de stockage. Lorsque vous "installez" un programme, vous le copiez dans un emplacement accessible par tous les utilisateurs - très probablement inclus dans l'environnement $ PATH par défaut. variable. Seuls les utilisateurs privilégiés peuvent écrire à cet emplacement. – Andy
- 1. Fusion de fichiers binaires
- 2. nécessite 'rubygems' ne fonctionne pas
- 3. Appel d'un script à partir d'une racine setuid C - le script ne s'exécute pas en tant que root
- 4. Quels fichiers ne doivent être que chez Root?
- 5. dispositifs de montage permettent pas de binaires
- 6. La macro Visual Studio 2008 pour le bâtiment ne bloque pas le thread
- 7. Package Installer Visual Studio bâtiment ne
- 8. Pourquoi les blocs de débordement dans une base de données ne sont-ils pas binaires?
- 9. Pourquoi webmin ne peut-il pas ouvrir les fichiers dans les répertoires qui ne sont pas exécutables dans le monde?
- 10. Eclipse CDT sur Snow Leopard ne trouve pas les fichiers binaires
- 11. Pourquoi l'application Windows nécessite-t-elle le framework .Net 3.5
- 12. Pourquoi ne puis-je pas ajouter des binaires partagés au contrôle de source TFS 2008?
- 13. Convertir des fichiers .class en fichiers binaires?
- 14. Breadcrumbs bâtiment MySQL
- 15. Pourquoi le côté serveur ne comprend-il pas le travail?
- 16. Pourquoi mon code PHP ne "dissociera" pas les fichiers texte?
- 17. Pourquoi Capistrano ne copie-t-il pas mes fichiers?
- 18. Validation de structure pour les fichiers binaires
- 19. Pourquoi ne puis-je pas écrire de fichiers dans le répertoire de documents de mon application?
- 20. Pourquoi GetProperty ne parvient pas à le trouver?
- 21. Pourquoi X509Certificate2 ne parvient parfois pas à créer à partir d'un blob?
- 22. Pourquoi le compilateur nécessite-t-il une syntaxe alambiquée?
- 23. Bâtiment personnalisé Emacs de git
- 24. MySQL ne démarre pas à partir du panneau de commande
- 25. Pourquoi certains fichiers ne sont-ils pas publiés dans le dossier App_Data?
- 26. Comment empêcher Subversion de fusionner des fichiers binaires?
- 27. Le fichier Docx ne parvient pas à télécharger à partir de la page Web
- 28. Écrire des fichiers binaires en utilisant SAS?
- 29. Impossible d'accéder au serveur MySQL, je ne connais pas le mot de passe d'un compte root
- 30. Le provisionnement de fichiers SharePoint ne fonctionne pas
Voulez-vous dire "build from source files"? –
Vous avez peut-être raison. J'ai probablement confondu les termes parce que les gens parlent de binaires quand ils veulent vraiment transformer le code lisible (fichiers source?) En binaires (0 et 1). Mon observation peut être erronée. –