Jos lataa GitHubista sorsat, jotka kääntää ajettavaan binäärimuotoon, niin alkaako valittamaan jos kaikkia riippuvuuksia ei ole ladattu?
Entä jos on ohjeissa vaikka näin:
autoreconf -fi
./configure
make
sudo make install
...niin mitä käy jos vahingossa jättää tuon autoreconfin ja configuren välistä?
Entä jos on ohjeissa vaikka näin:
autoreconf -fi
./configure
make
sudo make install
...niin mitä käy jos vahingossa jättää tuon autoreconfin ja configuren välistä?
Vastaukset 12
Vanhimmat
Kääntää voi monella tapaa ja sieltä sorsista löytyy ohjeet kääntämisestä.
GitHubista ladattavista sorsakoodipaketeista taitaa pääsääntöisesti löytyä kääntöohjeet, mutta tavallisesti on tekijän päätös, antaako ohjeita. Osa on kranttuja ja olettavat kai, että kun kerta joudutaan kääntämään, niin käyttäjä mitä ilmeisimmin on jo sen verran edistynyt, että osaa itse päätellä, kuinka lähdekoodista kuuluisi kääntää. Lisäksi dokumentointi, man-sivut ja kääntöohjeiden kirjoittaminen eivät taida kuulua kaikkien innokkaiden tietokonealan harrastajien lempitouhuun.
Tesmasin muuten, että käännöstuloksena saadun tiedoston tiiviste ei aina täsmää tekijän tarjoaman binäärin tiivisteen kanssa ja jos ei ole tietoa, millä asetuksilla ja kokoonpanolla tekijän tarjoamat binäärit on käännetty, niin miten voi tietää, onko ne tarjotut binäärit todellisuudessa käännetty siitä lähdekoodista, joka on sivustolla saatavilla?
Tuo onkin open sourcen polttava ongelma.
"onko ne tarjotut binäärit todellisuudessa käännetty siitä lähdekoodista, joka on sivustolla saatavilla?"
Jos käännät samaa ladattua lähdekoodia, niin se on varmasti samasta, olkoot summat mitä tahansa...
"Tuo onkin open sourcen polttava ongelma."
Harvoin suljettujen ohjelmien summat täsmää, varsinkaan windowsissa, jossa niitä summia en kyllä muista edes nähneeni.
Tässä asiassa open source luo ihan oman ongelmansa jota muilla ei ole.
"tiiviste ei aina täsmää"
Minusta voisi sanoa, että todells harvoin se täsmää. Hyvällä tuurilla joi tokikin täsmätä kun asetukset on pilkulleen samat.
Mutta aina jos jotain binääriä epäilee peukaloiduksi, ainoa keino on kääntää se itse lähdekoodista.
Käännä sinä vaan niitä suljetun koodin sorsia tai vaikka ankkoja.
Ohjeen mukaan onpi paree mennä. Jollet haluu sotkee sydeemiis turhil riippuvuuksil nii pistele virtuaalikoneesee toinen sydeemi ja kääntele siellä.
autoreconf pois jättäminen jättää pois riippuvuuksia, ei paha.
./configure pois jättäminen tekee ohjelmasta toimimattoman.
http://www.codecoffee.com/tipsforlinux/articles/27.html
Käännös ei onnistu jos tarvittavia kirjastoja ei ole asennettu. ./configure yleensä antaa vihjeitä mitä puuttuu. Gcc:n versiollakin on merkitystä. Jo gcc:n kääntäminen on työläs vaihe ja voi kestää tunnin tai kaksi (bootstrap). Gittillä saa helposti vaikka Kodin tai KDE:n kehitysversion, mutta kääntämiseen kannattaa varata aikaa ja levytilaa. Gcc:llä on paljon optioita ja käännös tietylle prosessorille voi nopeuttaa ohjelmaa. md5sum tai vastaava ei voi täsmätä kun kääntämisessä paljon mahdillisuuksia. Optimoidaanko nopeuden vai binäärin koon mukaan. Tehdäänkö koodi vain AMD64 prosessorille vai Intelille? mtune=native optio tunnistaa prosessorin ja tekee sille sopivaa koodia. Voidaan toki kääntää vaikka puhelimelle sopivaa koodia. Isoja käännöksiä voi jakaa myös verkossa useammalle koneelle. ccache nopeuttaa myös. Tuon ansiosta Kodi kääntyy minulla nopeasti lähdepuun päivityksen jälkeen. Gcc tekee hyvää ja nopeaa koodia. Sen asentaminen lähdekoodista on hyvää harjoitusta. Yksi kernelikin tuli tänään käännettyä. Sujuu nopeasti nykykoneilla. Lähdekoodista kun osaa kääntää niin erottuu muista hiirenheiluttajista...
Olen tippunut ulkopuolelle, mutta jos kirjoitat
/Autoconfig
./configure
make
sudo make install
tulee järjestelmä tulkitsemaan tuon niin, että alkaisit conffaamaan sudoa, vaikka itseasiassa tarvitsisit
/reconf
./make mysql
create
next
loop (i=5)
until (i=9)
Tuo saattaisi ratkaista ongelmasi. Mikäli ei, niin ota yhteyttä mySQL:n yhteisöön: https://www.mysql.com/products/community/