Gopher k{dest{ pit{en

0 views
Skip to first unread message

Timo Kiravuo

unread,
Oct 25, 1992, 3:25:35 PM10/25/92
to
Timo Kiravuo, kir...@hut.fi 25.10.1992

T{m{n dokumentin oikeudet omistaa FUNET-projekti ja sit{ saa
vapaasti levitt{{ ja kopioida s{hk|isesti, paperilla,
kirjekyyhkysten v{lityksell{ sek{ muilla tavoin.


Gopher on syksyn -92 kuumin informaatioj{rjestelm{. Vanhat tyls{t
infoj{rjestelm{t pitiv{t tietokantansa yhdess{ koneessa ja pahimmillaan
j{rjestelm{{ ei voinut edes kunnolla k{ytt{{ muista koneista.
Keskiaikaista, tulee melkein mieleen aika jolloin reik{kortit olivat
puuta.

Gopher on jotain uutta ja erilaista. Kevyt, joustava, monipuolinen ja
k{ytt{j{n tarpeisiin mukautuva infoj{rjestelm{, jota ilman yksik{{n
aikaansa seuraava korkeakoulu ei tule toimeen. Korkeakoulu ilman omaa
Gopheria on kuin kala ilman polkupy|r{{.

Gopher perustuu asiakas-palvelin -rakenteeseen. Ja asiakasohjelmia saa
miltei kaikille suosituille k{ytt|j{rjestelmille ja konetyypeille,
ainakin seuraaville: Unix, Macintosh, MS-DOS, X, Next, VMS ja MVS.

Palvelimia on tarjoilla ainakin Unixille, Nextille, VMS:lle ja
Macintosheille, ehk{ muillekin (kehitys on nopeaa). Alkeellisimmillaan
riitt{{ ett{ ottaa olemassa olevan hakemistopuun jossa on datafileit{ ja
asettaa serverin osoittamaan siihen. Sitten voi ryhty{ viritt{m{{n
p{{lle soft-linkkej{ hakemistoihin, linkkej{ muihin Gophereihin, lis{t{
{{nt{ ja kuvia ({{ni toistaiseksi vain Next- ja Sun-ty|asemilla) ja
lopuksi laittaa kirsikaksi p{{lle WAIS-indeksin, jonka avulla k{ytt{j{t
ehk{ l|yt{v{tkin jotain.

Se mainospuheista. Katsotaanpa Gopheria tarkemmin.

Gopheriin voit tutustua pikaisesti ottamalla telnet-yhteyden johonkin
seuraavista menomestoista ja antamalla k{ytt{j{tunnukseksi "gopher"

gdunix.gd.chalmers.se
consultant.micro.umn.edu
gopher.uiuc.edu
gopher.uwp.edu
gopher.unt.edu
panda.uiowa.edu

Iske tassusi kursorin{pp{imien tai hjkl-rivin p{{lle ja ala kruisailla
Internetti{ Gopherin seurassa. K{ytt|liittym{ on v{h{nkin kokeneemmalle
bittinikkarille melko intuitiivinen, alla perusk{skyt:

j - alas
k - yl|s
l, Return - valitse, mene valintaan
u, h - takaisin
nuolin{pp{imet - kuten hjkl
q - tekstist{ tai koko ohjelmasta pois. Tekstist{ poistuttaessa:
return - pois
s - talleta tiedostoon
m - l{het{ postina esim. itselle
/ - hae nimelt{, anna sana tai osa siit{ ja p{{t{ returnilla
= - n{yt{ linkin tiedot valitsematta sit{
? - apua


Gopher-asiakasohjelman asentaminen Unix-k{ytt|j{rjestelm{{n

T{m{ on yht{ helppoa kuin ohjelman k{{nt{minen (t{st{ varmaankin
arvaatte miten helppoa).

Nappaamme peruspaketin nic.funet.fi:n hakemistosta
pub/networking/services/gopher/Unix hakemalla anonyymill{ FTP:ll{
tiedoston gopher1.03.tar.Z tai uudemman jos uusi versio on tullut t{ss{
v{liss{. Siis:

ftp nic.funet.fi
anonymous
gu...@cc.univ.fi (nic haluaa postiosoitteen salasanaksi)
cd pub/networking/services/gopher/Unix
bin
get gopher1.03.tar.Z
quit

Puramme paketin

uncompress gopher1.03.tar.Z
tar -xf gopher1.03.tar

(ja koska t{ss{ vaiheessa joku huomauttaa ett{ "zcat gopher1.03.tar.Z |
tar -xf -" on parempi niin kyll{h{n min{ sen tied{n, mutta muistakaamme
ett{ lukijoidemme joukossa saattaa olla humanisteja,
hallintovirkailijoita yms. hemmoja ja heille saattaa kahden eri asian
tekeminen yhdell{ k{skyrivill{ olla turhan vaativaa).

Nyt olemme siis hakeneet Funicista Gopherin ja purkaneet sen.
Seuraavaksi k{ymme asennuksen kimppuun, siirtym{ll{ hakemistoon
gopher1.03 ja sanomalla "make client". Sitten katselet vain ohjelman
k{{ntyv{n silmiesi edess{. Tietenkin jos k{yt{t vanhanaikaista konetta
jossa ei ole viel{ puheentunnistusta saatat joutua kirjoittamaan k{sin
tuon "make client" -osuuden. (Miksi oikolukijat puuttuvat aina
ep{oleellisuuksiin?)

Jos k{{nn|ksen aikana tulee virheilmoituksia, olet omillasi.
RS/6000-koneissa ja Sun 4:ss{ olen k{{nt{nyt itse muutoksitta, muista
masiinoista en tied{. Pyyd{ paikallista Unix-guruasi auttamaan (jos olet
itse paikallinen Unix-guru, {l{ silti katoa rekursiiviseen luuppiin).
Makefile.config sis{lt{{ periaatteessa kaiken oleellisen, conf.h:ssa
saattaa my|s olla jotain s{{dett{v{{.

Kun olet saannut asiakkaan onnellisesti k{{nnetty{, kirjoita

gopher/gopher gopher.funet.fi

T{m{ edellytt{{ tietenkin ett{ olet itse hakemistossa gopher1.03.
Gopher-asiakkaasi k{ynnistyy ja ottaa yhteyden nic.funet.fi:ss{ olevaan
Suomen keskeiseen Gopher-serveriin, jossa on sitten linkkej{ kaikkiin
muihin Suomen Gophereihin. Jos Nic on kovasti tahmassa k{ynnistyminen
saattaa kest{{ hetken ja n{et (jos katsot) ruudun alakulmassa tekstin
"Retrieving Directory" ja kohta n{yt|llesi pulahtaakin lista Suomen
Gophereista. Sielt{ voit sitten katsella mit{ muut Gophereillaan
tekev{t.


Gopher-palvelimen asentaminen Unixille ja asiakkaan hienos{{t|

Palvelimen asentaminen on jonkin verran vaativampaa kuin asiakkaan.
Ensinn{kin tarvitsemme jostain data-hakemiston jonne laitamme kaiken sen
kivan informaation mit{ haluamme ihmisille jakaa. Periaatteessa mik{
tahansa Unixin normaali hakemistopuu kelpaa. Datahakemiston voi keksi{
my|hemminkin, ensi alkuun kannattaa vain kopioida jakelupaketin
gopher1.03/examples-hakemisto johonkin fiksuun paikkaan ja k{ytt{{ sit{.

Palvelimen asennuksen alotamme siirtym{ll{ hakemistoon gopher1.03 ja
editoimalla siell{ olevaa Makefile.config-nimist{ tiedostoa. Editointiin
voit k{ytt{{ GNU Emacs -nimist{ suosikkieditoriasi tai, mik{li olet sit{
mielt{ ett{ kahvinkeitin ei kuulu peruseditorin varusteisiin, vi:t{.

Ainakin seuraaviin kohtiin pit{isi ottaa kantaa:

CLIENTDIR = /usr/local/bin
CLIENTLIB = /usr/local/lib/
SERVERDIR = /usr/local/etc
MAN1DIR = /usr/local/man/man1
MAN8DIR = /usr/local/man/man8

N{m{ lienev{t kohtuullisen oikein, mutta tarkista silti miten soveltuvat
paikallisin systeemeihin.

CLIENT_HOST = gopher.micro.umn.edu
CLIENT_PORT = 70

N{m{ vaikuttavat asiakasohjelmaan, mik{li et halua ett{ k{ytt{j{si
joutuvat aina lukemaan Minnesotan yliopiston Gopheria, muuta ylemm{lle
riville oman Gopherisi osoite.

DOMAIN = .micro.umn.edu

Jos masinasi "hostname" -k{sky palauttaa t{yden osoitteen, j{t{
yll{oleva rivi tyhj{ksi =-merkin j{lkeen. Jos "hostname" palauttaa vain
koneen nimen, laita domainin nimi tuolle riville (siis .retupera.fi jos
palvelin on gopher.retupera.fi).

SERVERDATA = /home/mudhoney/gopher-data
SERVERPORT = 70

Tuohon sitten laitat sen hakemiston jossa kaikki hieno datasi on.
TCP/IP-porttina kannattaa k{ytt{{ porttia numero 70, se tuntuu olevan
yleinen tapa.

Kannattaa my|s katsoa conf.h -tiedostoa. Siell{ on joitakin m{{rittelyj{
jotka yleens{ lienev{t oikein, mutta joihin saattaa joutua puuttumaan
tarvittaessa.

Talleta tiedostot, tule ulos editorista, kirjoita ensin "make clean"
jotta voit k{{nt{{ oikean palvelimen tiedot asiakasohjelmaan ja kirjoita
sitten "make all", jolloin k{{nn{mme sek{ serverin ett{ asiakasohjelman.

Ennen lopullista asennusta kannattaa katsoa ett{ serveri on k{{ntynyt
kunnolla ja toimii. Muunna itsesi juurekseksi suosikkik{skyll{si (ena,
su, joku muu) ja k{ynnist{ serveri k{skyll{ (gopher1.03-hakemistosta)

gopherd/gopherd -l lokitiedosto /gopher/data/hakemistosi 70

pelk{n gopherd:nkin pit{isi riitt{{, mutta n{in olemme varman p{{ll{.
Sitten anna vaikka "gopher/gopher" -k{sky ja katso starttaako homma. Jos
ongelmia ilmenee, voit katsoa lokitiedostosta onko mit{{n tapahtunut vai
ei.

No niin, t{ll{ hetkell{ sinulla pit{isi olla toimiva asiakasohjelma ja
palvelin. Jos kaikki n{ytt{{ toimivan kuten pit{{kin, voit viel{ asentaa
palikat paikoilleen kirjoittamalla superhes^H^H^Huserina "make install".

Gopher-demonin joudut viel{ laittamaan k{sin johonkin systeemin
k{ynnistystiedostoon


Miten Gopher toimii

Gopher on hyvin yksinkertainen ja simppeli protokolla. Niin simppeli ja
yksinkertainen ett{ sen voi ymm{rt{{ jopa gargantualainen athrophyxi,
joka on niin tyhm{ otus ett{ se maksaa verona enemm{n kuin pit{isi ja
pit{{ itse{{n sitten ovelana huijattuaan veroviranomaisia.

Systeemill{ on jokin hieno termi kuten "stream sockets" tai sinne p{in.
K{yt{nn|ss{ homma toimii siten ett{ asiakas ottaa yhteyden
palvelinkoneeseen, tyypillisesti porttiin 70, tuuppaa sinne yhden rivin
teksti{, ja sitten palvelin katsoo mit{ valintaa t{m{ tekstirivi vastaa
tunkee takaisin sellaisen isomman blokin dataa jossa on yksi valinta per
rivi. Tai sitten dumppaa tekstitiedoston tai mit{ dataa kyseess{ nyt
sitten onkaan.

Jos kyseess{ on valikko niin jokainen valinta on yksi rivi ja rivill{ on
sitten tabulaattoreilla erotettuna valinnan nimi ja miss{ koneessa se on
ja miss{ portissa ja mit{ tyyppi{ ja silleen.

Kun asiakas on saanut datansa se pist{{ yhteyden poikki ja serverik{{n
ei j{{ jahkailemaan mit{{n, eli protokolla on tilaton, kuten porukat
kulmilla sanovat. Lis{ksi asiakas ottaa kaikki yhteydet suoraan
palvelimiin eik{ mitenk{{n jonkin palvelimen kautta kiert{en. T{st{
tulee tietenkin ongelmia k{ytett{ess{ mikrojen asiakasohjelmia, koska
FUNET reititt{{ mikrot niin ett{ niist{ ei p{{se ulkomaille.


Gopherin viritt{minen

Nyt kun olet saanut perusteet kuntoon, voit ryhty{ miettim{{n Gopherin
kehitt{mist{ eteenp{in. Kannattaa tutustua gopher1.03/examples
-hakemiston sis{lt||n, siell{ on esimerkkej{ kaikenlaisesta kivasta.

Gopherin dokumentit ovat gopher1.03/doc-hakemistossa, niit{ kannattaa
lueskella.

Serveriss{ voi asettaa joitan kiinnostavia optioita k{ynnistyksen
yhteydess{.

Oletusarvoisesti Gopher-demoni tekee chrootin data-hakemistoonsa
aloittaessaan toimintansa. Ihmisten kielell{ t{m{ tarkoittaa sit{ ett{
Gopher pysyy kiltisti hakemistossaan eik{ l{hde seikkailemaan ymp{ri
konetta. T{ll|in kuitenkin kaiken datan on sijaittava
Gopher-hakemistossa ja pehme{t linkitkin on rakennettava varovasti, ts.
mennen puuta ensin yl|s ja laskeutuen sitten alas.

Toinen vaihtoehto on antaa Gopherille koko levyavaruus vapaasti
mellastettavaksi jonkin k{ytt{j{tunnuksen puitteissa. T{ss{ on tiettyj{
ongelmia tietoturvallisuuden suhteen, mutta k{ytt{jille se on helpompaa,
esimerkiksi ns. palikkak{ytt{j{t voivat pit{{ jotain tiedostoaan
kotihakemistossa, jolloin sen yll{pito on helpompaa. Gopher sitten
l|yt{{ tiedoston linkin avulla.

Tarkemmat ohjeet ovat gopherd:n man-sivulla, lukekaa ja k{ytt{k{{ omalla
vastuullanne.

Samaisella man-sivulla on ohjeita sellaisista asioista kuin yhteyksien
rajoittaminen IP-numeroiden, domainien ja palvelinkoneen kuormituksen
mukaan. Lukekaa sielt{.

Useimmat Client-ohjelmat tukevat kirjanmerkkej{, joiden avulla k{ytt{j{
l|yt{{ helposti ja nopeasti jonkin aikaisemmin merkitsem{ns{
tiedonjyv{sen.

Isommat tekstit kannattaa hyvinkin indeksoida WAIS-indeksill{.

Kun gopherd-ohjelma kutsutaan gopherls-nimell{ ja sen argumentiksi
annetaan Gopherin datahakemisto, listaa ohjelma datahakemiston sis{ll|n.


Dokumenteista l|ytyy muutakin pikkukivaa, mutta nyt on aika laittaa
pillit pussiin ja juttu maailmalle. Lis{{ keskustelua Gopherista k{yd{{n
News-ryhm{ss{ sfnet.tietoliikenne.palvelimet. Stay tuned.


Gopher Suomessa

T{ll{ hetkell{ Gopher on Suomessa vasta kehitysvaiheessa, mutta
yhteisty|ss{ on p{{sty jo niin pitk{lle ett{ gopher.funet.fi
(nic.funet.fi toistaiseksi) on keskeinen palvelin kaikenlaiselle
informaatiolle jolla on arvoa koko maan tasolla. Tietojen ei tarvitse
olla v{ltt{m{tt{ itse koneessa, pelkk{ linkki riitt{{ oikein hyvin.

Suomen Gophereitten yll{pit{jille on perustettu postituslista
fi-g...@nic.funet.fi, jolle on tarkoitus saada kaikki Suomen
Gopher-yll{pit{j{t. Mukaan p{{see sinkauttamalla mailia osoitteesen
fi-gophe...@nic.funet.fi.


--
Timo Kiravuo, kir...@hut.fi
Helsinki University of Technology, Computer Center, Finland

Reply all
Reply to author
Forward
0 new messages