cURL
cURL on sen komentorivipohjainen käyttöliittymä ja esimerkkitoteutus URL-osoitteiden hakemista varten tehdylle libcurl-kirjastolle.
cURL on erittäin monipuolinen ohjelma tarkoitukseensa. Sen vahvana puolena esimerkiksi Wgetiin verrattuna on, että siinä on laaja tuki eri tiedonsiirtoprotokollille. Kirjoitushetkellä (14.10.2009) libcurl tukee seuraavia protokollia: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS ja FILE.
Siinä on myös tuki mm. SSL-sertifikaateille, HTTP-lähetykselle, FTP-lähetykselle, välityspalvelimille, evästeille, tunnistautumiselle ja keskeytyneen tiedonsiirron jatkamiselle.
Useimpiin käyttötarkoituksiin riittää GNU:n Wget, joka on useimpien mielestä myös helppokäyttöisempi ja selkeämpi toiminnaltaan. Wget on GPL-lisenssin alainen, kun taas cURL on vapaasti käytettävissä ja jatkokehitettävissä myös suljetun koodin järjestelmissä MIT-lisenssin alaisuudessa. cURLissa on myös parempi tuki virhetilojen raportoinnille ja on siksi etenkin komentorivi skriptien tekijöiden suosiossa. Wgetin etu cURLiin on tuki rekursiiviselle lataukselle, joka cURLista puuttuu kokonaan. cURLin pääkehittäjä on ruotsalainen Daniel Stenberg, kun taas Wget on GNU-säätiön alainen GPL-projekti.
Asentaminen
Paketinhallinnan kautta
cURL löytyy useimpien jakeluiden paketinhallinnasta nimellä curl. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.
Kääntäminen lähdekoodista
cURLin kääntäminen lähdekoodista voi olla aloittelijalle melko haastava tehtävä. On varmistettava, että järjestelmässä on saatavilla OpenSSL- ja zlib-kehityskirjastot (header-tiedostot). Tarvitaan myös mahdollisesti OpenLDAP:n kehityskirjasto, mikäli halutaan käyttää LDAP-protokollaa ja libssh2:n SCP:tä ja SFTP:tä varten. Nämä paketit ovat useimmissa jakeluissa nimillä libssl-dev, zlib-dev, libldap2-dev ja libssh2-dev tai openssl-devel, zlib-devel/zlib1-devel, libldap2-devel ja libssh-devel.
Tämän jälkeen haetaan uusin lähdekoodipaketti cURL:in kotisivulta Download-otsikon alta ja puretaan se.
tar zxvf curl-7.19.2.tar.gz
Kun paketti on purettu, voi sen poistaa.
rm curl-7.19.2.tar.gz
Tehdään varsinainen käännös:
cd curl-7.19.2/ ./configure make
Tämän jälkeen cURL on käännetty ja ohjelmoitu asentumaan /usr/local hakemistopuun alle (jonne on nykyisissä jakeluissa turvallista kerätä itse käännettyjä ohjelmia). Suorita asennus loppuun kirjautumalla root-käyttäjänä ja antamalla samassa hakemistossa komento:
make install
Käyttö
cURLin käyttö on erittäin monipuolista. Esimerkiksi komento
curl ftp://ftp.funet.fi/pub/
listaa Funet-palvelimen julkisen FTP-hakemiston sisällön, kun taas
curl -O ftp://ftp.funet.fi/pub/Linux/kernel/v2.6/linux-2.6.27.7.tar.bz2
hakee viimeisimmän ytimen samalta palvelimelta. Huom! -O -valitsimen käyttö on erittäin tärkeää, sillä muutoin cURL kirjoittaa haettavan tiedoston sisällön standardiulostuloon. -O -valitsimella tulostus ohjautuu haettavan tiedoston mukaiseen nimeen. Saman ajaisi uudelleenohjattu komento
curl ftp://ftp.funet.fi/pub/Linux/kernel/v2.6/linux-2.6.27.7.tar.bz2 > linux-2.6.27.7.tar.bz2
Mutta -O -valitsimen käyttö on selvästi helpompaa.
Lisätietoja cURLin toiminnasta löytyy sen man-sivulta.
man curl