{"id":46498,"date":"2025-09-20T21:53:29","date_gmt":"2025-09-21T00:53:29","guid":{"rendered":"https:\/\/mastertrend.info\/?p=46498"},"modified":"2025-09-20T21:54:03","modified_gmt":"2025-09-21T00:54:03","slug":"compilare-su-linux","status":"publish","type":"post","link":"https:\/\/mastertrend.info\/it\/compilar-en-linux\/","title":{"rendered":"Compila su Linux: esegui in pochi minuti con 3 comandi \u26a1"},"content":{"rendered":"<h2>Compilazione su Linux: 3 passaggi per creare file binari \ud83d\udd25<\/h2>\n<h3 class=\"title icon i-list\">Riepilogo chiave<\/h3>\n<ul>\n<li>La maggior parte dei software segue un processo in 3 fasi per compilare il codice sorgente: <code>.\/configure &amp;&amp; make &amp;&amp; make install<\/code>.<\/li>\n<li>La sceneggiatura <strong>configurare<\/strong> controlla le dipendenze, <strong>Fare<\/strong> genera l&#039;eseguibile e strumenti come <em>autoconf\/automake<\/em> automatizzare questo processo.<\/li>\n<li>L&#039;installazione \u00e8 solitamente facoltativa, rendendo pi\u00f9 semplice l&#039;esecuzione dei comandi copiati nelle directory in <code>SENTIERO<\/code> del sistema.<\/li>\n<\/ul>\n<p>La compilazione dal codice sorgente pu\u00f2 sembrare intimidatoria rispetto all&#039;utilizzo dei gestori di pacchetti, ma con tre comandi di base, il processo \u00e8 semplice e diretto. \ud83d\ude80<\/p>\n<h2 id=\"que-es-compilar-desde-fuente\">Che cosa significa compilare dal codice sorgente?<\/h2>\n<p>I programmi utilizzati possono essere interpretati o compilati. I programmi interpretati sono file di testo contenenti codice che un altro programma (l&#039;interprete) esegue in tempo reale. I programmi compilati, invece, sono file binari contenenti codice macchina pronto per essere eseguito.<\/p>\n<p>Gli eseguibili compilati sono molto comuni, soprattutto nei programmi di grandi dimensioni. Quando si compila dal codice sorgente,<a href=\"https:\/\/pt.wikipedia.org\/wiki\/GNU_Compiler_Collection\" target=\"_blank\" rel=\"noopener\" data-schema-attribute=\"mentions\">sas un compilatore come <code>gcc<\/code><\/a> per convertire il codice in un programma eseguibile, spesso distribuito su pi\u00f9 file.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/04\/Construye-software-Linux-desde-el-codigo-fuente-en-3-sencillos.jpg\" alt=\"Terminale Linux che mostra l&#039;installazione di Steam con i comandi.\" width=\"2100\" height=\"1400\" title=\"\"><\/picture><\/figure>\n<p>Il processo di compilazione pu\u00f2 essere esteso e complesso, motivo per cui di solito \u00e8 automatizzato con programmi come <code>Fare<\/code>I file <em>makefile<\/em> controllare come viene creato l&#039;eseguibile finale.<\/p>\n<p>Nei grandi progetti, questi <em>makefile<\/em> Possono essere cos\u00ec complessi che vengono generati automaticamente con strumenti come <em>autoconf<\/em> E <em>marca di automobili<\/em> per garantire la compatibilit\u00e0 tra diverse architetture. \ud83d\udee0\ufe0f<\/p>\n<h2 id=\"proceso-3-pasos-configure-make-install\">Processo di compilazione in 3 fasi: configurazione, creazione, installazione<\/h2>\n<p>La maggior parte dei software utilizza questo schema di base per compilare dal codice sorgente:<\/p>\n<pre><code class=\"hljs bash\">.\/configure &amp;&amp; make &amp;&amp; make install\r\n<\/code><\/pre>\n<p>Programmi popolari come Apache utilizzano questa sequenza (o qualche variante), come <a title=\"La struttura delle directory di Linux, spiegata\" href=\"https:\/\/mastertrend.info\/it\/struttura-delle-directory-di-linux\/\" target=\"_blank\" rel=\"noopener\" data-wpil-monitor-id=\"6412\">spiega il suo fascicolo<\/a> INSTALLARE:<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/04\/Construye-software-Linux-desde-el-codigo-fuente-en-3-sencillos.png\" alt=\"Frammento del file Apache INSTALL che mostra i passaggi di installazione .\/configure, make e make.\" width=\"997\" height=\"461\" title=\"\"><\/picture><\/figure>\n<p>Anche Node.js segue questa struttura, come indicato nel suo file BUILDING.md:<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/04\/1745710606_229_Construye-software-Linux-desde-el-codigo-fuente-en-3-sencillos.png\" alt=\"Frammento dal file Node.js BUILDING.md che mostra .\/configure, make e make install.\" width=\"1294\" height=\"711\" title=\"\"><\/picture><\/figure>\n<p>Ogni progetto potrebbe presentare leggere variazioni rispetto a questa stringa di comando. Utilizzare l&#039;operatore logico AND (<code>&&<\/code>) arresta il processo se uno qualsiasi dei passaggi fallisce:<\/p>\n<pre><code class=\"hljs bash\">.\/configure &amp;&amp; make &amp;&amp; make install\r\n<\/code><\/pre>\n<p>In alternativa, \u00e8 possibile eseguire ogni comando separatamente su una singola riga con un punto e virgola, anche se in questo modo verranno eseguiti tutti i comandi senza fermarsi se qualcuno fallisce:<\/p>\n<pre><code class=\"hljs bash\">.\/configura; crea; crea installazione\r\n<\/code><\/pre>\n<p>Puoi anche fare le tre righe separatamente:<\/p>\n<pre><code class=\"hljs bash\">.\/configura make make install\r\n<\/code><\/pre>\n<p>Se vuoi solo provare il programma senza installarlo, puoi saltare <code>effettuare l&#039;installazione<\/code> ed eseguirlo dalla sua cartella.<\/p>\n<section class=\"emaki-custom-block emaki-custom-tip\" data-nosnippet=\"\">Alcuni repository hanno lo script <code>configurare<\/code> Ready, mentre altri (come grep) richiedono prima l&#039;esecuzione di un altro script per generarlo. Fai sempre riferimento ai file INSTALL, BUILD o README per seguire le raccomandazioni del progetto. \ud83d\udccb<\/section>\n<h2 id=\"como-inicia-configure\">Come .\/configure avvia il processo<\/h2>\n<p>La sceneggiatura <code>configurare<\/code> \u00c8 il punto di partenza del processo di compilazione, che adatta il progetto al tuo ambiente.<\/p>\n<p>Questo script verifica le dipendenze necessarie per il progetto, verificandone le versioni e la disponibilit\u00e0. Al termine, genera un file denominato <code>Makefile<\/code> per la fase successiva.<\/p>\n<p>La sceneggiatura <code>configurare<\/code> offre molte opzioni configurabili con <code>.\/configure --help<\/code>, consentendo di personalizzare i dettagli della build.<\/p>\n<section class=\"emaki-custom-block emaki-custom-tip\" data-nosnippet=\"\">Tanto <code>configurare<\/code> COME <code>Fare<\/code> generare molto output sullo schermo. Utilizzare l&#039;opzione <code>--Tranquillo<\/code> se vuoi eseguire questi comandi senza mostrare cos\u00ec tanti dettagli. \ud83e\udd2b<\/section>\n<p>Se manca lo script <code>configurare<\/code>, alcuni progetti includono uno script come <code>autogen.sh<\/code> per generarlo. Ad esempio, htop lo usa:<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/04\/1745710607_775_Construye-software-Linux-desde-el-codigo-fuente-en-3-sencillos.png\" alt=\"Output dello script autogen.sh nel codice sorgente htop che genera configure.\" width=\"877\" height=\"621\" title=\"\"><\/picture><\/figure>\n<p>Progetti molto semplici o progetti scritti in altre lingue potrebbero non avere <code>configurare<\/code>In questo caso il processo si svolge in due fasi: <code>crea e installa<\/code>.<\/p>\n<p>La sceneggiatura <code>configurare<\/code> Controlla anche i dettagli dell&#039;installazione, come il parametro <code>--prefisso<\/code>, che imposta la directory radice di installazione. Per impostazione predefinita \u00e8 <code>\/usr\/locale<\/code>, ma puoi modificarlo per organizzare meglio i tuoi file.<\/p>\n<h2 id=\"hacer-la-mayor-parte-del-trabajo\">il make fa la maggior parte del lavoro<\/h2>\n<p>Dopo <code>configurare<\/code> genera un <code>Makefile<\/code>, la compilazione vera e propria del software inizia con <code>Fare<\/code>.<\/p>\n<p>Questo programma legge il <code>Makefile<\/code> e segue le regole per decidere quali file creare o aggiornare. Il <code>Makefile<\/code> scritti a mano sono facili da comprendere per chi conosce la sintassi.<\/p>\n<p>Ad esempio, questo <code>Makefile<\/code> semplice compila un programma che dipende dal file <code>programma.c<\/code>:<\/p>\n<pre><code class=\"hljs makefile\">programma: programma.c gcc -o programma programma.c\r\n<\/code><\/pre>\n<p><code>Fare<\/code> controlla se <code>programma.c<\/code> \u00e8 cambiato dall&#039;ultima compilazione. Se non \u00e8 cambiato, non fare nulla; se \u00e8 cambiato, compila con <code>gcc<\/code>.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/04\/1745710607_894_Construye-software-Linux-desde-el-codigo-fuente-en-3-sencillos.jpg\" alt=\"Primo piano dei tasti illuminati della Das Keyboard 6 Professional.\" width=\"1920\" height=\"1080\" title=\"\"><\/picture><\/figure>\n<p>IL <code>makefile<\/code> generati automaticamente sono solitamente molto pi\u00f9 complessi. Ad esempio, il <code>file di creazione<\/code> htop ha 2.440 linee:<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/04\/1745710607_705_Construye-software-Linux-desde-el-codigo-fuente-en-3-sencillos.png\" alt=\"Frammento del Makefile generato automaticamente per il progetto htop.\" width=\"850\" height=\"660\" title=\"\"><\/picture><\/figure>\n<p>Ma non \u00e8 necessario comprendere ogni dettaglio. A meno che non modifichi il codice sorgente, eseguilo e basta. <code>Fare<\/code> e lasciare che il sistema se ne occupi.<\/p>\n<p>Il passo <code>Fare<\/code> Potrebbe richiedere minuti o pi\u00f9 per progetti di grandi dimensioni. Se fallisce, di solito \u00e8 dovuto a dipendenze mancanti. Il vantaggio \u00e8 che <code>Fare<\/code> salva i progressi e riprende da dove si era interrotto quando si esegue di nuovo.<\/p>\n<h2 id=\"finalizando-con-make-install\">Completamento con make install<\/h2>\n<p>Dopo la compilazione, l&#039;eseguibile creato si trova solitamente nella radice del progetto o in una sottodirectory chiamata <code>bidone<\/code>Puoi eseguirlo utilizzando il percorso completo:<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/04\/1745710607_488_Construye-software-Linux-desde-el-codigo-fuente-en-3-sencillos.png\" alt=\"L&#039;esecuzione di make nella directory cli crea la sottodirectory bin con l&#039;eseguibile finale.\" width=\"862\" height=\"381\" title=\"\"><\/picture><\/figure>\n<p>Questa soluzione \u00e8 utile per i test, ma a lungo termine sar\u00e0 opportuno installarla in un luogo accessibile.<\/p>\n<p>L&#039;obiettivo <code>installare<\/code> che definisce il <code>file di creazione<\/code> Copia i file necessari e imposta i permessi. La posizione predefinita \u00e8 <code>\/usr\/local\/bin<\/code>, anche se puoi cambiarlo con <code>--prefisso<\/code>.<\/p>\n<p>Se non hai i permessi per quella cartella, esegui <code>sudo make install<\/code> e fornisce la password dell&#039;amministratore.<\/p>\n<p>La directory di installazione deve essere inclusa nella variabile <code>SENTIERO<\/code> per poter eseguire il programma solo con il suo nome, senza specificare il percorso completo.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 768px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 481px)\" data-=\"\" \/><\/picture> <picture><source media=\"(min-width: 0px)\" data-=\"\" \/><\/picture> <picture><\/picture><\/figure>","protected":false},"excerpt":{"rendered":"<p>Compilazione su Linux: padroneggia .\/configure &amp;&amp; make &amp;&amp; make install in 3 passaggi, evita i pacchetti e ottieni subito il pieno controllo del software. \ud83d\udee0\ufe0f\u26a1<\/p>","protected":false},"author":1,"featured_media":72931,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ai_generated_summary":"","iawp_total_views":49,"jnews-multi-image_gallery":[],"jnews_single_post":{"format":"standard","override":[{"template":"1","parallax":"1","fullscreen":"1","layout":"right-sidebar","sidebar":"default-sidebar","second_sidebar":"default-sidebar","sticky_sidebar":"1","share_position":"top","share_float_style":"share-monocrhome","show_share_counter":"1","show_view_counter":"1","show_featured":"1","show_post_meta":"1","show_post_author":"1","show_post_author_image":"1","show_post_date":"1","post_date_format":"default","post_date_format_custom":"Y\/m\/d","show_post_category":"1","show_post_reading_time":"1","post_reading_time_wpm":"300","post_calculate_word_method":"str_word_count","show_zoom_button":"1","zoom_button_out_step":"2","zoom_button_in_step":"3","show_post_tag":"1","show_prev_next_post":"1","show_popup_post":"1","number_popup_post":"1","show_author_box":"1","show_post_related":"0","show_inline_post_related":"0"}],"image_override":[{"single_post_thumbnail_size":"crop-500","single_post_gallery_size":"crop-500"}],"trending_post_position":"meta","trending_post_label":"Trending","sponsored_post_label":"Sponsored by","disable_ad":"0","subtitle":""},"jnews_primary_category":[],"jnews_social_meta":[],"jnews_review":[],"enable_review":"","type":"percentage","name":"","summary":"","brand":"","sku":"","good":[],"bad":[],"score_override":"","override_value":"","rating":[],"price":[],"jnews_override_counter":{"view_counter_number":"0","share_counter_number":"0","like_counter_number":"0","dislike_counter_number":"0"},"footnotes":""},"categories":[1435],"tags":[1445,1821,1558],"class_list":["post-46498","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales","tag-evergreencontent","tag-linux","tag-techtips"],"_links":{"self":[{"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/posts\/46498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/comments?post=46498"}],"version-history":[{"count":0,"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/posts\/46498\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/media\/72931"}],"wp:attachment":[{"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/media?parent=46498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/categories?post=46498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mastertrend.info\/it\/wp-json\/wp\/v2\/tags?post=46498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}