Ett långt och lite osammanhängande svar, det finns flera skolor ang paketinstallation. 1. Att använda asdf-install 2. På debian: använda common-lisp-controller och debians paket. 3. Inte använda paket, istället arbeta med versionshanterade system direkt.
jag är lite skeptisk mot idén om "releaser", och så vill jag enkelt kunna bidra med patchar om så behövs till de paket som finns, så jag vill använda versionshanterade setup. Distribuerade VC system som darcs gör det ju suveränt enkelt att mixtra med pathcar, brancha osv. Jag har en setup som är starkt inspirerad av en blogpost från BIll Clementson: http://bc.tech.coop/blog/051004.html Använder nästan endast darcs, och tailor för att konvertera från andra system (typ cvs), och en katalogstruktur ungefär som BC. Se beskrivningen nedan om någon är intresserad. Svar på fråga 1: Ja jag tror det, rensa gamla fasl filer och länka asd filer, men med min setup länkar jag sällan asd filer manuellt. Ett skript för att rensa gamla .fasl filer är oumbärligt: #!/bin/sh # Grep is: Make sure that no files below acl directory is removed find -name "*.fasl" -print0 | grep -z -v /acl | xargs -0 rm Svar på fråga 2: Är det vanligt att man releasar ett paket som .... Det är inte direkt en stab av personer som kollar varje release, det är en anledning till att jag inte riktigt tror på konceptet. Så, jag skulle tro att det är vanligt att man gör fel avseende beroenden Jag har en idé att göra en cpan eller asdf-install killer, men det skulle basera sig på versionshanteringspatchar (darcs) och inte "releaser", kombinerat med automatisk testning varje natt i olika miljöer som körs i Xen/VmWare el dyl. Skriver lite på det i tunnelbanan då och då, men tiden räcker inte riktigt till. Finns det ingen som smyger på listan och vill ha idé till exjobb, och vill be en stjärna på Lisp-himlen? /Henrik Directory structure: inspired by Bill Clementson ------------------------------------------------- lisp/: The ~/lisp/ directory is the "root" directory for all lisp libraries and source code. docs/: The location of my local copy of the CL Hyperspec and a number of other lisp-related documents. site/: Contains all of the directories of lisp libraries that are installed via asdf-install. src/: Contains directories with lisp source code that I keep for reference only or that can't be loaded with asdf. systems/: Contains the symbolic links to the .asd files that are in the ~/lisp/site/* directories. These symbolic links are created automatically by asdf-install. pub-vc/: Code from version controlled repositories rater than asdf vc/: own local darcs branches (working copies) of repos in pub_vc that I have modified systems-vc/: symlink to asd files in vc OR pub_vc systems-other/: symlinks to asd files elsewhere on the computer unstable/: Contains directories of "bleeding-edge" versions of lisp libraries that I have downloaded from version control repositories. Dynamically added by ~.swank.lisp Scripts to update repositories: ------------------------------------------------- lisp/pub-vc/update-ucw-stuff.sh :darcs pull of latest ucw repositories lisp/vc/pull.sh : darcs pull from repositories in lisp/pub-vc Scripts to make correct symlinks to .asd files: ------------------------------------------------- /lisp/pub-systems-vc.sh : Erases all symlinks in systems-vc, then symlink to all .asd files in lisp/pub-vc. Use when you want to try the latest unmodified copy of ucw #!/bin/sh rm systems-vc/*.asd # find asd files | show NOT matching _darcs | symlink find /home/henrik/lisp/vc/ -name *.asd | grep -v _darcs | xargs ln -s -t ./systems-vc/ /lisp/update-systems-vc.sh : Erases all in systems-vc, then symlinks to all .asd files in lisp/vc (higher priority) and lisp/pub-vc (lower priority) Use for my local branch of ucw #!/bin/sh rm systems-vc/*.asd # find asd files | show NOT matching _darcs | symlink find /home/henrik/lisp/vc/ -name *.asd | grep -v _darcs | xargs ln -s -t ./systems-vc/ # If not in vc, take asd from pub-vc find /home/henrik/lisp/pub-vc/ -name *.asd | grep -v _darcs | xargs ln -s -t ./systems-vc/ Other relevant files ---------------------------------------- .asdf-setup : Setup asdf search paths, copied from Bill Clementsons blog http://bc.tech.coop/blog/051004.html and slightly adapted (push (conc-to-pathname *lisp-dirs* "systems/") asdf:*central-registry*) (push (conc-to-pathname *lisp-dirs* "systems-vc/") asdf:*central-registry*) (push (conc-to-pathname *lisp-dirs* "systems-other/") asdf:*central-registry*) ~/.sbclrc : Loads .asdf-setup (sbcl) ~/.clinit.cl : Loads .asdf-setup (allegro) .asdf-install: Makes asdf install install at the right place. (setf asdf-install:*locations* '((#p"/home/henrik/lisp/site/" #p"/home/henrik/lisp/systems/" "Install at location specified in my .asdf-install file"))) On Jan 8, 2008 3:17 PM, Linus Nordberg <[EMAIL PROTECTED]> wrote: > Hej! > > Jag ägnade just en stund åt att försöka förstå lite mer av > paketinstallation och användning och har nu några nya kunskaper och en > fråga. > > > - Om cl+ssl saknar libssl.so och du sitter på ett Debian (-derivat) så > kan sudo apt-get install libssl-dev vara lösningen (istf att symlänka > själv och riskera att det går sönder om ett år i samband med något > till synes orelaterat). > > - Om iolib gnäller över att cffi:foreign-pointer inte finns så kan det > bero på att releasad cffi (0.9.2) inte innehåller denna symbol. Något > åt det här hållet kan hjälpa (SBCL @ Debian): > > $ wget http://common-lisp.net/project/cffi/tarballs/cffi-080106.tar.gz > $ tar xzf cffi-080106.tar.gz -C ~/.sbcl/site > $ rm ~/.sbcl/systems/cffi*.asd > $ for f in ~/.sbcl/site/cffi-080106/*.asd; do ln -s $f ~/.sbcl/systems/; > done > > Ev. måste man städa bort gamla .fasl-filer också. Dom hamnar tydligen > under > /var/cache/common-lisp-controller/<PID>/sbcl/local/<PATH>. Ytterligare > en kunskap för mig -- på FreeBSD hamnar .fasl direkt under > sås-katalogen i ~/.sbcl/site/<PACKAGE> men det här var onekligen > smart. > > > Så till frågan. Är det så här man gör (andra punkten)? Dels det här > manuella symlänkandet av .asd-filer och dels städningen av .fasl? Det > sistnämnda har jag sett någonting om där man specialiserar ngn > asdf-funktion så att den städar automagiskt men, återigen, är det så > "man gör"? I praktiken. > > Jag hade nog två frågor egentligen: Är det vanligt att man releasar ett > paket som beror på features i ett annat paket som ännu inte är > releasade? (I det här fallet fick jag iolib-0.5.4 och cffi-0.9.2 genom > asdf-install, som fann dom på cliki.net antar jag.) > > -- > Linus > > > _______________________________________________ > Lisp mailing list > Lisp@lisp.se > http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp > > > > -- Henrik Hjelte [EMAIL PROTECTED] +46703993945 http://stix.to Lästmakarg 18-20 (IQube) Box 7438 S-103 91 Stockholm Sweden
_______________________________________________ Lisp mailing list Lisp@lisp.se http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp