Vous êtes sur la page 1sur 16

LuisRodolfoSosaLanda1

Carrera Linux 2008 - Metodologas de


distribucin - Clase 1 - El software propietario y
privativo
Comenzaremosanalizandodosclasesdesoftwaremuypopulares:elsoftwarepropietarioyel
softwareprivativo.Veremosalgunosejemploseidentificaremoscuandounsoftwarees
propietarioycuandoseconvierteenprivativo.

De que hablas, Willys?


Seguramenteseestarnpreguntandoquecuernosesmetodologasdedesarrolloydistribcionde
software???Bueno,paraempezar,vamosahacerladefinicinaburrida:estamateriaestaorientadaa
analizarlasdiferentesmodalidadesdedesarrolloydistribuciondeaplicaciones.Nosiempreseaplican
lasmismastecnicasdeprogramacionynosiempreseaplicanlasmismastecnicasparadistribuiruna
aplicacinavariaspersonasoclientes.
Lociertoesqueanalizaremoseso,perodesdeelpuntodevistadelSoftwareLibrecomoeventoque
revolucionelmundotecnologicoinformatico.Antesdelaaparicindelsoftwarelibre,lacosaerade
unamanera.Luego,todocambi.Yesoesloqueanalizaremos.
Veremoscualfuelahistoriadelsoftwarelibre,deLinux,delasaplicacionesmsimportantes,como
nacilaFundacindelSoftwareLibre,elmovimientodelcdigoabierto(OpenSource)ymuchoms.
Perotambienhablaremosdelicencias,yaprenderemoscualessonlasherramientasquenosofrecenlas
licenciasdesoftwarelibreylaslicenciasdecdigoabierto.
Finalmente,ustedesestncursandounamateriaquesellamaprogramacin.Alfinalizarestacarrera,la
ideaesqueustedespuedandesarrollarsuspropiosprogramasy,haciendousodelosconocimientos
impartidosenestamateria,liberarloscomoproyectosdecdigoabierto.Interesante,no?Manosala
obra!

Software Privativo y Software Propietario


Ylasdosprimerasmodalidadesqueveremossonlasmsconocidasentretodosustedes.Veamosuna
definicindecadaunadeellas.
SoftwarePropietario:Essoftwarequeperteneceaalguien.Alguienpuedeserunprogramador,una
empresa,miabuela,etc.
SoftwarePrivativo:Essoftwareque,pormediodeunalicenciaounpermisodeuso,meprivaami
comoclientederealizartalocualtarea,soloporqueeldesarrolladornoquiere.
Elsoftwarepropietario,comomencionamosenladefinicinperteneceaalguien.Porque?Porla
simplerazndequealguienlohizo!Aver...siyofabricounamesaparaponermislibros,esamesaes
mia,porquelafabriquyo.Lomismopasaconelsoftware.Elsoftwareespropietariocuandoyocomo

LuisRodolfoSosaLanda2
usuario,nosoydueodeel.Cuandounprogramadordesarrollaunaaplicacin,loprimeroquehace
paradistribuirlaesarmarunaLICENCIADEUSO.EnlaLicencia,elpropietariodelsoftwaredice
variascosascomolassiguientes:
Quequedeclaroqueelquehizoelprogramafuyo,canejo!
Vospodesusarlo,peroesonotedaderechoacopiarseloatuamigo
Vospodesusarlo,peronopodesvercomolohice
Yvariascosasms.Porlocualdeducimosquecuandounovaaunsupermercadoysecomprauna
versindeMicrosoftWindows,enrealidadnoestcomprandonadamsqueunpermisodeuso.Uno
secreequeeseWindowsesdeuno,peroenrealidadsiguesiendopropiedaddelamigoBill.Yaqu
podemoshacerunaanalogaconlamsica.SitecomprselltimocompactdeU2,esotehacedueo
desuscanciones?Claroqueno!Vossimplementeadquiristeunpermisoparaescucharlascanciones
deU2enelreproductordeCDdetucasa.
Ahorabien,cuandoenesaLicenciaopermisodeusoelprogramadornosrestringeelusodelsoftware
conclausulascomo:
Ud.nopuedeusaresteprogramaenmsdeunacomputadora
Ud.nopuedeusaresteprogramaparaprogramarunabombaatomica
Ud.nopuedeusaresteprogramaparaconectarseaInternet
Entonceselsoftwareseconvierteenprivativo.Osea,nopuedohacerlibreusodeeseprograma.Silo
hago,estoyviolandolaley.

Violando la ley?
Si,violandolaley.SiustedesusanMicrosoftWindows,sesuponequeesporqueaceptaronlalicencia
(elpermisodeuso).Ahorasilousan,peroestanviolandoalgunaclausuladelalicencia,entonces
violanlaley,porquenoestancumpliendoconlasreglasdejuegoquedefiniMicrosoftparacon
Windows.Elsoftwareesunbienyestaprotegidoporlasleyesdederechosdeautor,quienviolalaley,
puedeirpreso.Ojitooooooo

En conclusin...
Laconclusindelaclasedehoyesquedurantemuchosaos,lamayorpartedelosprogramaspara
computadoraseranpropietariosyprivativos.Yesoesmalo,porlaslicenciasprivativassonleoninas.
Ah,nomecreen?TAREAPARALACLASEQUEVIENE:Leerunalicenciadeunprograma
propietarioydeducirsiesprivativoono.Leanlalicenciadeloquequieran:Windows,Office,elMSN,
elICQ,loquesea,peropropietario.Ycomentensobreloqueleyeronenlosforos.Laclasequeviene,
analizaremoslamodalidaddedistribucinquerompicontodosestosmoldesendondelos
programadoressonlosunicosquedefinenlasreglasdejuego,paraequilibrarlabalanzayquetodos,
tantoprogramadorescomousuarios,salganbeneficiados.ELSOFTWARELIBRE.Hastalaprxima!

