Quali sono i vantaggi di creare strumenti / librerie dalla fonte?


8

Costruendo dalla fonte ottieni qualche vantaggio? Il codice è ottimizzato meglio per la tua architettura hardware? È ottimizzato meglio in generale?

Perché qualcuno dovrebbe scegliere di compilare dal sorgente piuttosto che utilizzare un sistema di gestione dei pacchetti come APT / yum? Se esiste un qualche tipo di guadagno di ottimizzazione, quando questo supera i vantaggi di un sistema di gestione dei pacchetti?


Le tue due scelte non si escludono a vicenda. È possibile personalizzare le origini di un pacchetto o persino impacchettarlo da soli.
Faheem Mitha,

Risposte:


11

La creazione dall'origine fornisce le seguenti opzioni che non sono disponibili quando si utilizza una versione da un gestore di pacchetti binario.

La compilazione dalla fonte consente di:

  • utilizzare le ottimizzazioni specifiche del processore
  • usa l'ultima versione
  • scopri come funzionano la compilazione e i collegamenti (suggerimento da @mattdm)
  • correggere bug, lavori di sviluppo
  • imposta le opzioni di compilazione (es. includi le funzioni X in vim)

1
per un normale utente desktop, il guadagno nelle ottimizzazioni specifiche del processore vale il costo della complessità della gestione manuale delle dipendenze tra software? È come un guadagno del 2% o un raddoppio delle prestazioni?
Doug T.

1
@Doug Per i software pesanti della CPU la differenza può essere del 10-20%, per i software desktop tipici la differenza è zero. Se vuoi provare a compilare il software dalla fonte, consiglierei una distribuzione basata sulla fonte (ad esempio Gentoo). È una pessima idea installare software dalla sorgente (a parte software di terze parti installato in / opt) in una distribuzione binaria.
Šimon Tóth

Penso che non valga la pena andare oltre le dipendenze del gestore pacchetti. Tuttavia, esistono sistemi di gestione dei pacchetti basati sull'origine che tengono traccia delle dipendenze e consentono di compilare dall'origine. Il vantaggio sopra elencato che non si ottiene con questa è solo "la versione più recente": il gestore pacchetti ha una versione scelta che funzionerà con il resto della distribuzione.
Shawn J. Goff,

5
L'unica cosa che aggiungerei è: imparare molto di più su ciò che accade sotto il cofano. Questo può valerne la pena.
Mattdm,

7

Ho fatto esattamente questa cosa molto recentemente.

Ho compilato openssl-1.0. Qualcosa dalla sorgente su un sistema Linux Slackware 11.0. Volevo patchare la cosa login-by-password per mettere in pausa per 7 secondi su un login fallito, in modo da tarpitare quei fastidiosi indovinatori di password ssh cinesi.

Ho compilato Apache httpd 2.2.17 sullo stesso sistema Slackware 11.0 perché fornito con Apache 2.0.something e volevo usare un file httpd.conf 2.2.x di un altro sistema.

Vieni a pensarci bene, ho anche compilato Alpine 2.0 (client di posta elettronica, follow-up di pino) per lo stesso sistema. Perché Slackware 11.0? Funziona su una macchina del 2003 con la grafica "Brookdale" di Intel e qualsiasi Slackware successivo non supporta la grafica Intel scarsamente documentata.

Su una macchina diversa, ho rimosso il supporto per chip wireless TI ACX111 da github e ho compilato un nuovo driver, permettendomi di utilizzare una scheda wireless da $ 9.

Inoltre, ricompilo abitualmente i kernel Linux per renderli specifici della macchina su cui girano.

Quindi nel mio caso sono vari motivi di personalizzazione, supporto hardware e "solo perché".

Dato ciò che sappiamo dell'epidemiologia in una popolazione uniforme (http://www.usenix.org/publications/login/2005-12/openpdfs/geer.pdf) perché non tutti compilano dalla fonte sui propri sistemi, con qualunque cosa opzioni di compilazione che scelgono? Ciò renderebbe una popolazione molto più resistente a virus e worm.


Ci sono modi più semplici per rallentare i maltrattamenti di ssh-hamming ... cercare il limite di velocità di iptables. Tale soluzione ha una più ampia applicabilità e inoltre non annulla la garanzia.
vonbrand,

In genere Linux non viene fornito con una garanzia. Slackware 11 ha alcuni anni a questo punto. Stai chiedendo la domanda con FUD, in particolare "paura". "Oh no! Non farlo! Annullerai la garanzia!" Quante volte si fa affidamento su una garanzia? Pochissimi. Tutti vorremmo che qualcun altro si assumesse la responsabilità (soprattutto morale, ma soprattutto finanziaria) di tutte le nostre azioni, ma ciò non può avvenire senza molte conseguenze negative per gli individui e la società. Seguo il mio consiglio e altro: compilare la fonte da soli e assumersi tutte le responsabilità. Non dare la colpa a nessun altro.
Bruce Ediger,

Oh andiamo. Se si tratta di RHEL o SLES (o anche Ubuntu LTS con un contratto di supporto), sicuramente c'è una garanzia da annullare. Se fosse Debian o Fedora, una segnalazione di bug per il tuo OpenSSH compromesso verrà chiusa senza guardare due volte.
vonbrand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.