Sari la conținut
ELFORUM - Forumul electronistilor

Install HOWTO (nu instalare distro ci softuri!!!)


MifTy

Postări Recomandate

există 3 mari moduri de a instala un software oarecare pe (un) linux:

 

1. folosind un repository (sau mai multe) extern (pe net), şi aplicaţia default a distribuţiei pentru treaba asta (apt-get/synaptic pentru distro bazate pe Debian, yum pentru cele bazate pe RH, YaST pentru userii de SuSE, swaret/slapt-get pentru cine foloseşte Slackware, sau majoritatea distribuţiilor bazate pe Slackware, emerge pentru Gentoo).

 

2. copiind pachetele cu binare potrivite de pe siturile aplicaţiilor, sau de pe sourceforge/freshmeat sau alte situri. se foloseşte utilitarul de instalat/dezinstalat pachete local (de cele mai multe ori sunt aceleaşi cu cele de mai sus. în Slack, se foloseşte pkgtool în acest caz)

 

3. copiind arhivele cu sursele şi apoi cu "./configure & make & make install". adică ceea ce este cunoscut sub denumirea de "Sf. Treime a instalării" :yawinkle:

 

NU RECOMAND COPIEREA DE BINARE SAU SURSE DE PE DC++ SAU TORRENT DECÂT DACĂ AVEŢI 100% ÎNCREDERE ÎN CEL CARE LE PUNE LA DISPOZIŢIE!!! RECOMAND FIE FOLOSIREA DE REPO-URI BINECUNOSCUTE, RECUNOSCUTE OFICIAL, SAU RECOMANDATE DE PERSOANE DE ÎNCREDERE. DE ASEMENEA, FTP-URILE ÎNTREŢINUTE DE CREATORII/MENŢINĂTORII SOFTURILOR TREBUIE SĂ FIE PRIMELE LUATE ÎN CALCUL ÎN ASEMENEA CAZURI!!!

 

mai nou, există pachete cu extensia .run sau .autopackage.

dacă luaţi asemenea pachete, locul de unde le luaţi (cel mai adesea situri ale creatorilor) este cel unde veţi afla şi cum anume se folosesc (modurile astea sunt în funcţie de utilitarele folosite la crearea lor, şi acestea încă nu sunt standard pe majoritatea distribuţiilor!!!).

 

primele 2 metode nu prea necesită comentarii.

a 3-a (cel puţin pentru mine) e colacul de salvare când pachetele binare sunt incorect compilate, sau căile de instalare sunt greşite. în unele cazuri, verificarea dependinţelor poate eşua, dar totuşi binarele sunt instalate în sistem... simptomul: porneşti binarul, icoana "ţopăie" un timp, şi gata, fără nici un fel de mesaj de eroare, şi fără să apară fereastra softului (pe situri sunt secţiuni de screenshoturi, dacă nu cunoaşteţi programul, uitaţi-vă, să ştiţi cam ce-ar trebui să vedeţi la rulare normală).

 

cum se procedează:

 

1. dezarhivăm arhiva .tar.gz sau .tar.bz2

2. intrăm în folderul creat la dezarhivare, şi căutăm un fişier pe nume INSTALL şi/sau README. acolo se găsesc amănunte suplimentare cu privire la eventualele librării necesare, etc. citiţi-le, chiar dacă sunteţi convinşi că nu e cazul!!!

3. dacă în INSTALL nu scrie altceva, băgăm ./configure. ar trebui să vedem ceva de genul "cârnatului" de mai jos:

 