LuisRodolfoSosaLanda3

Carrera Linux 2008 - Metodologas de


distribucin - Clase 2 - El software Libre
Enestaclaseaprenderemoscualessonlospilaresbsicossobrelosquefuncionaesta
revolucionariamodalidaddedesarrolloydistribucindesoftware.
Enlaclaseanterior,aprendimoslasdefinicionesdesoftwarepropietarioysoftwareprivativo.Enesta
clase,aprenderemosqueeselsoftwarelibre,ymarcaremoslasprincipalesdiferenciasentreelsoftware
libreyelsoftwarepropietario.

Que es el software libre?


ParaqueunprogramaseaSoftwareLibre,estedebecumplirconcuatrorequisitosbsicos.Elprimero
deellosesqueelprogramapuedeserutilizadolibrementesinningntipodelimitacin.Elsegundo
requisitoesqueelprogramapuedeserdistribuidolibrementeycopiadoacuantascomputadorassea
necesario.Eltercerrequisitoesmuysencillo:elprogramasiempredebeestaracompaadodelcdigo
fuente(odeunacartaalusuarioendondeseofrezcaunaccesoal).Esterequisitoesmuyimportante
yaquealdisponerdelcdigofuente,losusuariospuedenhacermodificacionesalyasadecuarlo
mejorasusnecesidades.Elltimopuntoenrealidadnoesunrequisito:unprogramaqueesSoftware
Libresepuededistribuirdemaneramodificada,einclusovender.Siempreycuandoserespetenlos
nombresdelosautoresoriginalesylostrespuntosanteriores,nohayningunarestriccinparahacer
algodedineroconunprogramadesoftwarelibre.

La Licencia Pblica General (GPL)


Losprogramasquesonllamados"SoftwareLibre",utilizanunalicenciadeusoydistribucinllamada
GPL,GeneralPublicLicense,oLicenciaPblicaGeneral.Estalicencia,incluyeclausulaspara
asegurarquelascuatrolibertadesmencionadasanteriormentesecumpla,yserespeten.Puedenleerla
LicenciaPublicaGeneralen:http://es.tldp.org/Otros/gples/gples.html.

La historia de GNU/Linux
Aprincipiosdeladcadadelos80,uncientficodelreadeinteligenciaartifcialdelInstitutode
TecnologadeMassachussets(MIT)llamadoRichardStallman(rms,paralosamigos)decidi
comenzaradesarrollarunsistemaoperativolibre,yaqueensapocalanicaopcinquetenanlos
usuariosdecomputadoreseraladeadquirirunsoftwarepropietario.Elnombredeestesistemaes
GNU,acrnimodelassiglasdelaspalabras'GNUNoesUnix!'.Ladeaprincipaleraqueelsistema
mantengaungradodesimilitudconelyaconocidoUNIXsincompartirunasolalneadecdigo

LuisRodolfoSosaLanda4
fuente.Ideaqueobviamentefuehecharealidadenalgunosaos.Parafinalesdelos80,elsistema
estabaprcticamentecompleto.Sedisponadeeditoresdetexto,interpretesdecomandos,
compiladores,debuggers,etc.Solofaltabauncomponente:elncleo(kernel).Casualmenteenelotro
ladodelmundo(Finlandia)unestudiantellamadoLinusB.Torvaldsdesarrollunncleocompatible
conUNIXsinsaberqueibaaformarpartedelsistemaoperativomsrevolucionariodelmundodela
informatica.AsescomoapareceLinux,elncleodelsistemaGNU.Yesascomohoytenemosun
sistemacompletoanuestradisposicin,elsistemaGNU/Linux.
AhoraquesabenqueelsistemacompletosellamaproyectoGNUyqueLinuxessoloelncleodel
mismo.NolepareceunainjusticiaquetodoelmundolollamesimplementeLinuxasecas?
Lamentablemente,eseconceptoerrneoyaestademasiadoasentadoenlagente,aunquesiempretendr
oportunidaddeexplicaraalguiendedondeprovienerealmenteelnombredelsistema.

La fundacin del software libre


ParalelamenteconeldesarrollodeestesistemaoperativosurgelaFundacindelSoftwareLibrelacual
fomenta,entreotrascosas,lautilizacindeherramientasdesoftwarelibreenlascomputadorasdetodo
elmundo.ElproyectoGNUesunodelosproyectosmsgrandesdesoftwarelibre.Enel,participan
milesdepersonasdetodoelmundocolaborandoconeldesarrollodeaplicacionesparaelsistema,
documentacin,mantenimientodelservidorwebymuchsimoms.Puedenvisitarelsitiooficialdela
fundacinenwww.FSF.org

GNU/Linux: el proyecto ms grande de


Software Libre
GNU/Linuxeselproyectomsgrandedesoftwarelibrejamscreado.Yesgrandeentodosentido:
incluyemilesdeaplicaciones,escritasenmillonesdelneasdecdigopormillonesdeprogramadores.
JamsningnacompaapudodesarrollarunproductodesoftwaretangrandecomoGNU/Linux.
Loimportantedetodoesto,esqueGNU/Linux,alsersoftwarelibre,cumpleconlascuatrolibertades:
GNU/Linuxsepuedeusarlibremente,sepuededistribuirlibremente,podemosvercomoesthechoy
podemosdistribuirversionesmodificadasdelmismo.Deahaquehallatantasdistribucionesde
GNU/Linux.Cualquierapuedehacersupropiaversin!

