Fórum Root.cz

Hlavní témata => Distribuce => Téma založeno: Mirek Čech 23. 12. 2010, 19:23:30

Název: Nemám v systému příkaz make
Přispěvatel: Mirek Čech 23. 12. 2010, 19:23:30
Zdravím

Začínám s linuxem používám distribuci Mandriva 2010 s prostředím KDE 4. Zkoušel jsem kompilovat zdrojové soubory podle oficiální publikace ktterou jsem si pořídil.Ale výsledek byl takový že příkazová řádka nezná příkaz "make" .
Vzhledem k tomu že nevím kde dělám chybu tak bych byl velice rád kdyby mne někdo navedl jak se to vlastně dělá :-)
Předem moc děkuji za náměty. :-[
Název: Re: Kompilace programu
Přispěvatel: Vašek 23. 12. 2010, 20:06:27
Ahoj, zřejmě nemáš "make" nainstalovaný. Spusť "Ovládací centrum Mandriva - Instalovat a odebírat software" a tam ho doinstaluj.
Bohužel se obávám, že to nebude jediný program který budeš muset doinstalovat. Většinou je u zdrojáku programu i soubor "readme", nebo něco podobného a tam by měli být napsány závislosti.
Zkus se po něm podívat a doinstalovat, co je třeba.
Název: Re: Kompilace programu
Přispěvatel: Mirek Čech 23. 12. 2010, 20:21:10
JJ díky moc tušil jsem takovou zradu :-)
Název: Re: Nemám v systému příkaz make
Přispěvatel: Kit 28. 12. 2010, 18:24:05
To nevidím jako zradu. Windows také make nemají a většina uživatelů to jako zradu nevnímá. Chybějící programy si prostě musíš doinstalovat podle vlastních potřeb.
Název: Re: Nemám v systému příkaz make
Přispěvatel: Tom Tom 28. 12. 2010, 20:33:27
Zdravím

Začínám s linuxem používám distribuci Mandriva 2010 s prostředím KDE 4. Zkoušel jsem kompilovat zdrojové soubory podle oficiální publikace ktterou jsem si pořídil.Ale výsledek byl takový že příkazová řádka nezná příkaz "make" .
Vzhledem k tomu že nevím kde dělám chybu tak bych byl velice rád kdyby mne někdo navedl jak se to vlastně dělá :-)
Předem moc děkuji za náměty. :-[

Jen takový dotaz - proč se pouštíš hned do kompilace, když teprve začínáš?
Jestli k takovému jednání nabádá přímo ta kniha, tak je to podle mě špatná kniha.
Leda bys potřeboval program, který není v repozitáři, ale ve většině případů by ses měl bez kompilace obejít - alespoň já jsem kompilovat nepotřeboval, dokud jsem používal linux jenom na desktopu.

Prvně bys měl nějaký čas zkusit používat systém "tak jak je", seznámit se kde co je, objevit snadný způsob instalace software z repozitáře... později si najít informace o instalaci z konzole a obecně o práci v ní.

Po tomto už pravděpodobně budeš vědět, jak z konzole hledat a instalovat balíčky do systému, mj. i ty, které jsou většinou potřeba pro kompilaci - binutils, zdrojové soubory kernelu, headers (přesné názvy neuvádím, vládnu Debianem a Ubuntu, v Mandrivě se nejspíš jmenují jinak)
Název: Re: Nemám v systému příkaz make
Přispěvatel: Kit 29. 12. 2010, 00:28:21
Citace
Jen takový dotaz - proč se pouštíš hned do kompilace, když teprve začínáš?

Protože může. Přešel od systému, ve kterém mu bylo diktováno, co může a co nesmí. Na linuxových systémech tato pravidla neplatí. V každé distribuci jsou jen doporučení, jak ten systém používat a začátečníkovi lze jen poradit, aby se tím řídil. Ale nemusí.

Příkaz make je užitečný i mimo kompilace a určitě je dobré si ho nainstalovat.
Název: Re: Nemám v systému příkaz make
Přispěvatel: Mirek Čech 29. 12. 2010, 09:15:40
Citace
Jen takový dotaz - proč se pouštíš hned do kompilace, když teprve začínáš?

Protože může. Přešel od systému, ve kterém mu bylo diktováno, co může a co nesmí. Na linuxových systémech tato pravidla neplatí. V každé distribuci jsou jen doporučení, jak ten systém používat a začátečníkovi lze jen poradit, aby se tím řídil. Ale nemusí.

Příkaz make je užitečný i mimo kompilace a určitě je dobré si ho nainstalovat.
Přesně to byl ten důvod chtěl jsi to vyzkoušet a nelituju ani 5 minut že jsem přešel pod linux řel bych že je podstatně uživatelsky přítulnější :-)
Název: Re: Nemám v systému příkaz make
Přispěvatel: Tom Tom 30. 12. 2010, 18:39:36
Protože může. Přešel od systému, ve kterém mu bylo diktováno, co může a co nesmí. Na linuxových systémech tato pravidla neplatí. V každé distribuci jsou jen doporučení, jak ten systém používat a začátečníkovi lze jen poradit, aby se tím řídil. Ale nemusí.
Nepřeháněj, prostě na některých OS to není potřeba. Rozhodně ale není pravda, že to nejde, nebo to je dokonce zakazováno. Pokud to některý výrobce softwaru neumožňuje (neuvolní zdrojové soubory), patrně jej považuje za své "know how" a nechce je jen tak prozradit konkurenci.
Pokud si tohle dovolí někdo na linuxu, je jeho software označen jako "nesvobodný" a odsouzen k věčnému opovržení :)

