Kirjoittaja Aihe: Wikiin tarvittaisiin kääntämisopas mallia rautalanka  (Luettu 1538 kertaa)

Petri Järvisalo

  • Käyttäjä
  • Viestejä: 579
    • Profiili
    • Kotisivut
Elikkäs tässä tein huomion että wikiin ei ole kunnollista rautalanka opasta kääntämiseen. Tällaista ei ole edes linux.fi:ssä ja jos oppaasta saa helposti yleistettävän olisi hyvä ettei samaa tietoa pantattaisi, vaan opas portattaisiin myös linux.fi portaaliin.

Tarvittaisiin siis perusteellinen opas mitä aloittelijan tarvitsee tietää kääntämisestä linuxiin. Mitä paketteja tarvitsee asentaa, miten kääntäminen tapahtuu ja miten lukea käännösvirheitä ja asentaa tarvittavat -dev paketit, sekä miten käy lähdekoodista uninstalloiminen ja muutenkin sen huolehtiminen ettei kääntämisestä aiheudu haittaa järjstelmälle. olisi hyvä jos samassa artikkelissa paneuduttaisiin myös eri koodinhallinta järjestelmiin, svn ja mitä näitä nyt on.

Heitänkin haasteen kirjoittaa ubuntuun paras kääntämisopas aloittelijalle! tämä on tarkoitettu etenkin heille, jotka ohjelmistokehityksen parissa työskentelevät.

Sanotaan, että jos itse lähtisin moista kirjoittamaan heti alkuun se sisältäisi niin monta perustavaa laatua olevaa virhettä, että homma ei vain toimi näin.
Lisää [ratkaistu] ketjun ensimmäisen viestin otsikkoon, kun ongelma on ratkennut.

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Wikiin tarvittaisiin kääntämisopas mallia rautalanka
« Vastaus #1 : 25.08.07 - klo:01.06 »
Elikkäs tässä tein huomion että wikiin ei ole kunnollista rautalanka opasta kääntämiseen.

tämä on tietyllä tapaa helppo ymmärtää.

Tarvittaisiin siis perusteellinen opas mitä aloittelijan tarvitsee tietää kääntämisestä linuxiin. Mitä paketteja tarvitsee asentaa, miten kääntäminen tapahtuu ja miten lukea käännösvirheitä ja asentaa tarvittavat -dev paketit, sekä miten käy lähdekoodista uninstalloiminen ja muutenkin sen huolehtiminen ettei kääntämisestä aiheudu haittaa järjstelmälle. olisi hyvä jos samassa artikkelissa paneuduttaisiin myös eri koodinhallinta järjestelmiin, svn ja mitä näitä nyt on.

eli käytännössä tarkoitus olisi kirjoittaa ohjeistus ohjelmistonkehityksen useammalla eri kielellä?

kääntäminen ei ole ihan tiriviaali taski, vaikka foorumeilla usein heitelläänkin 'configure && make && make install' -tyyppisiä ohjeita. kääntämiseen itseensä vaaditaan puolestaan käytetään hyvinkin erilaisia työkaluja riippuen siitä miten softan kirjoittaja on päättänyt koodinsa järjestellä, se voi käyttää pelkkää makefilea, autotoolseja (epäyhteensopivia versioita käytössä), sconsia, ties mitä ja pelkästään tämän tunnistaminen vaatii tietynlaista osaamista. lähdekoodi voi olla jopa paketoitu jotain tietty paketinhallintatyökalua silmällä pitäen (esim. debianisoidut lähdekoodit).

tietyllä tavalla käännettävät softat saattavat osata konfigurointivaiheessa kertoa mitä kirjastoja ne kaipaavat, mutta pelkän makefilen tarjoavat eivät niin tee. se tieto pitää kaivaa jostain ja jos kehittäjä ei sitä dokumenteissaan kerro, niin se pitää keksiä itse ja on aika hankala selittää kattavasti.

jos kääntämisen aikana menee jotain pieleen, riippuu virheilmoitukset hyvin paljon virheen luonteesta. virhe voi hyvin olla yksinkertainen ilmoitus puuttuvasta otsikkotiedostosta tai joku hyvinkin ohjelmointikielispesifinen sotku joka vaatii kyseisen ohjelmointikielen tuntemusta. vaikka c ja c++ ovat syntaksiltaan perussetiltään samankaltaiset menee c-ohjelmoijalle varmasti luu kurkkuun jostain c++:n standardikirjaston useiden rivien mittaisesta virheilmoituksesta.

lähdekoodista asennetun ohjelman uninstalloiminen on usein lähes mahdotonta ilman manuaalista väkerrystä, ellei ohjelmaa ole paketoitu siten, että se istuu nätisti distron paketinhallintaan. paketointi puolestaan vaatii aika hyvää käsitystä käännösprosessista, sekä tietty läjän distrospesifistä nippelitietoa. hyvin vaikea selittää kattavasti.