En conclusin...
EnestaclasehemospresentadoalSoftwareLibre,yasumayorproyecto:GNU/Linux.Paralasemana
prxima,vayanleyendolalicenciapblicageneral(GPL)yaquelaanalizaremosporcompleto,yen
detalle.

LuisRodolfoSosaLanda5

Carrera Linux 2008 - Metodologas de


distribucin - Clase 3 - La licencia publica
general.
EnestaclaseanalizaremosalalicenciaoficialdelaFundaciondelSoftwareLibre,clausulapor
clausula.

La licencia publica general


Enlaclasedehoy,analizaremosclausulaporclausulaalaLicenciaPublicaGeneral(GPL),en
sultimaversinoficial.Siquieren,puedenbajarlaversincompletadesde
http://es.tldp.org/Otros/gples/gples.html.

El prembulo de la licencia
Elpreambuloesunaseccinmuyparticular,quediferenciaalaLicenciaPublicaGeneraldecualquier
otralicenciadecdigoabierto,yaqueactacomointroduccinaloqueeslafilosofadelsoftware
libre.Consloleerelpreambulo,cualquieradeberaentenderdequesetratadelafilosofadel
softwarelibreycualeselespritudelalicenciaGPL.Unapartefundamentaldelprembuloescuando
mencionalosiguiente:
Protegemossusderechosconlacombinacindedosmedidas:
1.Ponemoselsoftwarebajocopyrighty
2.leofrecemosestalicencia,queledapermisolegalparacopiar,distribuiry/omodificarelsoftware.
Esteeselprocedimientocorrectoparaliberarunprogramacomosoftwarelibre.Unavezfinalizado,
debemosregistrardichoprogramaenlaentidadcorrespondiente(osea,ponerelsoftwarebajo
copyright).Luego,alaplicarlelalicenciaGPL,seconvierteenlollamadocopyleft.Almomentode
ponerlobajocopyright,podemosoptarporregistrarloanuestronombre,ocederloalaFundacindel
SoftwareLibreparaqueellosloregistren.

Analisis, clausula por clusula


Bien,ahora,voyaexplicarsucintamenteelespiritudecadaclausula,paraquelacomprendan.Detodas

LuisRodolfoSosaLanda6
formas,esrecomendablesiemprequeleanlalicenciacompletaparatenerunmejorcriterio.
Clausula1:AlmencionarCualquierotraactividadquenosealacopia,distribucinomodificacinno
estcubiertaporestaLicencia,estfueradesumbito,nosestdiciendoquedichalicenciasolosirve
paradefinirlasreglasdejuegoencuantoacopia,distribucionymodificacindesoftware.Ninguna
otraactividadestcontemplada.
Clausula2:Estaclausulanosindicaquepodemosrealizarcopiasliteralesdelprograma,siemprey
cuandomantengamoselanunciodecopyrightcorrespondiente.
Clausula3:Estaclausulanosindicaquepodemosmodificarelcdigofuentedeunprograma,siempre
ycuandoindiquemosenelcdigofuenteunanunciodequienesquehizoelcdigooriginal,yque
cosasfueroncambiadas.Otrorequisitoesquelostrabajosmodificados,debenserlicenciadoconla
mismalicenciaGPL.Estoes,nosepuedecambiarlalicenciadeunprogramaGPL.
Clausula4:Elcdigofuentesedebeincluirenelprograma.Sinoloqueremosincluir(porxrazn),
entoncesdebemosponerunanotadeofrecimientoquedigaalgocomosiquereselcdigofuente,
entraentalservidor,omandameunmailoloquesea,perosiempredebedeexistirunamanerade
accederalcdigofuente.
Clausula5:Nosepuedecopiarnimodificarlosprogramasdeotraformaacomoloindicalalicencia.
Osea,nosepuedemodificarunprogramaycambiarleelanunciodecopyright,onosepuedecopiarun
programaynoofrecerelcdigofuente,etc...
Clausula6:Elsolouso,modificacinodistribucindeunprogramadesoftwarelibreesindicativode
queaceptamoslalicenciapblicageneral.
Clausula7:Todaslascopiasdeprogramasdesoftwarelibredebenincluirunarchivoquecontengala
licenciapblicageneral.
Clausula8:Estepuntoesmuyclaro:Sinopuederealizardistribucionesdeformaquesesatisfagan
simultneamentesusobligacionesbajoestalicenciaycualquierotraobligacinpertinenteentonces,
comoconsecuencia,nopuededistribuirelProgramadeningunaforma.Inclusosiporresolucin
judicialnopuedorespetaralgunadelasclausulasdelalicencia,entonceslomejoresdirectamenteno
utilizarelprograma.
Clausula9:Esposibleaadirunanotaderestriccingeograficaenlaqueindicamosqueno
recomendamoselusodelprogramaenciertospases,porquedichospaisesnoproveenleyesquenos
asegurenquelasclausulasdelalicenciasevayanacumplir.
Clausula10:LaFSFlanzarnuevasversionesdelalicencia,peroexistirasiempreretro
compatibilidad.
Clausula11:Estepuntotambienesmuysencillo:SiquiereincorporarpartesdelProgramaenotros
programaslibrescuyascondicionesdedistribucinsondiferentes,escribealautorparapedirle
permiso..Pedirpermisoesalgomuycomnenelmundodelsoftwarelibre,yesmuchomsqueuna
cuestintica.

La ausencia de garanta
Eltemadelaausenciadegarantaesmuyimportante.Uds.dirn,comoesquenadiesehacecargosi

