GNU/Linux >> Znalost Linux >  >> Linux

Upravit a překompilovat individuální program?

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

Pwd v binární složce není totéž jako

type pwd
pwd is a shell builtin

takže by nebylo neškodné udělat nějaké experimenty na externím pwd? Jako přidání „Ahoj shell!“ cout jen proto, aby demonstroval princip?

Kde je zdroj pro pwd? Získáváte to obvykle s distribucí (jsem na Debianu) nebo to nějak instalujete nebo stahujete? Je to v C? Zkompiluji to jako jakýkoli jiný soubor s gcc a vložím výsledek (s odpovídajícím chmod) do složky zahrnuté v cestě? A co upgrady? Jak jste pochopili, chybí mi zde celkový obraz.

(Mimochodem, soubor záhlaví se zdá být nesouvisející:pwd jako heslo, nikoli pracovní adresář print/sent.)

Přijatá odpověď:

nebylo by neškodné udělat nějaké experimenty na externím pwd?

Je špatné, že nic nepoužívá /bin/pwd . Ve skriptech shellu – zejména těch, které běžně spouští root – je dobré z bezpečnostních důvodů uvádět úplné cesty k externím programům.

Přesto můžete bezpečně vytvořit vlastní pwd a vložte jej někam do svého domovského adresáře. Pokud balíček používá Autoconf, obvykle to stačí ke konfiguraci balíčku, který se má nainstalovat do vašeho domovského adresáře:

$ ./configure --prefix=$HOME

Můžete říct něco jako --prefix=$HOME/pwd-test místo toho, abyste se vyhnuli jakékoli možnosti konfliktu.

Pokud je systém sestavení balíčku správně nastaven, můžete po jeho konfiguraci bezpečně říci make install aniž by byl root, protože všechny soubory, které zapisuje, by měly spadat pod vámi zadanou předponu.

Kde je zdroj pro pwd?

pwd je součástí coreutils . Takové věci zjistíte pomocí vyhledávače balíčků Debianu.

Obvykle to dostanete s distribucí (jsem na Debianu)

Pravděpodobně jste si ještě nestáhli zdroje distribuce, ale ano, je to považováno za součást distribuce Debian. Jsou rozděleny do šestidiskové (!) zdrojové DVD sady, obsahující asi 25 GB, což je důvod, proč je většina lidí nikdy nestáhne.

Pokud se nesnažíte udělat něco jako přestavět celou distribuci Debianu nebo vytvořit odvozenou distribuci, pravděpodobně byste je neměli stahovat ani nyní. A la carte stahování je v této fázi pravděpodobně lepší nápad.

instalujete nebo stahujete to nějak?

Ano, můžete také použít apt-get k instalaci zdrojového kódu pro balíčky. V APT HOWTO je o tom celá kapitola.

Související:způsob, jak spustit program při událostech napájení?

(Tento dokument je označen jako zastaralý, ale nevidím náhradní dokument.)

Je to v C?

S největší pravděpodobností ano.

Mám to zkompilovat jako jakýkoli jiný soubor s gcc a vložit výsledek (s odpovídajícím chmod) do složky zahrnuté v cestě?

Pravděpodobně nespouštíte gcc přímo, pravděpodobně provádíte standardní konfiguraci configure ; make ; make install tanec. Pokud si stáhnete zdrojový tarball ze stránky pro vyhledávání balíčků Debianu, pravděpodobně najdete INSTALL nebo README soubor v tarballu, který bude obsahovat pokyny pro sestavení.

A co upgrady?

co s nimi? Vyhledávač balíčků vám pomůže najít jakoukoli verzi softwaru, kterou pravděpodobně budete chtít, a apt-get vám pomůže sledovat změny ve zdrojích stejně jako u binárních souborů.

Chybí mi tu velký obrázek.

Pak se můžete podívat na dokumentaci k Debianu.

hlavičkový soubor se zdá být nesouvisející:pwd jako v hesle, nikoli pracovní adresář print/prezentovat.)

Ano. Je to hlavička nástroje pro programátory v jazyce C pro získání přístupu k databázi uživatelů. Řekněte man 3 getpwent abyste získali představu o tom, co je prostřednictvím tohoto rozhraní k dispozici.


Linux
  1. Jak nainstalovat a používat Telnet v Debianu 11

  2. Vytvářejte a upravujte uživatele v MySQL

  3. Jak zjistit a zjistit, že je program v mrtvém bodě?

  1. Nainstalujte SoftHSM a přistupujte k němu prostřednictvím programu Java

  2. Podivný rozdíl mezi Pwd a /bin/pwd?

  3. Jak nainstalovat Node.js a NPM na Debian 11

  1. Upravujte text v Linuxu pomocí KWrite a Kate

  2. Jak nainstalovat a nakonfigurovat Redis na Debianu

  3. Jak napsat a spustit svůj první Qt program v Debianu 10