versionhallintajärjestelmiäkin on liikkeellä lukemattomia ja monet niistä toimivat hyvinkin toisistaan poikkeavalla tavalla. sinänsä versionhallintajärjestelmien tunteminen ei varmasti ole haitaksi kenellekään vaikka ei ohjelmistokehitystä tekisikään, käyttökohteita kyllä löytyy, mutta jo pelkästään yhden versionhallintajärjestelmän kattava esittely on helposti kirjan mittainen.
 
Heitänkin haasteen kirjoittaa ubuntuun paras kääntämisopas aloittelijalle! tämä on tarkoitettu etenkin heille, jotka ohjelmistokehityksen parissa työskentelevät.

no, en minä sano, etteikö tuo voisi olla mahdollista. ihmiset ovat toteuttaneet yksinään paljon suurempiakin projekteja. sanonpahan vaan, että tuossa tosiaan on haastetta, jos siitä halutaan joka aihealueelta kattava ja siihen halutaan sisällyttää kaikki. varsinkin jos se pitää vielä suunnata aloittelijalle jolla ei ole mitään käsitystä mistään noista osa-alueista.
Janne

Petri Järvisalo

  • Käyttäjä
  • Viestejä: 579
    • Profiili
    • Kotisivut
Vs: Wikiin tarvittaisiin kääntämisopas mallia rautalanka
« Vastaus #2 : 25.08.07 - klo:02.02 »
Lainaus
eli käytännössä tarkoitus olisi kirjoittaa ohjeistus ohjelmistonkehityksen useammalla eri kielellä?

Lähinnä tarkoitan juuri tätä configure-make-install proseduuria, jota saisi selvitetyksi ja auki vähän paremmin. Yleensähän tämä vaan heitetään tyyliin: "käyt nyt sen paketin ja kirjotat tämän ja tämän" ja sitten puidaan pitkään, kun homma ei oikein toiminutkaan. Eli tähän tilanteeseen jos saisi lähinnä rautalanka opastuksen. Muut kielet ja muut proseduurit voi huoletta unohtaa. Opas olisi siis sille suurelle määrälle keskivertokäyttäjiä, mihin itsekin lukeudun, jotka haluaisivat svn:stä sen uusimman ja viimeisimmän version, niin ettei järjestelmä mene heti ensimmäisellä kerralla spagettimössöksi ja uudelleen asennukseen.

Oppaan myötä saisi siis perusvalmiudet ja perusasiat tietoon ja että uskaltaisi lähteä kääntämään sitä haluamaansa uusinta uutta sekä olisi jotain ymmärrystä mistä oikein on kysymys ja mistä (englanninkielisistä) lähteistä mahdollisesti saisi lisää tietoa.

Lainaus
lähdekoodista asennetun ohjelman uninstalloiminen on usein lähes mahdotonta ilman manuaalista väkerrystä, ellei ohjelmaa ole paketoitu siten, että se istuu nätisti distron paketinhallintaan. paketointi puolestaan vaatii aika hyvää käsitystä käännösprosessista, sekä tietty läjän distrospesifistä nippelitietoa. hyvin vaikea selittää kattavasti.

eikös tähän ole juuri checkinstall tai make uninstall. näitä siis tässä hain takaa. nämäkin opin itse vasta pitkän ajan kuluttua.


tarkoituksena olisi juurikin hyvin perustavan tason opas kääntämiseen ja lähinnä tiedon keruuseen virhe-ilmoitusten kautta, mihin kannattaa kiinnittää huomiota ja mihin ei. esim milloin tietää että ohjelma on todella kääntynyt kokonaan. nämähän voisi esimerkkien kautta yrittää selvittää.
Lisää [ratkaistu] ketjun ensimmäisen viestin otsikkoon, kun ongelma on ratkennut.

teprrr

  • Käyttäjä
  • Viestejä: 304
    • Profiili
Vs: Wikiin tarvittaisiin kääntämisopas mallia rautalanka
« Vastaus #3 : 29.08.07 - klo:06.04 »
lähdekoodista asennetun ohjelman uninstalloiminen on usein lähes mahdotonta ilman manuaalista väkerrystä, ellei ohjelmaa ole paketoitu siten, että se istuu nätisti distron paketinhallintaan. paketointi puolestaan vaatii aika hyvää käsitystä käännösprosessista, sekä tietty läjän distrospesifistä nippelitietoa. hyvin vaikea selittää kattavasti.
Tämän takia nuo omat viritykset kannattaakin asentaa omaan prefixiinsä. Esimerkiksi /opt:n alle johonkin sopivaan hakemistoon sekä asettaa ympäristö käyttämään niitäkin kirjastojen ja binäärien haussa. Näin koko höskä voidaan poistaa tarpeiden mukaan. Tietenkään tämä ei poista sitä ongelmaa, että haluttaisiin poistaa vain yksi ohjelma sieltä joukosta, jos Makefilejä ei haluta säilyttää.