LuisRodolfoSosaLanda7
micomputadoraexplotaporusarsoftwarelibre.Buenoamigos,quelacomputadoraexploteesmuy
improbable...perolacuestinesqueporejemplo,yohagounprogramaloliberocomosoftwarelibre...
lagentecomienzaahacerlemodificacionessinpedirmepermiso...puedohacermecargodealgoque
nohiceyo?Claroqueno!Entonces,estepuntoesimportantisimoparaprotegeralosprogramadores.
Ahorabien,muchasempresasyprogramadoresindependientesoptanporSIbrindargarantia,y
entoncescuandoesosucede,loagregancononotaalfinaldelalicencia.Lasgarantassebrindan
generlamentecuandoelusuarioestutilizandounaversindelprogramadirectamenteprovistaporuna
empresa,oporsudesarrollador.Sinintermediariosquehayanpodidorealizarmodificaciones.

En conclusin...
Finalmente,lalicenciaincluyealfinal,unaguadepasosaseguirparapoderaplicarlaanuestros
nuevosprogramas.Esmuysencillo.Detodasformas,sitienendudas,losinvitoarealizarlaspreguntas
correspondientesenelforo,astodoslosalumnospuedenleerlasrespuestas.Laclasequeviene,
veremosotramodalidadpopulardedistribucindesoftware:Elcodigoabierto(OpenSource).

Carrera Linux 2008 - Metodologas de


distribucin - Clase 4 - El codigo abierto
DecirCodigoAbiertonoeslomismoquedecirSoftwareLibre.Enestaclase,explicaremoslas
diferencias.

El cdigo abierto
Elcdigoabiertoesunamodalidaddedesarrolloydistribucindesoftwarequenacienelao1998
delamanodegenioscomoEricRaymond,popularGurudelmundodeLinux.
Todonaceconunhechomuypuntual.EricRaymonescribeundocumentollamado"Lacatedralyel
bazar"(querecomiendosulecturaatodoslosalumnos),enelcualEricdescribecomoelmtodode
abrirelcdigodeunproyectopropioletrajomuchosbeneficios.Enresumidascuentas,Ericcuentaun
pocolahistoriadecomocreounprograma,lopusoenInternetconsucodigofuente,ycientosde
personascomenzaronacolaborarparamejorarlo.Suprogramasevolviotodounexitoyhoyesmuy
poderoso.Sihubieratrabajadosolo,nuncahubierapodidodesarrollartantasfuncionalidadesparasu
programa.
Estedocumento,loleyunaltofuncionariodeNetscapequeseconvencidequeelabrirelcdigoera
elfuturodelaprogramacinyentoncesliberelcdigodeNetscape(si,elpopularnavegadorweb).
EsaliberacindelcdigopermitiquehoyexistaloqueconocemoscomoproyectoMozillaysus
derivados(Firefox,Thunderbird,etc).
Porotraparte,EricRaymonnoestabadeacuerdoconRichardStallmanenmuchosaspectosdela
filosofadelaLicenciaPublicaGeneral.Poreso,juntoaungrupodeexpertos,decidicrearloquese
llamalaIniciativaOpenSource.

LuisRodolfoSosaLanda8

La iniciativa Open Source


ElhechoquedeNetscapeliberaraelcodigofueunempujonimportanteparacrearestainiciativa.Por
primeravez,unagranempresacreiaenelcdigoabierto.Ahorabien,alahoradeliberarlo,Netscape
noestabadeacuerdoconalgunosdelospuntosdelaLicenciaPublicaGeneral,entoncesloliberaron
consupropialicencia.
LaIniciativaOpenSource,entendiqueparaquelasempresasseacerquenalcdigoabierto,debian
serunpocomsflexiblesquelagentedelaFundacindelSoftwareLibreconsuLicenciaPublica
General.EntoncescrearonloquesellamaDefinicionOSI(DefinicionOpenSourceInitiative),queno
esnimasnimenosqueundocumentoqueexplicacomocrearunalicenciaquepuedasercosideradade
CdigoAbierto.Porlotanto,sientramosalsitiodelaIniciativaOpenSource,nosencontraremoscon
quehayunlistadodelicenciassoportadas,quetodassoncompatiblesconladefinicinanteriormente
mencionada.

Que programas son Open Source?


ProgramasOpenSourceodecdigoabiertohaymuchos.Dehecho,podemosconsiderarlosatodos,ya
quelaLicenciaPublicaGeneralestsoportadacomoLicenciacompatibleconladefinicinOSI.En
principio,podriamosdecirquecualquierprogramadesoftwarelibre,estambiendecdigoabierto,
peronoviceversa.Losprogramasdecdigoabiertosonaquellosqueutilizanunalicenciaquenoesla
GPL,peroestsoportadaporesteentellamadolaIniciativadelCodigoAbierto.
Quierenejemplos?Mozilla,Apache,Firefox,ThunderbirdyellenguajePerl,sonejemplosde
programasquetienensuspropiaslicencias(nosonlaGPL),peroaunasi,dichaslicenciasson
compatiblesconladefinicindecdigoabierto.

Que caracterisa a un programa de cdigo abierto


Losprogramasdecdigoabiertosecaracterizanporlosiguiente:
1.Elcdigofuentedelprogramasiempreestdisponibleparaquienlodeseever.
2.Elcdigofuentedelprogramasepuedemodificarpormediodemodificaciondirecta,opormedio
deparches.
3.Elcodigofuentesepuederedistribuir.
Enmuchoscasos,laslicenciasdecdigoabiertonopermitenredistribuirversionesmodificadasdel
codigofuenteoriginal.Entalcaso,elprogramadortienelaobligacindepermitirquelosquequieran
hacermodificaciones,lohaganpormediodeparches,paraentoncespoderdistribuirelcodigooriginal,
masunconjuntodeparchesquelomodifican.

