GNU/Linux >> Tutoriels Linux >  >> Linux

Modifier et recompiler un programme individuel ?

whereis pwd
pwd: /bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz

Le pwd dans le dossier binaire n'est pas le même que

type pwd
pwd is a shell builtin

alors ne serait-il pas anodin de faire quelques expérimentations sur le pwd externe ? Comme, ajouter un "Hello shell!" cout juste pour démontrer le principe ?

Où est la source de pwd? L'obtenez-vous généralement avec la distribution (je suis sur Debian) ou l'installez-vous ou le téléchargez-vous d'une manière ou d'une autre? C'est en C ? Dois-je le compiler comme n'importe quel autre fichier avec gcc et mettre le résultat (avec chmod approprié) dans un dossier entouré par le chemin? Qu'en est-il des mises à niveau ? Comme vous le comprenez, il me manque la vue d'ensemble ici.

(Au fait, le fichier d'en-tête semble n'avoir aucun rapport :pwd comme mot de passe, pas le répertoire de travail print/present.)

Réponse acceptée :

ne serait-il pas anodin de faire quelques expérimentations sur le pwd externe ?

Il y a fort à parier que rien n'utilise /bin/pwd . Il est recommandé dans les scripts shell, en particulier ceux généralement exécutés par root, de donner des chemins d'accès complets aux programmes externes, pour des raisons de sécurité.

Néanmoins, vous pouvez créer en toute sécurité un pwd personnalisé et placez-le quelque part dans votre répertoire personnel. Si le paquet utilise Autoconf, cela suffit généralement pour configurer un paquet à installer sous votre répertoire personnel :

$ ./configure --prefix=$HOME

Vous pourriez dire quelque chose comme --prefix=$HOME/pwd-test au lieu de cela, pour éviter toute possibilité de conflit.

Tant que le système de construction du paquet est configuré correctement, lorsque vous l'avez configuré comme ça, vous pouvez dire en toute sécurité make install sans être root, car tous les fichiers qu'il écrit doivent être placés sous le préfixe que vous avez donné.

Où est la source de pwd ?

pwd fait partie de coreutils . Vous trouvez de telles choses avec le moteur de recherche de paquets Debian.

Est-ce que vous l'obtenez généralement avec la distribution (je suis sur Debian)

Vous n'avez probablement pas encore téléchargé les sources de distribution, mais oui, cela fait partie de la distribution Debian. Ils sont séparés en un ensemble de DVD source à six disques (!), comprenant environ 25 Go, c'est pourquoi la plupart des gens ne les téléchargent jamais.

À moins que vous n'essayiez de faire quelque chose comme reconstruire toute la distribution Debian ou créer une distribution dérivée, vous ne devriez probablement pas les télécharger même maintenant. À la carte les téléchargements sont probablement une meilleure idée à ce stade.

l'installez-vous ou le téléchargez-vous d'une manière ou d'une autre ?

Oui, vous pouvez également utiliser apt-get pour installer le code source des packages. Il y a un chapitre entier dans le APT HOWTO à ce sujet.

En relation :comment exécuter un programme sur des événements de puissance ?

(Ce document est marqué Obsolète, mais je ne vois pas de document de remplacement.)

Est-ce en C ?

Selon toute vraisemblance, oui.

Dois-je le compiler comme n'importe quel autre fichier avec gcc et mettre le résultat (avec chmod approprié) dans un dossier entouré par le chemin ?

Vous n'exécutez probablement pas gcc directement, vous faites probablement le configure ; make ; make install Danse. Si vous téléchargez l'archive source depuis la page de recherche de paquets Debian, vous trouverez probablement un INSTALL ou README fichier dans l'archive tar, qui contiendra les instructions de compilation.

Qu'en est-il des mises à jour ?

Et eux? Le moteur de recherche de packages vous aidera à trouver n'importe quelle version du logiciel que vous êtes susceptible de vouloir, et apt-get vous aidera à suivre les modifications apportées aux sources comme il le fera pour les fichiers binaires.

Il me manque la vue d'ensemble ici.

Vous voudrez peut-être jeter un coup d'œil à la documentation Debian, alors.

le fichier d'en-tête semble n'avoir aucun rapport :pwd comme mot de passe, pas imprimer/présenter le répertoire de travail.)

Ouais. C'est un en-tête utilitaire pour les programmeurs C, pour accéder à la base de données des utilisateurs. Dites man 3 getpwent pour avoir une idée de ce qui est disponible via cette interface.


Linux
  1. Différence étrange entre Pwd et /bin/pwd ?

  2. Comment installer et utiliser Telnet sur Debian 11

  3. Créer et modifier des utilisateurs dans MySQL

  4. Comment installer et configurer Redis sur Debian

  5. Comment installer Node.js et NPM sur Debian 11

Comment installer Grafana sur Ubuntu 18.04 et Debian 8

Changez votre port SSH dans Ubuntu et Debian

Comment installer et utiliser fail2ban dans Ubuntu et Debian

Comment installer et configurer Sendmail sur Debian 10

Comment écrire et exécuter un programme C sous Linux

Journalctl :comment lire et modifier les journaux Systemd