Můj dotaz ale směřoval k tomu, že spousta lidí si mylně myslí, že kompilace je jediný způsob, jak do linuxu instalovat programy. Díky tomu vznikají mýty a zbytečné bariéry, které nakonec leckoho odradí a ani si to livko nakonec nevyzkouší.
Proto je dobré upozornit na to, že instalování programů v linuxu sice funguje jinak než ve win, ale je mnohem snadnější.
Pak teprve bych se zmiňoval o kompilaci ve smyslu, že se to sice může, ale rozhodně nemusí.
Název: Re: Nemám v systému příkaz make
Přispěvatel: ilja 30. 12. 2010, 19:23:51
Tak začínáš s GNU/Linuxem a hned chceš kompilovat....?...:-))))
Tak to seš teda frajer....:-)))
Taky jsem před lety začal s Linuxem a to s Mandrake 10.1 PP. Dnes používám GNU/Linux Debian, protože je komunitní, ale přitom je balíčkovací, není zdrojákový jako Slackware, nebo Gentoo.
Takže snadné instalace-odinstalace přes Synaptic. Pokud ale chceš kompilovat a to do distribuce, která je balíčkovací, tak se používají tyto příkazy: ./configure - ./make - ./make install.
Říká se ji "svatá trojice". Tyto příkazy se používají ve zdrojákových distribucích. V balíčkovacích, jako je Mandriva se má raději použít u posledního příkazu raději ./checkinstall. Je to totiž aplikace, která umí vytvořit binární balíček - tgz, deb, nebo rpm a správně ho nainstalovat. Tzv. nezasviní systém.
Osobně s tím ale nemám zkušenosti, zdrojákové distribuce jsem nepoužíval. Říká se ale, že to je tvrdá škola, která vede k pochopení a naučení základů a je dobrou průpravou pro programování.
Název: Re: Nemám v systému příkaz make
Přispěvatel: Kit 30. 12. 2010, 19:51:18
Citace
Můj dotaz ale směřoval k tomu, že spousta lidí si mylně myslí, že kompilace je jediný způsob, jak do linuxu instalovat programy. Díky tomu vznikají mýty a zbytečné bariéry, které nakonec leckoho odradí a ani si to livko nakonec nevyzkouší.

Make není program na kompilaci. Většina uživatelů ho sice používá k řízení kompilace, ale jeho použití je mnohem širší.