En conclusin
LoprimeroquesacamosdeconclusinesqueladiferenciaprincipalentreSoftwareLibreyCodigo
Abierto,masalladelafilosofia,esquelosprogramasdeSoftwareLibreestnregidosporunalicencia
quesellamaGPL.Ylosprogramasdecodigoabiertoestnregidosporunalicenciaquepuedeonoser

LuisRodolfoSosaLanda9
laGPL,peroquedebesercompatibleconladefinicinOSI.
LosinvitoahoraaentraralsitiodeOpenSource,descargarlafundamentacinOSIysacarsuspropias
conclusionesencuantoadiferenciasentreestosdosmovimientos.Elsitioesten
www.opensource.org.

Carrera Linux 2008 - Metodologas de


distribucin - Clase 5 - Estructura de los
proyectos Open Source
Enestaclase,aprenderemosquelosproyectosdecdigoabiertoposeensupropiaestructuray
funcionamiento,lacualdifieremuchodetodolodemsconocido.

Estructura de los proyectos de codigo abierto


Aunqueparezcananrquicos,losproyectosdecodigoabiertoson,enmuchoscasos,sumamente
estructuradosyordenados.ElhechodequeseanmontadosexclusivamenteviaInternet,noquieredecir
quecadaunohagaloquequiera.Existencomponentesygruposdetrabajo.Loscomponentesque
aparecenentodoproyectodecdigoabiertoson:
ProjectLeader(liderdeproyecto):Esquienestaacargodetomarlasdecisionesmsimportantes.
Generalmente,esquieniniciaeldesarrollodelprograma.
Grupo'devel':Sonlosprogramadores(developers)establesdelproyecto.Colaborandiariamenteconel.
Colaboradoresexternos(contrib):Sonprogramadoresqueocasionalmentehacenalgnaporteal
proyecto.
Testers:Sonpersonasdedicadasaprobarlasfuncionalidadesdelprogramayreportarerrores
encontradosalgrupo'devel'.Estaspersonas,trabajansobreunsistemadereporteyadministracinde
erroresllamado'bugtracker',elcualtrataremosmasadelante.
Documentadores(doc):Sonpersonasquesededicanadocumentarmanualessobrelautilizaciondel
programa.Puedendividirseensubgruposporidiomas.Estegrupodelproyectoposeesupropiolderde
area.Mantenedordelcdigofuente(sourcemantainer):Esquienseencargadegenerarlospaquetesde
distribucindelprograma.RecibeelcdigofuenteconelOKdellderdelproyecto,recibela
documentacincorrespondientedelgrupo'doc'yentoncesgeneraunpaquete.Dichopaqueteest
generalmenteenformato.tar.gz,rpmodebyeselquelosusuariossebajarnmstardedeInternet.
Publicacion(pub):Elpaquetequegeneraelmantenedordelcodigofuenteesenviadoluegoalgrupode
publicacin,quienseencargadegenerarlossitioswebdelproyecto,mantenerlosactualizadosy
anunciarlasnuevasversionesdelprograma.
Comoven,haymuchoscomponentesesencialesenunproyectodecdigoabierto.Generalmente,todos
estoscomponentesnoaparecendesdeelprimermomentodenacimientodelproyecto,sinoquea

LuisRodolfoSosaLanda10
medidaqueelproyectocrece,lagentecomienzaacolaboraryseformanlosgruposanteriormente
descriptos.CuandounapersonahaceunproyectonuevoyloponeenInternetporprimeravez,esa
personaeselprogramador,ellider,eldesarrolladordedocumentacin,elencargadodeprobarlo,etc
Empiezadecero,yamedidaquelagenecomienzaacolaborar,delegatareas.

Relacin usuario-proyecto
Losusuariosdecdigoabierto,generalmentegozandepuertasabiertasdecomunicacinpara
contactarseconlosresponsablesdelasdiferentesreasdedesarrollodelproyecto.Losrecursosde
comunicacinsonbsicamente3:
Listasdecorreodeusuarios(users)
Forosdediscusinenelsitiodelproyecto
Accesoalsistemadebugtracking.
Comovern,todossonserviciosdecomunicacinmontadossobrelaInternet,queeslagran
responsabledelxitoquegozanelcdigoabiertoyelsoftwarelibre.

El sistema de bugtracking
Elsistemaderegistracionyadministracindeerrores(bugtracking)esgeneralmenteunsistema
publico,desarrolladoenalgnlenguajequepermitamanejarelprogramadesdeunainterfazweb(PHP
oPerl,porejemplo).Endichosistema,losusuariosdelprogramapuedenreportarloserroresque
encontraronmientrasusabandichaaplicacion.Adems,legentedelgrupodetesterstambienincluye
suspropiosreportes.Luego,elresponsabledelgrupodeprogramadoresinternos(devel)seencargade
asignartareasalosprogramadoresparairsolucionandotodoslosproblemasreportados.Cuandose
reportaunerror,generalmenteseregistranlossiguientesdatos:Fechadereporte
Numerodeerror
Titulodelerror
Descripcioncorta
Descripcionlarga
Nombredelapersonaqueloreporta
Aquienfu?asignadalatareadesolucionarlo
Estadodelerror(pendienteasignacion,asignado,corregido).
Paraverunsistemadebugtrackingenvivoyendirecto,puedenvisitarelsitiowww.sourceforge.nety
accederacualquierproyectoalojadoall.Luego,vayanalaseccion"Bugs".