Lainaus
versionhallintajärjestelmiäkin on liikkeellä lukemattomia ja monet niistä toimivat hyvinkin toisistaan poikkeavalla tavalla. sinänsä versionhallintajärjestelmien tunteminen ei varmasti ole haitaksi kenellekään vaikka ei ohjelmistokehitystä tekisikään, käyttökohteita kyllä löytyy, mutta jo pelkästään yhden versionhallintajärjestelmän kattava esittely on helposti kirjan mittainen.
Jeps, no yleensä ne versionhallintojen copy&paste-tyylillä toimitetut komennot pelaavat, kunhan vain tarvittava asiakasohjelma on asennettuna, joten tämä ei niin suuri ongelma ole.

Lainaus
no, en minä sano, etteikö tuo voisi olla mahdollista. ihmiset ovat toteuttaneet yksinään paljon suurempiakin projekteja. sanonpahan vaan, että tuossa tosiaan on haastetta, jos siitä halutaan joka aihealueelta kattava ja siihen halutaan sisällyttää kaikki. varsinkin jos se pitää vielä suunnata aloittelijalle jolla ei ole mitään käsitystä mistään noista osa-alueista.
Tästä olen samaa mieltä. Jos ei oikeasti halua opetella järjestelmän toimintaa, niin kannattaisi mielummin vaan odotella, että joku tekee ko. softalle toimivan paketin.

teprrr

  • Käyttäjä
  • Viestejä: 304
    • Profiili
Vs: Wikiin tarvittaisiin kääntämisopas mallia rautalanka
« Vastaus #4 : 29.08.07 - klo:06.10 »
Lähinnä tarkoitan juuri tätä configure-make-install proseduuria, jota saisi selvitetyksi ja auki vähän paremmin. Yleensähän tämä vaan heitetään tyyliin: "käyt nyt sen paketin ja kirjotat tämän ja tämän" ja sitten puidaan pitkään, kun homma ei oikein toiminutkaan. Eli tähän tilanteeseen jos saisi lähinnä rautalanka opastuksen. Muut kielet ja muut proseduurit voi huoletta unohtaa. Opas olisi siis sille suurelle määrälle keskivertokäyttäjiä, mihin itsekin lukeudun, jotka haluaisivat svn:stä sen uusimman ja viimeisimmän version, niin ettei järjestelmä mene heti ensimmäisellä kerralla spagettimössöksi ja uudelleen asennukseen.
Heitetäämpä tähän sen verran, että yleensä se ./configure && make && make install -rimpsu toimii, tosin --prefixiä kannattaa configurelle kuitenkin tarjoilla. Jos halutaan asentaa ohjelmat samalla tavalla kuten Debian-pohjaisissa järjestelmissä on, oikea prefix on /usr. Lisäksi käyttäjä voi sotkea järjestelmäänsä ihan kivasti, kun menee asentelemaan versionhallinnan ulkopuolelle asioita. Tässä toki auttaa checkinstall, muttei sekään mikään hyvä ratkaisu ole.

Ongelmaksi tässä muodostuu yleensä se, että tarvittavia otsikkotiedostoja (header) ei ole asennettuna, eikä configure yleensä osaa suoraan kertoa mikä paketti pitäisi asentaa. Tässä vaiheessa pitäisi siis lähteä tutkimaan config.logia, josta selviää miksi kyseinen testi on epäonnistunut. Kun olen löytänyt esim. testin, joka ilmoittaa puuttuvasta headerista olen katsonut wajigilla sen, että mistä paketista kyseinen tiedosto löytyy. Tämän jälkeen vain apt-getiä ja eteenpäin.

Jos aletaan puhumaan pakettien teosta, niin siinä vaiheessa saa alkaa miettimään mitä paketteja kyseinen ohjelma tarvitsee käynnistyäkseen ja niin edelleen, eikä se enää olekkaan niin yksinkertaista.

Lainaus
tarkoituksena olisi juurikin hyvin perustavan tason opas kääntämiseen ja lähinnä tiedon keruuseen virhe-ilmoitusten kautta, mihin kannattaa kiinnittää huomiota ja mihin ei. esim milloin tietää että ohjelma on todella kääntynyt kokonaan. nämähän voisi esimerkkien kautta yrittää selvittää.
Virheilmoituksiin on hyvä apu config.login lukeminen (configuren) tapauksessa. Lisäksi käännösvaiheen virheet erottuvat error-merkinnöillä, kunhan jaksaa ne sieltä kaiken muun tekstin seasta etsiä. Itse en kuitenkaan lähtisi mitään svn-checkoutteja suosittelemaan aloittelijoille vaan odottelisin niitä jonkun muun tekemiä paketteja, jos edes sittenkään experimentaalia softaa kannattaisi kokeilla.