Kompilace je způsob, jak do systému doinstalovat program, na který vývojáři distribuce zapomněli. Dalším důvodem může být instalace novější verze programu, než která je v distribuci. Nevýhodou takového počínání je nutnost starat se o následnou aktualizaci takové aplikace, výhodou je možnost modifikace podle vlastních potřeb.

Prioritně by uživatel měl instalovat hotové balíčky z distribuce. Kde to nestačí, nastupuje instalace ze zdrojáků (kompilace) a tam pomůže hromada utilit, mezi jinými  např. i make.

Make by IMHO měl být součástí každé defaultní instalace, podobně jako třeba traceroute (v Ubuntu není a bylo z toho trapné dohadování s ISP - bez funkčního připojení nešel instalovat a nešla diagnostikovat chyba ve spojení).
Název: Re: Nemám v systému příkaz make
Přispěvatel: biggles001 30. 12. 2010, 20:21:49
Tak začínáš s GNU/Linuxem a hned chceš kompilovat....?...:-))))
To je právě potřeba, člověk by se s shellem měl skamarádit co nejdřív :-D
Název: Re: Nemám v systému příkaz make
Přispěvatel: Tom Tom 30. 12. 2010, 22:27:45
Make není program na kompilaci. Většina uživatelů ho sice používá k řízení kompilace, ale jeho použití je mnohem širší.
Osobně neznám nikoho, kdo by v linuxu používal make jinak, než ve svaté trojce. Asi jsme divní.
Ale v tomto případě jde o kompilaci a vzhledem k tomu, že většina z nás má make v systému díky instalaci balíčku build-essential, který sdružuje základní nástroje pro kompilaci, tak zapomeneme na nějaké gcc a budeme se tvářit, že make na kompilaci je :)

To že v některé distribuci defaultně není, má jistě nějaké opodstatnění. Mě by taky mohlo vadit, že nemám v systému můj oblíbený mc nebo bash-completion.

Proto opět doporučuju jako základ a první krok pochopit princip instalace z repozitáře, resp. způsob hledání balíčků a instalaci z konzole a pak si můžeme instalovat co hrdlo ráčí, třeba i make :)
Název: Re: Nemám v systému příkaz make
Přispěvatel: Kit 31. 12. 2010, 00:02:17
Program make používám skoro 20 let a stejně jsem dosud nepřišel na všechny jeho vymoženosti. Přitom je v principu velmi jednoduchý: Na základě porovnání časů modifikace (nebo prosté existence) několika souborů spustí (a nebo nespustí) nějaké příkazy. Plus doplněno o práci s makry.

Tím nějakým příkazem nemusí být jen kompilace (nejčastější případ) ale klidně třeba poslání mailu, archivace souboru, SQL dotaz nebo jen chybové hlášení. Cokoliv. Vše se dá uložit do jednoho Makefile nebo i do vnořené struktury. Skutečně je to při své jednoduchosti velmi mocný a flexibilní nástroj.

Pokud v defaultní instalaci není některý z mých oblíbených programů, znamená to jen tolik, že mu autoři nepřikládali důležitost. Nikdo nechce, aby základní instalace trvala 5 hodin a na disku zabrala 20 GB jenom proto, aby měl všechny potřebné aplikace za cenu 80 % zbytečností. Je lepší co nejmenší základ a k němu instalátor ostatních programů a knihoven.
Název: Re: Nemám v systému příkaz make
Přispěvatel: Michal 06. 01. 2011, 19:51:19
Zdravim vsechny, jsem moc rad, ze jsou mezi nami zacatecnici, kteri znani slovo kompilace pripadne i jine vyrazy, byt kazdy z nas si pod nimi predstavuje neco jineho. Osobne se zivim programovanim na platforme windows. To ovsem neznamena, ze linux neznam a nepouzivam ho ve volnych chvilich. Pamatuji si ze behem skolnich let jsem balik make zapojil k jakemusi pseudo rizeni vypoctu zalozenych na FEM. Rad bych popral Mirkovi, aby mel dost sil se dostat pres vsechny prekazky, ktere ho cekaji v linuxu a nenechal se odradit od experimentovani.