====== Build your own local development environment ====== [ __[[vlsi:Home|Home]]__ ] [ __[[vlsi:workbook|Design WorkBook]]__ ] [ __[[vlsi:workbook:computing#contents|Back to index]]__ ] **Contents** * Introduction * Seeting up the local area * Build gcc and from source * Installing RPM packages in the local area * .... //[[http://openwall.info/wiki/internal/gcc-local-build]]// ===== Introduction ===== create your own, additional, RPM database and **install software in your local space**. make a full environment for programming in a home folder build your own quasi-filesystem under ''~/local'' No root privileges, g might not be installed! run the ''configure'' script with the ''--prefix'' option Install a rpm in home directory as non-root ===== Setting up the environment ===== mkdir ~/local create a ''/usr/local/''-like hierarchy E poi la si prepara con una struttura analoga a quella di ''/usr/local'', cd ~/local mkdir bin etc include lib lib64 libexex sbin share src tmp La directory ''~/local'' diventa equivalente locale della system directory ''/usr'' che contiene tutto quello che e' usato da uno standard user Oppure posso usare direttamente la dot directory ''~/.local'' and ''~/.local/share'' nella home where locally installed program data are stored See also //[[http://www.ubooboo.net/zimPage.php?page=Local_Install]]// \\ //[[http://blog.sanctum.geek.nz/compiling-in-home/]]// setenv PREFIX $HOME/local setenv EPREFIX $PREFIX ''LD_LIBRARY_PATH'' deve adesso includere anche ''$HOME/local/lib'' and ''$HOME/local/lib64'' setenv PATH $PREFIX/bin:$PATH setenv LD_LIBRARY_PATH $HOME/lib:$HOME/local/lib64:$LD_LIBRARY_PATH #setenv C_INCLUDE_PATH $PREFIX/include #setenv CPLUS_INCLUDE_PATH $PREFIX/include #setenv MANPATH $PREFIX/share/man:$PREFIX/man:$MANPATH #setenv CFLAGS "-I$PREFIX/include" #setenv LDFLAGS "-L$PREFIX/lib" ===== Installing RPM packages in the local area ===== How to install RPM packages without root privileges or ''sudo''. See also //[[http://warrickball.blogspot.it/2011/03/installing-rpm-software-without-admin.html]]// \\ //[[http://ajaya.name/?p=6353]]// Setup a private RPM database Create a local database, make the folder that will store your database cd $HOME/local mkdir -p $HOME/local/var/lib/rpm /var/lib/rpm/ is a usual location for the RPM database Poi inizializzo il database locale, rpm --initdb --root $HOME/local --dbpath $HOME/local/var/lib/rpm e copio in esso il contenuto di ''/var/lib/rpm'' cosi' RPM sa quali pacchetti sono gia' stati installati, cp /var/lib/rpm/* $HOME/local/var/lib/rpm/ Poi devo vedere se e rilocabile, rpm -qip package.rpm e se ha dipendenze non soddisfatte, rpm -ivh package.rpm che non lo installa pero' mi dice se i file estratti finiscono tutti a partire da /usr/xxx Se tutti partono da /usr posso rilocare il pacchetto dicendo di usare ~/local come /usr --relocate /usr=$HOME/local rpm --dbpath $HOME/local/var/lib/rpm --relocate /usr=$HOME/local --nodeps -ivh package.rpm \\ \\ More details about the usage of ''rpm'' can be found at \\ //[[http://www.nordugrid.org/documents/rpm_for_everybody.html]]// ===== Compiling and installing software from source ===== use the ''--prefix'' switch of the ''configure'' script, ./configure --prefix=$HOME/local [other options] make make install ./configure --prefix=$HOME/local [other options] && make && make install ===== Build the latest version of gcc and g++ from source ===== See also [[http://stackoverflow.com/questions/9316118/installing-gcc-as-non-root]] In modo da arrivare ad avere /users//local/bin/gcc or \\ /users//local/bin/g++ Prerequisites: Bison, cd ~/local/src wget http://ftp.gnu.org/gnu/bison/bison-2.7.tar.gz tar -xzf bison-2.7.tar.gz ./configure --help ./configure --prefix=$HOME/local && make && make install Ok... Read [[http://gcc.gnu.org/install/]] //[[http://openwall.info/wiki/internal/gcc-local-build]]// Premessa... per compilare gcc serve gia avere un gcc! gcc compiler should be already installed, which gcc /usr/bin/gcc but not ''g++'' which g++ g++: Command not found. gcc -v | grep version Ok You need both the packages, ''gcc-core'' and ''gcc-g++'' Dowload the source code from one ftp mirror, //[[http://gcc.gnu.org/mirrors.html]]// As an example Packages: ''gcc-core-4.x.y.tar.gz'', ''gcc-g++.4.x.y.tar.gz'' cd ~/local/src wget http://gcc-uk.internet.bs/releases/gcc-4.1.2/gcc-core-4.x.y.tar.gz wget http://gcc-uk.internet.bs/releases/gcc-4.1.2/gcc-g++-4.x.y.tar.gz tar -xvzf gcc-core-4.x.y.tar.gz tar -xvzf gcc-g++-4.x.y.tar.gz Importante! Buildare tutto in una cartella diversa da quella dei sorgenti! mkdir build cd build ./../src/configure --prefix=$HOME/.local --enable-languages='c c++' compile your own version of ''gcc'' and ''g++'' ===== Install ROOT ===== Connect via FTP to root.cern.ch cd ~/.local/opt wget ftp://root.cern.ch/root/root_v5.32.04.source.tar.gz tar -xzf root_v5.32.04.source.tar.gz cd root ./configure --help ./configure [arch] [options] make make install ===== AdobeReader ===== Go [[vlsi:workbook:computing:local:acroread|here]] See also //[[http://www.iram.fr/~roche/linux/softwares/LocalInstallation.html]]// tar -xzf package.tar.gz cd ./INSTALL Enter installation directory <$HOME/.local> ====== ====== \\ ---- Last update: [[pacher@NOSPAMto.infn.it|Luca Pacher]] - July 31, 2013 ~~NOTOC~~