En conclusin
Enestaclase,hemosanalizadocualessontodoslosgruposdepersonasqueconformanunproyectode
cdigoabierto,ycualeslatareadecadaunodeellos.Esesencialqueingresenasitiosdeproyectos

LuisRodolfoSosaLanda11
abiertosparavermsfcilmenteestosgrupos.ElsitioSourceForge(mencionadoanteriormente)esuna
excelenteopcin.

Carrera Linux 2008 - Metodologas de


distribucin - Clase 6 - Analizando los paquetes
de distribucion
EnestaclaseanalizaremoslospaquetesdedistribucindeaplicacionesdeGNU/Linux.

Los paquetes de distribucion


Llamamospaquetesdedistribucion,aesearchivocomprimidoquesebajancadavezquequierenponer
unanuevaaplicacinensucomputadora.LosqueestnacostumbradosaWindows,sabenqueestos
paquetesestnenformato.ZIP.Entonces,losdescomprimenconelWinzip,ejecutanelinstaladorya
otracosa.
EnLinux,lacuestinnoesas.Existendiferentesformatosqueseutilizansegnlanecesidad.
Comenzaremosporhablardeellos.

Los formatos de los paquetes


EnelmundodeGNU/Linux,reinantresformatosdiferentesdeempaquetamiento.Elprimerodeellos
eselconocidocomo.tar.gz(si,dobleextensin).El.tar.gzesunpaquetecomprimido,de
caractersticassimilaresal.ZIP.NecesitamosdeunautilidadquesellamaTARparadescromprimirlo
enalgndirectorioypoderaccederasucontenido.
OtroformatodeempaquetamientoeselRPM.DesarrolladooriginalmenteporlagentedeRedHat,
RPMesunformatodeavanzada,yaqueademsdecomprimir,instalaenlacomputadoraunabasede
datosquellevaunregistrodeprogramasinstalados,sucorrespondienteversion,dependencias,etc.
Osea,queconRPM,cadaprogramaqueinstalamosquedaregistradoyluegopodemosactualizarloo
removerlodemanerarpidaysencilla.
Finalmente,lagentedeDebiandesarrollounsistemadeempaquetamientollamadoDEB,muysimilar
alRPM.
Ahorabiencualutilizar?Bueno,enprimerlugar,diremosquelosRPMylosDEBseutilizanpara
distribuiraplicacionesyacompiladas,listasparainstalaryusar.Elformato.tar.gzseutilizapara
distribuiraplicacionesenformatodecdigofuente.Ustedesdiran,bueno,supongoqueinstalarun
programayacompiladoesmsfcilquecompilarlo,ytienenrazon.Elhechoesquenosiempre
encontramoslasaplicacionesenInternetenformatoRPM,oenformatoDEB.Perosiempre
encontraremosaplicacionesen.tar.gz,porloquesabercompilaraplicacionesesprimordial.
Comoconclusin,diremosquecuandoveanun.tar.gz,esaltamenteprobablequesetratedecdigo

LuisRodolfoSosaLanda12
fuenteycuandoveanunRPMounDEB,esaltamenteprobablequesetratedeunbinariofacilde
instalar.

Los nombres de los paquetes


VieronquelosnombresdelospaquetescomprimidosdeGNU/Linuxsonmuylargos?Estoesporque
enelnombredelprogramasenosofrecemuchainformacintil.Veamosunejemplo:
abiword2.2.4src.tar.gz
Todoloqueaparecehastaelprimersimbolomenos,eselnombredelprograma.Adems,porla
extensinsuponemosquesetratadecdigofuente.Sisefijan,despuesdelsimbolomenos,vemosel
nmerodeversin:2.2.4.Luego,lapalabrasrc,quevienedesource,nosaseguraquesetratade
cdigofuente.Sihabraalgocompiladodentrodel.tar.gz,entoncesenlugardesrc,nosindicarala
plataformaparalacualfecompiladoeseprograma:
abiword2.2.4i386.tar.gz
Nosencontramosconunaecepcinalaregla.Unbinario,metidodentrodeunpaquete.tar.gz.I386es
elnombredelaplataformaparaelcualfucompilado.
Enconclusin,yasabenqueelnombredeunpaquetenosindicamuchosobresucontenido,deaha
queseantanlargos.

Analizando los paqutes .tar.gz


Lospaquetes.tar.gz,quegeneralmentecontienencdigofuente,incluyenunaseriedearchivosque
tenemosquerevisarantesdeprocederaintentarinstalarelprograma.Estosson:
INSTALL:Esundocumentoquenosofreceinstruccionesparalainstalacin.
README:Notasgeneralesqueeldesarrolladordelprogramaquierequesepamos.
AUTHORS:Listadodeautoresquecolaboraronenelprograma.
BUGLOG:Listadodeerroresconocidosenlaversinqueestamosporinstalar.
CHANGELOG:Listadodecambiosquesufrielprograma,desdesunacimiento,hastalaversin
actual.LICENCE:Licenciaquerigeelusodelprograma.
SialgunavezsededicanadesarrollarunproyectodeSoftwareLibre,asgurensedeincluirtodosestos
archivosenelpaquetededistribucin.

En cuanto a los nmeros de versin...


Vieronquelosnmerosdeversindelosprogramastienentresdgitos?Bueno,estoesporquese
necesitanmuchosnumeros,paraidentificarlasmuchasversionesdeunmismoprogramaqueselanzan.
Recuerdenquelosproyectosdecdigoabierto,tienenmuchamsactividadquelosproyectos
propietarios,poresoselanzanversionesmsamenudo.
Peroalgoquehayquetenerencuentaencuantoalosnmerosdeversiones,esquemuchosproyectos

