GNU/Linux >> Linux Esercitazione >  >> Linux

Modificare e ricompilare il programma individuale?

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

Il pwd nella cartella binaria non è lo stesso di

type pwd
pwd is a shell builtin

quindi non sarebbe innocuo fare qualche sperimentazione sulla pwd esterna? Ad esempio, aggiungendo un "Hello shell!" cout solo per dimostrare il principio?

Dov'è la fonte per pwd? Di solito lo ottieni con la distribuzione (sono su Debian) o lo installi o scarichi in qualche modo? È in C? Lo compilo come qualsiasi altro file con gcc e inserisco il risultato (con chmod adatto) in una cartella racchiusa nel percorso? E gli aggiornamenti? Come capisci, qui mi manca il quadro generale.

(A proposito, il file di intestazione sembra non essere correlato:pwd come nella password, non stampa/presenta la directory di lavoro.)

Risposta accettata:

non sarebbe innocuo fare qualche sperimentazione sulla pwd esterna?

È una cattiva scommessa che nulla usi /bin/pwd . È buona norma negli script di shell, in particolare quelli comunemente eseguiti da root, fornire percorsi completi a programmi esterni, per motivi di sicurezza.

Tuttavia, puoi tranquillamente creare un pwd personalizzato e mettilo nella tua home directory da qualche parte. Se il pacchetto usa Autoconf, questo è di solito sufficiente per configurare un pacchetto da installare nella tua home directory:

$ ./configure --prefix=$HOME

Potresti dire qualcosa come --prefix=$HOME/pwd-test invece, per evitare ogni possibilità di conflitto.

Finché il sistema di compilazione del pacchetto è impostato correttamente, dopo averlo configurato in questo modo puoi tranquillamente dire make install senza essere root, perché tutti i file che scrive dovrebbero andare sotto il prefisso che hai fornito.

Dov'è la fonte per pwd?

pwd fa parte di coreutils . Puoi scoprire queste cose con il motore di ricerca dei pacchetti Debian.

Di solito lo ottieni con la distribuzione (sono su Debian)

Probabilmente non hai ancora scaricato i sorgenti della distribuzione, ma sì, è considerata parte della distribuzione Debian. Sono separati in un set di DVD sorgente da sei dischi (!), che comprende circa 25 GB, motivo per cui la maggior parte delle persone non li scarica mai.

A meno che tu non stia cercando di fare qualcosa come ricostruire l'intera distribuzione Debian o creare una distribuzione derivata, probabilmente non dovresti scaricarli nemmeno adesso. A la carte i download sono probabilmente un'idea migliore in questa fase.

in qualche modo lo installi o lo scarichi?

Sì, puoi anche usare apt-get per installare il codice sorgente per i pacchetti. C'è un intero capitolo nell'APT HOWTO su questo.

Correlati:modo di eseguire un programma su eventi di alimentazione?

(Quel documento è contrassegnato come Obsoleto, ma non vedo un documento sostitutivo.)

È in C?

Con ogni probabilità sì.

Lo compilo come qualsiasi altro file con gcc e metto il risultato (con chmod adatto) in una cartella racchiusa nel percorso?

Probabilmente non esegui direttamente gcc, probabilmente esegui lo standard configure ; make ; make install danza. Se scarichi il tarball sorgente dalla pagina di ricerca dei pacchetti Debian, probabilmente troverai un INSTALL o README file nel tarball, che conterrà le istruzioni di compilazione.

E gli aggiornamenti?

Che ne pensi di loro? Il motore di ricerca dei pacchetti ti aiuterà a trovare qualsiasi versione del software che desideri e apt-get ti aiuterà a tenere traccia delle modifiche ai sorgenti proprio come farà per i binari.

Mi manca il quadro generale qui.

Allora potresti voler dare un'occhiata alla documentazione Debian.

il file di intestazione sembra non essere correlato:pwd come nella password, non print/present directory di lavoro.)

Sì. È un'intestazione di utilità per i programmatori C, per ottenere l'accesso al database dell'utente. Dì man 3 getpwent per avere un'idea di cosa è disponibile attraverso quell'interfaccia.


Linux
  1. Installa SoftHSM e accedi tramite il programma Java

  2. Strana differenza tra Pwd e /bin/pwd?

  3. Come installare e utilizzare Telnet su Debian 11

  4. Crea e modifica utenti in MySQL

  5. Come installare e configurare Redis su Debian

Come installare Grafana su Ubuntu 18.04 e Debian 8

Cambia la tua porta SSH in Ubuntu e Debian

Come installare e utilizzare fail2ban in Ubuntu e Debian

Come installare e configurare Sendmail su Debian 10

Come scrivere ed eseguire un programma C in Linux

Journalctl:come leggere e modificare i log di Systemd