GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Individuelles Programm bearbeiten und neu kompilieren?

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

Das pwd im Binärordner ist nicht dasselbe wie

type pwd
pwd is a shell builtin

wäre es also nicht harmlos, mit dem externen pwd zu experimentieren? Wie das Hinzufügen eines „Hallo Muschel!“ Cout, nur um das Prinzip zu demonstrieren?

Wo ist die Quelle für pwd? Bekommst du es normalerweise mit der Distribution (ich bin auf Debian) oder installierst oder lädst du es irgendwie herunter? Ist es in C? Kompiliere ich es wie jede andere Datei mit gcc und lege das Ergebnis (mit passendem chmod) in einen Ordner, der vom Pfad umfasst ist? Was ist mit Upgrades? Wie Sie verstehen, fehlt mir hier das Gesamtbild.

(Übrigens scheint die Header-Datei nichts damit zu tun zu haben:pwd wie im Passwort, nicht print/present working directory.)

Akzeptierte Antwort:

Wäre es nicht harmlos, mit dem externen pwd zu experimentieren?

Es ist eine schlechte Wette, dass nichts /bin/pwd verwendet . Es hat sich bewährt, in Shell-Skripten – insbesondere solchen, die üblicherweise von root ausgeführt werden – aus Sicherheitsgründen vollständige Pfade für externe Programme anzugeben.

Dennoch könnten Sie sicher ein benutzerdefiniertes pwd erstellen und legen Sie es irgendwo in Ihrem Home-Verzeichnis ab. Wenn das Paket Autoconf verwendet, reicht dies normalerweise aus, um ein Paket zu konfigurieren, das in Ihrem Home-Verzeichnis installiert werden soll:

$ ./configure --prefix=$HOME

Sie könnten etwas wie --prefix=$HOME/pwd-test sagen stattdessen, um Konflikte zu vermeiden.

Solange das Build-System des Pakets korrekt eingerichtet ist, können Sie, wenn Sie es so konfiguriert haben, getrost make install sagen ohne root zu sein, da alle Dateien, die es schreibt, unter dem von Ihnen angegebenen Präfix stehen sollten.

Wo ist die Quelle für pwd?

pwd ist Teil von coreutils . Solche Dinge finden Sie mit der Debian-Paketsuchmaschine heraus.

Bekommst du es normalerweise mit der Distribution (ich verwende Debian)

Sie haben die Distributionsquellen wahrscheinlich noch nicht heruntergeladen, aber ja, es wird als Teil der Debian-Distribution betrachtet. Sie sind in ein Quell-DVD-Set mit sechs (!) DVDs aufgeteilt, das etwa 25 GB umfasst, weshalb die meisten Leute sie nie herunterladen.

Wenn Sie jedoch nicht versuchen, die gesamte Debian-Distribution neu zu erstellen oder eine abgeleitete Distribution zu erstellen, sollten Sie sie wahrscheinlich auch jetzt nicht herunterladen. A la carte Downloads sind in diesem Stadium wahrscheinlich eine bessere Idee.

installierst oder lädst du es irgendwie herunter?

Ja, Sie können auch apt-get verwenden um Quellcode für Pakete zu installieren. Dazu gibt es ein ganzes Kapitel im APT HOWTO.

Verwandte:Möglichkeit, ein Programm bei Power-Events auszuführen?

(Dieses Dokument ist als veraltet markiert, aber ich sehe kein Ersatzdokument.)

Ist es in C?

Aller Wahrscheinlichkeit nach ja.

Kompiliere ich sie wie jede andere Datei mit gcc und lege das Ergebnis (mit passendem chmod) in einen vom Pfad eingeschlossenen Ordner?

Wahrscheinlich führen Sie gcc nicht direkt aus, Sie führen wahrscheinlich die standardmäßige configure ; make ; make install tanzen. Wenn Sie den Quell-Tarball von der Debian-Paketsuchseite herunterladen, werden Sie wahrscheinlich einen INSTALL finden oder README Datei im Tarball, die Bauanweisungen enthält.

Was ist mit Upgrades?

Was ist mit denen? Die Paketsuchmaschine hilft Ihnen, jede gewünschte Version der Software zu finden, und apt-get hilft Ihnen dabei, Änderungen an den Quellen nachzuverfolgen, genau wie bei Binärdateien.

Mir fehlt hier das Gesamtbild.

Dann sollten Sie vielleicht einen Blick in die Debian-Dokumentation werfen.

die Header-Datei scheint nichts damit zu tun zu haben:pwd wie im Passwort, nicht print/present working directory.)

Jep. Es ist ein Utility-Header für C-Programmierer, um Zugriff auf die Benutzerdatenbank zu erhalten. Sagen Sie man 3 getpwent um eine Vorstellung davon zu bekommen, was über diese Schnittstelle verfügbar ist.


Linux
  1. Installieren Sie SoftHSM und greifen Sie über das Java-Programm darauf zu

  2. So installieren und verwenden Sie Telnet unter Debian 11

  3. Erstellen und bearbeiten Sie Benutzer in MySQL

  4. So installieren und konfigurieren Sie Redis unter Debian

  5. So installieren Sie Node.js und NPM unter Debian 11

So installieren Sie Grafana auf Ubuntu 18.04 und Debian 8

Ändern Sie Ihren SSH-Port in Ubuntu und Debian

So installieren und verwenden Sie fail2ban in Ubuntu und Debian

So installieren und konfigurieren Sie Sendmail unter Debian 10

Wie man ein C-Programm unter Linux schreibt und ausführt

Journalctl:So lesen und bearbeiten Sie Systemd-Protokolle