LuisRodolfoSosaLanda13
utilizanelnmerodelmedioparaindicarsiunprogramaesestableoinestable.Losprogramasestables
sonaquellosquefueronprobadosyseconsideraquelospuedeutilizarelpblicomasivo.Lasversiones
inestables,sonversionesdepruebaparadesarrolladores.Comoseindicaestoenelnmerode
versin?Utilizandounnmeroparcomosegundodgitoestamosindicandoqueesunaversinestable.
Unnmeroimparindicaqueesunaversininestable.Veamosunejemplo:
2.2.5Esunaversinestabledelprograma.
2.3.5Esunaversininestable.
2.3.6OJO!Notodoslosprogramassiguenestaconvencin.Unejemplodeproyectoqueslasiguees
elncleoGNU/Linux.Unncleodelaserie2.6.0esestable,yunncleodelaserie2.5.0esinestable.

Para la prxima...
Laprximaaprenderemosainstalarprogramasdesdeelcdigofuente.Vayanbajandoseprogramasen
formato.tar.gzeidentifiquentodoslosdatosquelesofreceelnombredelarchivo.Busquenla
documentacinquemencionamosanteriormenteallidentrotambien(elarchivoLICENCE,
AUTHORS,etc).Hastalaprxima!

Carrera Linux 2008 - Metodologas de


distribucin - Clase 7 - Instalacin de un
programa desde el cdigo fuente.
Enestaclasepresentamosunapequeaguadecompilacindeprogramas,paracuandolos
programadoresslonosdanpaquetesdecdigofuentedesusaplicaciones.

Clase 7 Instalacin de programas desde el


cdigo fuente
Muchasveces,nosencontramosconqueciertoprogramaquequeremosinstalarennuestra
computadoranoestenelformatodecompresinestandardenuestradistribucin.Entonces,nonos
quedamsopcinquecompilarlasfuentes.Peroantesdeentrarendetalleeneso,empecemosporel
principio.

Por que los programadores distribuyen el cdigo fuente?


Bueno,princpalmentepordosrazones.Enprimerlugar,porquelosprogramadoresdesoftwarelibrey
cdigoabiertoquieranquecualquierpuedaaccederasucdigofuenteyrealizarmejorasy
modificaciones.Asescomofuncionatodoestesistemayyalohemosanalizadoenclasesanteriores.
Lasegundarazon,esquecomohaymuchasdistribuciones,esmuydificilarmarunpaquetede
instalacinquefuncioneentodas.Entonces,loquesehaceesarmarpaquetesdedistribucinparalas

LuisRodolfoSosaLanda14
distribucionesmspopulares,yelrestoquesearregleconelcdigofuente.Enteoria,cuando
cualquierprogramapuedeserinstaladoencualquierdistribucin,contanslousarelcdigofuente.

Pasos necesarios para compilar un programa


Elprocesorequeridoparacompilarunprogramaesmuysencilloyconstadetrespasos.Elproblema,
esqueestostrespasosescondencomplicadosprocesosynosiemprellegamosabuenpuerto.
Unavezdescargadoelcdigofuente,procedemosacopiarloaldirectorio/usr/srcqueeseldirectorio
destinadoaalmacenarelcdigofuentedelosprogramas.Paraesto,tipeamos:
cparchivo.tar.gz/usr/src
Elprximopasoseraentrarendichodirectorioydescomprimirelpaquete:
cd/usr/src
tarzxvfarchivo.tar.gz
Intuyoquenosernecesarioexplicarelprimercomando(siaslofuera,repasourgentedeOperacin
Basica,porfavor).Elsegundocomando,seencargadedesempaquetarelarchivo.Susparametrosson:
z:Comoesunarchivocomprimidocongzip(losabemosporlaextension.gz),primero
descomprimimoselpaquete.
x:Unavezdescomprimidoelpaquete,lodesempaquetamosensusarchivoscorrespondientes.
v:Lepedimosquenosmuestreenpantallaelnombredecadaunodelosarchivosquev
desempaquetando.
f:Conesteparmetroleindicamosatarelarchivoquequeremosdesempaquetar.
Unavezhechoesto,nosdisponemosatipearelprimercomandonecesario:
./configure
Elcomandoconfigureloquehaceesrastrearquenuestrosistematengainstaladostodoslos
componentesnecesariosparaquelaaplicacinqueestamostratandoinstalar,lohagacorrectamente.
Vernquechequeadiferentescosasyreportayessiencuentraloquenecesitaonosinolo
encuentra.Sireportaunnoysiguebuscando,entoncesquieredecirqueesecomponentenoera
esencialparaelfuncionamientodelaaplicacin.Encasodequereportenoycorte,entoncesquiere
decirquefaltaelcomponenteindicadoytendremosqueprocederabuscarloenInternet(oenlosCDs
deladistribucinqueusemos)einstalarlo,siguiendolosmismospasosdescriptosenlaclasedehoysi
esquedescargaronelcdigofuente.
Muchaantencinalasversiones.Puedequetengamoselcomponentequepidelaaplicacin,peroen
unaversinanterioralarequerida,porlocualtendremosqueactualizarigualmente.
Cuandoconfigureterminadechequearelsistema,vernqueenpantallaimprimevariosmensajesde
creatingMakefile...ysimilares.Cuandocomiencenaverdichosmensajes,significaquehemos
completadotodoslosrequisitosmnimosparaquefuncioneelprograma,ypodemosprocederal
prximopaso.Elscriptconfigureloquehacefinalmenteescrearunarchivoquesellama
Makefile,queesunmapadecompilacin.Osea,defineelordenenelcualsecompilarnlascosas.

