2015-08-10 25 views
7

Sono nuovo di Linux (nuovo come installato ieri), ne ho bisogno per il mio corso di programmazione nell'università e mi è stato detto di installare versioni specifiche di programmi specifici, ma sebbene io abbiamo usato apt-get install per installarli (avendo già fatto apt-get update) non sono nella versione corretta.come aggiornare make 3.81 linux

I programmi di cui ho bisogno sono 4.0 e valgrind 3.10.1.

apt-get install fa 3.81 e valgrind 3.10.0.SVN.

Ho provato a digitare "apt-get install make4.0" e "apt-get install valgrind10.3.1" senza alcun risultato. Li ho scaricati da internet e ho seguito le istruzioni che potevo capire per installare le versioni più recenti, ma continua a dire che ho i più vecchi. (Non sono sicuro di poter postare link diretti qui, se posso farmelo sapere e posterò da dove li ho presi).

Cosa ho sbagliato? Come posso risolvere questo?

Attualmente sto usando Linux Mint.

Grazie per qualsiasi risposta in anticipo.

+1

La versione corrente di ['valgrind'] (http://www.valgrind.org/) è 3.10.1, non 10.3.1. La versione corrente di GNU make è 4.1. È possibile ottenere l'origine e quindi compilare sulla macchina. È probabile che sia semplice.Pensaci attentamente prima di installare le nuove versioni sul software esistente. Non lo farei; Creerei una nuova directory, come '/ usr/gnu' o'/opt/software' e inserirò i nuovi programmi e aggiungerò '/ usr/gnu/bin' o'/opt/software/bin' prima delle posizioni standard nel mio PERCORSO. Oppure puoi usare '/ usr/local' - o qualsiasi altro nome che desideri. –

+0

Siamo spiacenti! Quella era la mia dislessia (o qualcosa di simile), in realtà dovevo leggere il tuo commento un paio di volte prima di rendermi conto che c'era una differenza tra l'ordine dei numeri che hai scritto. Ora ho scritto correttamente "sudo apt-get install valgrind 3.10.1", ha fatto un sacco di cose che non aveva fatto prima suppongo perché stavo inserendo numeri diversi, ma quando ho scritto "valgrind --version" diceva ancora "valgrind-3.10.0.SVN": /. Ok, questa è la mia prima volta qui, non avevo visto che il tuo commento fosse più grande di quello, andando a leggerlo ora. – DJA

+0

L'intorpidimento dei numeri di versione può affliggere chiunque. Se 'apt-get' non otterrà le nuove versioni, non saranno ancora ufficialmente disponibili tramite quel meccanismo. Devi decidere se la versione più recente è cruciale per te. In caso contrario, vai con ciò che è disponibile - ciò che hai già ottenuto. Questo è di gran lunga il più semplice. Se pensi che la nuova versione sia critica, devi procurarti il ​​codice da solo e compilare e installare da te. Non è molto difficile, ma è più difficile dell'installazione di software precostruito. Ho 3.11.0.SVN per la versione che ho creato (qualche tempo fa) da un clone del repository SVN. –

risposta

15

A causa di una segnalazione di bug Debian non risolta da lungo tempo, GNU Make è rimasto per lungo tempo il vecchio 3.81 in Debian e, di conseguenza, nelle distribuzioni basate su Debian come Ubuntu e Mint.

The latest Debian release, Jessie, has upgraded to 4.0, quindi le distribuzioni basate su Debian avranno quell'aggiornamento. Tuttavia, it is better to use 4.1.

Questo è stato discusso molte volte sulla mailing list GNU Make e elsewhere.

Quindi per ottenere una versione più recente, è necessario compilarlo da zero. Questo è facile:

  1. installare i pacchetti richiesti (gcc, make e tali).
  2. Aprire una shell (se si sta utilizzando la GUI, una finestra di terminale).
  3. Digitare i seguenti comandi (o qualcosa di equivalente, ad esempio, è possibile utilizzare curl invece di wget):

    cd /tmp 
    wget http://ftp.gnu.org/gnu/make/make-4.1.tar.gz 
    tar xvf make-4.1.tar.gz 
    cd make-4.1/ 
    ./configure 
    make 
    sudo make install 
    rm -rf make-4.1.tar.gz make-4.1 
    

Ora, make 4.1 è in /usr/local/bin/make.

È possibile impostarlo come valore predefinito make aggiungendo il prefisso /usr/local/bin alla variabile $PATH nel file di avvio della shell; ad esempio, in .profile o .bashrc se si utilizza la shell bash.

Non tentare di installare un make auto-compilato (o qualsiasi altra cosa che non proviene dal gestore pacchetti della distribuzione) in /bin o /usr/bin; facendo ciò confonderai il tuo gestore di pacchetti.

+0

Debian squeeze e wheezie sono a 3.81, jesse/stretch a 4.0. Che più o meno si sincronizza con il rilascio di GNU make 4.0 (che è stato rilasciato dopo wheezie e prima di jesse). Sarei interessato a quale bug ti stai riferendo. Qualche link? – DevSolar

+0

Wow! Buone notizie. Ho corretto la mia formulazione e aggiunto un link a una pagina che rimanda al rapporto bug. – reinierpost

+0

Grazie per le informazioni, +1. – DevSolar