>mifty@miftosaur:~/gpsim-kit/graphiclcd-0.3.0$ ./configurechecking for a BSD-compatible install... /usr/bin/ginstall -cchecking whether build environment is sane... yeschecking for gawk... gawkchecking whether make sets $(MAKE)... yeschecking whether to enable maintainer-specific portions of Makefiles... nochecking for pkg-config... /usr/bin/pkg-configchecking build system type... i686-pc-linux-gnuchecking host system type... i686-pc-linux-gnuchecking for style of include used by make... GNUchecking for gcc... gccchecking for C compiler default output file name... a.outchecking whether the C compiler works... yeschecking whether we are cross compiling... nochecking for suffix of executables... checking for suffix of object files... ochecking whether we are using the GNU C compiler... yeschecking whether gcc accepts -g... yeschecking for gcc option to accept ANSI C... none neededchecking dependency style of gcc... gcc3checking for a sed that does not truncate output... /usr/bin/sedchecking for egrep... grep -Echecking for ld used by gcc... /usr/i486-slackware-linux/bin/ldchecking if the linker (/usr/i486-slackware-linux/bin/ld) is GNU ld... yeschecking for /usr/i486-slackware-linux/bin/ld option to reload object files... -rchecking for BSD-compatible nm... /usr/bin/nm -Bchecking whether ln -s works... yeschecking how to recognise dependent libraries... pass_allchecking how to run the C preprocessor... gcc -Echecking for ANSI C header files... yeschecking for sys/types.h... yeschecking for sys/stat.h... yeschecking for stdlib.h... yeschecking for string.h... yeschecking for memory.h... yeschecking for strings.h... yeschecking for inttypes.h... yeschecking for stdint.h... yeschecking for unistd.h... yeschecking dlfcn.h usability... yeschecking dlfcn.h presence... yeschecking for dlfcn.h... yeschecking for g++... g++checking whether we are using the GNU C++ compiler... yeschecking whether g++ accepts -g... yeschecking dependency style of g++... gcc3checking how to run the C++ preprocessor... g++ -Echecking for g77... g77checking whether we are using the GNU Fortran 77 compiler... yeschecking whether g77 accepts -g... yeschecking the maximum length of command line arguments... 32768checking command to parse /usr/bin/nm -B output from gcc object... okchecking for objdir... .libschecking for ar... archecking for ranlib... ranlibchecking for strip... stripchecking if gcc static flag  works... yeschecking if gcc supports -fno-rtti -fno-exceptions... nochecking for gcc option to produce PIC... -fPICchecking if gcc PIC flag -fPIC works... yeschecking if gcc supports -c -o file.o... yeschecking whether the gcc linker (/usr/i486-slackware-linux/bin/ld) supports shared libraries... yeschecking whether -lc should be explicitly linked in... nochecking dynamic linker characteristics... GNU/Linux ld.sochecking how to hardcode library paths into programs... immediatechecking whether stripping libraries is possible... yeschecking if libtool supports shared libraries... yeschecking whether to build shared libraries... yeschecking whether to build static libraries... yesconfigure: creating libtoolappending configuration tag "CXX" to libtoolchecking for ld used by g++... /usr/i486-slackware-linux/bin/ldchecking if the linker (/usr/i486-slackware-linux/bin/ld) is GNU ld... yeschecking whether the g++ linker (/usr/i486-slackware-linux/bin/ld) supports shared libraries... yeschecking for g++ option to produce PIC... -fPICchecking if g++ PIC flag -fPIC works... yeschecking if g++ supports -c -o file.o... yeschecking whether the g++ linker (/usr/i486-slackware-linux/bin/ld) supports shared libraries... yeschecking dynamic linker characteristics... GNU/Linux ld.sochecking how to hardcode library paths into programs... immediatechecking whether stripping libraries is possible... yesappending configuration tag "F77" to libtoolchecking if libtool supports shared libraries... yeschecking whether to build shared libraries... yeschecking whether to build static libraries... yeschecking for g77 option to produce PIC... -fPICchecking if g77 PIC flag -fPIC works... yeschecking if g77 supports -c -o file.o... yeschecking whether the g77 linker (/usr/i486-slackware-linux/bin/ld) supports shared libraries... yeschecking dynamic linker characteristics... GNU/Linux ld.sochecking how to hardcode library paths into programs... immediatechecking whether stripping libraries is possible... yeschecking whether we are using the GNU C++ compiler... (cached) yeschecking whether g++ accepts -g... (cached) yeschecking dependency style of g++... (cached) gcc3checking how to run the C++ preprocessor... g++ -Echecking for gcc... (cached) gccchecking whether we are using the GNU C compiler... (cached) yeschecking whether gcc accepts -g... (cached) yeschecking for gcc option to accept ANSI C... (cached) none neededchecking dependency style of gcc... (cached) gcc3checking how to run the C preprocessor... gcc -Echecking for a BSD-compatible install... /usr/bin/ginstall -cchecking whether ln -s works... yeschecking whether make sets $(MAKE)... (cached) yeschecking for ranlib... (cached) ranlibchecking for main in -lgpsim... yeschecking for ANSI C header files... (cached) yeschecking fcntl.h usability... yeschecking fcntl.h presence... yeschecking for fcntl.h... yeschecking netdb.h usability... yeschecking netdb.h presence... yeschecking for netdb.h... yeschecking netinet/in.h usability... yeschecking netinet/in.h presence... yeschecking for netinet/in.h... yeschecking stddef.h usability... yeschecking stddef.h presence... yeschecking for stddef.h... yeschecking for stdint.h... (cached) yeschecking for stdlib.h... (cached) yeschecking for string.h... (cached) yeschecking sys/file.h usability... yeschecking sys/file.h presence... yeschecking for sys/file.h... yeschecking sys/ioctl.h usability... yeschecking sys/ioctl.h presence... yeschecking for sys/ioctl.h... yeschecking sys/socket.h usability... yeschecking sys/socket.h presence... yeschecking for sys/socket.h... yeschecking sys/time.h usability... yeschecking sys/time.h presence... yeschecking for sys/time.h... yeschecking termios.h usability... yeschecking termios.h presence... yeschecking for termios.h... yeschecking for unistd.h... (cached) yeschecking for stdbool.h that conforms to C99... yeschecking for _Bool... nochecking for an ANSI C-conforming const... yeschecking for inline... inlinechecking for size_t... yeschecking whether time.h and sys/time.h may both be included... yeschecking return type of signal handlers... voidchecking for working alloca.h... yeschecking for alloca... yeschecking whether gcc needs -traditional... nochecking for stdlib.h... (cached) yeschecking for GNU libc compatible malloc... nochecking for stdlib.h... (cached) yeschecking for GNU libc compatible realloc... nochecking sys/select.h usability... yeschecking sys/select.h presence... yeschecking for sys/select.h... yeschecking for sys/socket.h... (cached) yeschecking types of arguments for select... int,fd_set *,struct timeval *checking for working strtod... nochecking for pow... yeschecking for floor... yeschecking for gethostbyname... yeschecking for gethostname... yeschecking for gettimeofday... yeschecking for memset... yeschecking for pow... (cached) yeschecking for select... yeschecking for socket... yeschecking for sqrt... yeschecking for strcasecmp... yeschecking for strchr... yeschecking for strdup... yeschecking for strerror... yeschecking for strncasecmp... yeschecking for strndup... yeschecking for strpbrk... yeschecking for strrchr... yeschecking for strstr... yeschecking for strtoul... yesconfigure: creating ./config.statusconfig.status: creating Makefileconfig.status: creating src/Makefileconfig.status: creating config.hconfig.status: executing depfiles commandsgraphicLCD-0.3.0 is now configured for  Build:                i686-pc-linux-gnu Host:                 i686-pc-linux-gnu Source directory:     . Installation prefix:  /usr/local C compiler:           gcc  -g -O2 C++ compiler:         g++  -g -O2mifty@miftosaur:~/gpsim-kit/graphiclcd-0.3.0$ 

 

 