LuisRodolfoSosaLanda15
Entonces,unavezcreado,procedemosacompilarlaaplicacinconelsiguientecomando:
make
Elprocesopuededurarminutos,horasodias,segunlaaplicacinyeldesempeodenuestroequipo.
Unavezfinalizadoelproceso,elcomandomakegeneraunarchivobinariolistoparaserusado.Lo
nicoqueresta,esquedichobinarioylosdemsarchivosdelprograma,estnubicadoscadaunoenel
directorioquelescorresponde.Paraesto,tipeamoselltimocomando:
makeinstall
Entonces,unavezcopiadacadacosaasulugar,podemosutilizarlaherramienta.

Y si las cosas salen mal?


Bueno,nosesientanfrustrados.Hastalosmsexpertostenemosproblemashoydiaparacompilar
programas.Heaqualgunasrecomendaciones:
*Elprincipalproblemadecompilarprogramasesquenosiempretenemostodosloscomponentes
necesariosparaquefuncione.Entonces,elcomandoconfigurefalla.Poresto,leanantessiempreel
archivoINSTALLqueacompaaacadapaquetedeaplicacindistribuidaencdigofuente.Aveces,
haymsayudasobrelainstalacinenelarchivoREADME.
*Sifallaelconfigure,esproblemanuestro.Quieredecirquenosfaltancosas.
*Sifallaelmake,generalmenteesproblemadeldesarrollador,porquehayunerrorenelcdigo.
*Sinolesfuncionaelmakeinstall,entoncesseguroesporquefallaronpreviamenteelconfigureoel
make.Mirenbienlapantalla.
Porltimo,lesrecomiendopaciencia.Noesunatareafcil,perocomoentodo,laprcticaesmuy
importante.Poreso,recomiendoqueintentencompilarprimeroprogramaspequeos,quenotengan
muchasdependenciasdecomponentes.CompilarKDE?GNOME?OpenOffice?Olvidenlo!Traten
debajarlosarchivosbinariosparaladistribucinqueusenysino,aactualizarladistribucin.

En conclusin...
Enestaclasehetratadodedescribircomoseinstalaunprogramadesdelasfuentes,comovernel
procesoparecesencillo,peroelproblemadelasdependenciasnosaquejaatodos.Lesrepito,sinoles
funcionalaprimeravez,nosesientanfrustrados,atodosnospasahabitualmenteytodocuestinde
leerbienlosarchivosdedocumentacinincluidosencadapaquetedeinstalacin.

Carrera Linux 2008 - Metodologas de


distribucin - Clase 8 - Conclusin de la materia
Hemosllegadoalfinaldelamateriayeshoradereflexionesypreparacinparalaevaluacion
final.

LuisRodolfoSosaLanda16
Metodologasdedesarrolloesunamateriaquetuvoporobjetivopresentarlasmodalidadesde
desarrolloydistribucindesoftwareajenasalapopularmenteconocidamodalidad"propietaria".
Hemosvistoprincipalmentedosmodalidades:SoftwareLibreyOpenSource.Sibienambasmantienen
espiritussimilares,tienengrandesdiferenciastantotecnicascomofilosoficas.Sinoquedaronclaras,
porfavorvuelvanaleerlasclasescorrespondientesypreguntenenlosforos.

Las tpicas preguntas...


Yllegandoalfindelamateria,seriabuenoqueconlosconocimientosvistos,ylaexperienciavividaen
estosdosmesesdecarrera,reflexionenacercadelasrespuestasaestaspreguntas:
1.Esposible"apagar"elmovimientodelsoftwarelibre?
2.EsposibleladesapariciondeLinux?
3.PuedenMicrosoftysusmillonesconvenceralosmillonesdeprogramadoresdedejardedesarrollar
softwarelibre?
4.SiRichardStallmanyLinusTorvaldsquisierandejardetrabajarenproyectosdesoftwarelibreque
pasaria?
Yentonces,llegarnalamismaconclusinquemuchosyaconocemos.Elsoftwarelibreesuna
realidadqueyaestentrenosotros.Esunfenomenotecnologicoysociocultural.Eslavivamuestrade
quecuandolagentequiere,sepuedeorganizaryhacercosasbuenas.Ponerseencontradelsoftware
libreesunatonteria,porqueseracomoponerseencontradelamismisimaInternet,oinclusodela
globalizacinefectodelosmediosdecomunicacin.Sonrealidades.Nosonculpadenadie,sinode
todosnosotrosysonunamuestradelascapacidadesdelossereshumanos.

El futuro? Los servicios


Yyamuchosestarndiciendo"ehperoelsoftwarelibreessinonimoderegalarprogramas!"Cuantose
equivocan!Recuerdenquenielsoftwarelibrenielcdigoabiertoobliganalosprogramadoresano
cobrarporsusprogramas.Puedencobrarsiquieren.Peroelmercadotecnologicoyasedicuentaque
losnegociosenelnuevomileniovandelamanodelosserviciosrelacionadosconlosprogramas,yno
conlaventadelosprogramasens.
MuestradeestotenemosalamismisimaMicrosoft,queconsu.NETestdesarrollandounaplataforma
quesirvaparabrindarsusprincipalesproductos(porej.Office)como"serviciosonline",yentonces
cobrarporsuuso.

La evaluacin
Proximamenteestardisponiblelaevaluacinparaquelarealicen.Esmultiplechoiceynoesmuy
compleja,perolesrecomiendoquevuelvanaleercadaclase,paraaprobarladeunaynotenerque
rehacerlamsadelante.Muchasuerte,yestoyenlosforosparaayudarlosenloquenecesiten.

Vous aimerez peut-être aussi