aici, totul a mers bine.

dacă se opreşte dubios de repede, uitaţi-vă după un mesaj gen:

 

 

>checking for working strtod... noERROR: cannot find strtod, cannot compile!!!

 

 

continuat cu un "error: 1", după care apare promptul sistemului.

asta înseamnă că nu avem instalat o componentă absolut necesară (strtod în cazul ăsta), sau, mai frecvent, nu e instalată acolo unde s-ar aştepta scriptul de configurare să-l găsească.

deci, băgăm un "locate strtod". dacă există, ne va fi returnată calea spre el, dacă nu există, apare pur şi simplu promptul la finalizarea căutării.

în acest caz, fie pornim administratorul de pachete, şi-i cerem să ne arate pachetele care ar putea conţine librăria lipsă, fie, dacă lipseşte şi acolo, îl întrebăm pe google de unde-am putea lua librăria aia. dacă e disponibilă doar ca surse, o instalăm, dăm un "updatedb" dintr-o consolă root, apoi dăm un "make clean" aici (să ştergem configurările nefinalizate), şi începem din nou.

 

3. următorul pas este "make".

şi de regulă, este cel care haleşte cel mai mult timp.

în principiu, dacă ./configure nu s-a încheiat cu eroare, nici make nu se va încheia cu eroare... deoarece ./configure pur şi simplu verifică dacă sunt prezente toate componentele necesare, şi în final generează fişierele makefile potrivite.

 

4. next (şi ultimul):

>mifty@miftosaur:~/gpsim-kit/graphiclcd-0.3.0$ su -c "make install"

 

 

asta e linia folosită de mine.

 

su -c înseamnă că vreau să rulez comanda dintre ghilimele cu drepturi de root, ŞI IESE DIN ROOT LA FINALIZAREA EI!!! evident, voi fi promptat pentru parola de root, şi după introducere, se va executa comanda cu pricina.

 

make install înseamnă că vreau ca softul compilat de make să fie instalat "worldwide". adică să fie disponibil oricui are cont pe maşina mea, şi, în special, să pot folosi redirectările rezultatelor în orice sens (rezultatele rulărilor softului ăstuia să poată fi folosite ca input pentru alt soft, sau outputul altui program să fie folosit ca input aici).

dacă dau "make install" ca user, el va fi disponibil doar userului "mifty", DAR e posibil şi să nu găsească nişte librării, să nu-şi poată scrie logurile, etc.

deci, dacă în fişierul INSTALL din arhivă nu scrie altceva, instalarea în sine se face de pe contul de root.

 

5. rularea.

 

la prima rulare a unui soft oarecare, recomand rularea dintr-o consolă.

nu de alta, dar dacă există probleme scăpate din vedere de ./configure sau make, o să aflaţi atunci.

de regulă, apar nişte erori nesemnificative gen "cannot find config file", acesta fiind pur şi simplu fişierul de configurare, cel care stochează preferinţele voastre. dat fiind că nu a mai fost rulat înainte, un asemenea mesaj de eroare e perfect normal!! :yawinkle:

de obicei, ce aţi instalat va face (la "make install") şi o intrare în meniul k (în kde), sau în echivalentul Gnome (Applications, apoi submeniul potrivit). dacă totul e în regulă, puteţi porni liniştiţi aplicaţia de aici...

dacă aţi compilat vre-o librărie, nu apare nimic de genul ăsta.

dacă aţi compilat un plugin (cum ar fi de exemplu vu-metrele analogice puse de mine mai demult, care erau plugin pentru Audacious), îl găsiţi în meniul "Plugins" al softului cu care lucrează...

 

Notă: compilarea kernelului e cu totul altă mâncare de peşte!!! (într-o zi ploioasă am să vă spun şi cum se face asta!!!) :snakeman:

Link spre comentariu
  • Răspunsuri 0
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • MifTy

    1

Zile populare

Top autori în acest subiect

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări