Luafilesystem Binære Alternativer
LuaFileSystem LuaFileSystem er et Lua-bibliotek utviklet for å utfylle settet med funksjoner relatert til filsystemer som tilbys av standard Lua-distribusjonen. LuaFileSystem tilbyr en bærbar måte å få tilgang til den underliggende katalogstrukturen og filattributtene. LuaFileSystem er fri programvare og bruker samme lisens som Lua 5.x (MIT). Nåværende versjon er 1.6.3. Den fungerer med Lua 5.1, 5.2 og 5.3. LuaFileSystem kilde kan lastes ned fra sin Github side. Versjon 1.6.3 15Jan2015 Lua 5.3 støtte. Diverse feilrettinger. Versjon 1.6.2 Oct2012 Full Lua 5.2 kompatibilitet (med Lua 5.1 fallbacks) Versjon 1.6.1 01Oct2012 fix bygge for Lua 5.2 Versjon 1.6.0 26Sep2012 getcwd fix for Android støtte for Lua 5.2 legg til lfs. link andre bug fixes Versjon 1.5.0 20Oct2009 Lagt til eksplisitte neste og nærme metoder for å returnere verdien av lfs. dir (katalogobjektet), for eksplisitt iterasjon eller eksplisitt avslutning. Lagt til låsing via lfs. lockdir-funksjonen (se håndboken). Versjon 1.4.2 03Feb2009 fast bug lfs. attributes (filnavn, størrelse) overflow på filer 2 Gb igjen (feilrapport og oppdatering av KUBO Takehiro). fast bug Kompileringsfeil på Solaris 10 (feilrapport og patch av Aaron B). faste kompileringsproblemer med Borland C. Versjon 1.4.1 07May2008 dokumentasjonsvurdering fast Windows-kompilering problemer fast feil i Windows-tester (patch av Shmuel Zeigerman) fast bug lfs. attributes (filnavn, størrelse) overlasting på filer 2 Gb Versjon 1.4.0 13Feb2008 lagt funksjon lfs. setmode (fungerer bare i Windows-systemer). LFS. attributes gir en feil hvis attributtet ikke eksisterer Versjon 1.3.0 26Oct2007 tilleggsfunksjon lfs. symlinkattributes (fungerer bare i ikke-Windows-systemer). Versjon 1.2.1 08May2007 kompatibel bare med Lua 5.1 (Lua 5.0-støtte ble droppet) Versjon 1.2 15Mar2006 lagt til valgfritt argument til lfs. attributes tilleggsfunksjon lfs. rmdir feilrettelse på lfs. dir Versjon 1.1 30May2005 lagt til funksjon lfs. touch. Versjon 1.0 21Jan2005 Versjon 1.0 Beta 10Nov2004LuaFileSystem ble designet av Roberto Ierusalimschy, Andreacute Carregal og Tomaacutes Guisasola som en del av Kepler-prosjektet. som har sin opphavsrett. LuaFileSystem er for tiden vedlikeholdt av Faacutebio Mascarenhas. LuaFileSystem Introduksjon LuaFileSystem er et Lua-bibliotek utviklet for å komplettere settet med funksjoner relatert til filsystemer som tilbys av standard Lua distribusjon. LuaFileSystem tilbyr en bærbar måte å få tilgang til den underliggende katalogstrukturen og filattributtene. LuaFileSystem bør bygges med Lua 5.1, slik at språkbiblioteket og toppfiler for målversjonen må installeres riktig. LuaFileSystem tilbyr en Makefile og en separat konfigurasjonsfil, config. som bør redigeres for å passe din installasjon før du kjører. Filen har noen definisjoner som stier til eksterne biblioteker, kompilatoralternativer og lignende. På Windows, C-kjøretiden som brukes til å kompilere LuaFileSystem, må være den samme kjøretiden som Lua bruker, eller noen LuaFileSystem-funksjoner vil ikke fungere. Installasjon Den enkleste måten å installere LuaFileSystem på er å bruke LuaRocks: Hvis du foretrekker å installere LuaFileSystem manuelt, skal det kompilerte binære kopieres til en katalog i C-banen. LuaFileSystem tilbyr følgende funksjoner: lfs. attributes (filepath, aname atable) Returnerer en tabell med filattributtene som svarer til filepath (eller null, etterfulgt av en feilmelding i tilfelle feil). Hvis det andre valgfrie argumentet er gitt og er en streng, blir bare verdien av det navngitte attributtet returnert (denne bruken tilsvarer lfs. attributes (filepath) aname. Men tabellen er ikke opprettet, og bare ett attributt blir hentet fra OS). hvis et bord er bestått som det andre argumentet, er det fylt med attributtene og returnert i stedet for et nytt bord. Attributtene beskrives som følger attributtmodus er en streng, alle de andre er tall, og tidsrelaterte attributter bruker samme tidreferanse for os. time. dev på Unix-systemer, representerer dette enheten som inoden ligger på. På Windows-systemer representerer stasjonsnummeret til disken som inneholder filen ino på Unix-systemer, dette representerer inodenummeret. På Windows-systemer har dette ingen merkemodusstreng som representerer den tilknyttede beskyttelsesmodusen (verdiene kan være fil. Katalog. Link. Socket. Kalt pipe. Char enhet. Blokk enhet eller annet) nlink antall hardt koblinger til filen med bruker-ID av eier (bare Unix, alltid 0 på Windows) Gid-gruppe-ID av eier (bare Unix, alltid 0 på Windows) rdev på Unix-systemer, representerer enhetstypen, for spesielle filinoder. På Windows-systemer representerer det samme som dev-tilgangstid for siste tilgangsendringstid for siste dataendring endringstid for siste filstatus endring størrelse filstørrelse, i bytes tillatelser filtillatelser strengblokker blokk tildelt for fil (bare Unix) blksize optimal filsystem IO blockize (kun Unix) Denne funksjonen bruker stat internt, så hvis den oppgitte filepathen er en symbolsk lenke, følges den (hvis den peker på en annen lenke, følger kjeden rekursivt) og informasjonen handler om filen den refererer til. For å få informasjon om selve lenken, se funksjonen lfs. symlinkattributes. lfs. chdir (bane) Endrer gjeldende arbeidskatalog til den angitte banen. Returnerer sant i tilfelle suksess eller null pluss en feilstreng. lfs. lockdir (sti, secondstale) Oppretter en låsefil (kalt lockfile. lfs) i sti hvis den ikke eksisterer og returnerer låsen. Hvis låsen allerede eksisterer, kontrollerer den om den er gammel, ved bruk av den andre parameteren (standard for den andre parameteren er INTMAX. Som i praksis betyr at låsen aldri blir foreldet.) For å frigjøre låseanropslåsen: fri (). feil, det returnerer null og feilmeldingen. Spesielt, hvis låsen eksisterer og ikke er foreldet, returnerer den filen som eksisterer. LFS. currentdir () Returnerer en streng med gjeldende arbeidskatalog eller null plus en feilstreng. iter, dirobj lfs. dir (bane) Lua iterator over oppføringene i en gitt katalog. Hver gang iteratoren kalles med dirobj, returneres det et katalogoppføringsnavn som en streng, eller null hvis det ikke er flere oppføringer. Du kan også iterere ved å ringe dirobj : neste () og eksplisitt lukk katalogen før iterasjonen er ferdig med dirobj: lukk (). Løser en feil hvis banen ikke er en katalog. lfs. lock (filhåndtering, modus, start, lengde) Låser en fil eller en del av den. Denne funksjonen fungerer på åpne filer, filhåndtaket skal angis som fi første argument. Strengmodusen kan enten være r (for en readshared-lås) eller w (for en skrive-eksklusiv lås). De valgfrie argumentene start og lengde kan brukes til å angi et startpunkt og lengden begge skal være tall. Returnerer sant hvis operasjonen var vellykket i tilfelle feil, returnerer den null plus en feilstreng. lfs. link (gammel, ny, symlink) Oppretter en lenke. Det første argumentet er objektet å lenke til og det andre er navnet på lenken. Hvis det valgfrie tredje argumentet er sant, vil linken være en symbolsk lenke (som standard blir det opprettet en hard link). lfs. mkdir (dirname) Oppretter en ny katalog. Argumentet er navnet på den nye katalogen. Returnerer sant hvis operasjonen var vellykket i tilfelle feil, returnerer den null plus en feilstreng. lfs. rmdir (dirname) Fjerner en eksisterende katalog. Argumentet er navnet på katalogen. Returnerer sant hvis operasjonen var vellykket i tilfelle feil, returnerer den null plus en feilstreng. lfs. setmode (fil, modus) Angir skrivemodus for en fil. Modusstrengen kan enten være binær eller tekst. Returnerer sant fulgt den forrige modusstrengen for filen, eller null, etterfulgt av en feilstreng ved feil. På ikke-Windows-plattformer, hvor de to modusene er identiske, har modusen ingen innstilling, og modusen returneres alltid som binær. lfs. symlinkattributes (filepath, aname) Identisk til lfs. attributes bortsett fra at det får informasjon om selve lenken (ikke filen den refererer til). I Windows støtter denne funksjonen ennå ikke lenker, og er identisk med lfs. attributes. lfs. touch (filepath, atime, mtime) Angi tilgang og modifikasjonstider for en fil. Denne funksjonen er et bind til utime-funksjonen. Det første argumentet er filnavnet, det andre argumentet (atime) er tilgangstiden, og det tredje argumentet (mtime) er modifikasjonstiden. Begge tider leveres i sekunder (som skal genereres med Lua standardfunksjon os. time). Hvis modifikasjonstiden utelates, blir tilgangstid gitt hvis begge tider er utelatt, den gjeldende tiden blir brukt. Returnerer sant hvis operasjonen var vellykket i tilfelle feil, returnerer den null plus en feilstreng. lfs. unlock (filhåndtering, start, lengde) Låser opp en fil eller en del av den. Denne funksjonen fungerer på åpne filer, filhåndtaket skal angis som det første argumentet. De valgfrie argumentene start og lengde kan brukes til å angi et startpunkt og lengden begge skal være tall. Returnerer sant hvis operasjonen var vellykket i tilfelle feil, returnerer den null pluss en feilstreng. Innføring Dette er en trinnvis opplæring for å komme seg opp med Lua på Microsoft Windows-systemer ved å laste ned og kompilere kildene ved å bruke bare gratis verktøy eller verktøy som allerede finnes på alle Windows-installasjoner. Meget liten programmeringserfaring kreves fra brukeren. Denne opplæringen kan også være av interesse for eksperter fra Linux som har lite kunnskap om Windows-plattformer. Hvis du er en erfaren programmør og finn denne opplæringen for enkelt eller begrenset, vennligst se siden BuildingLua. som er langt mer teknisk og detaljert. Oversikt og forutsetninger Forutsetninger om leseren: Har en generell kjennskap til Windows-filsystemet og vet hvordan man utfører grunnleggende operasjoner på det ved hjelp av de opererte operativsystemene (bla filsystemet, kopier en fil, gi nytt navn til en fil, opprett en katalog, etc.). Kjenner hvordan du laster ned en fil fra Internett ved hjelp av en nettleser. Kjenner hvordan du installerer et program i Windows ved hjelp av et installasjonsprogram. Kjenner hva en tekstfil er og hvordan man lager en ved hjelp av en tekstredigerer (Windows Notisblokk er nok for denne opplæringen, men den fritt tilgjengelige SciTE eller TextAdept kan være bedre valg for en nybegynner). Vet hva et komprimert arkiv er og hvordan dekomprimere det. Kjenner hva Windows kommandoen skallet er og hvordan du tar det opp. Kjenner hva Windows-kjørbare filer er, og hvordan du legger til oppføringer i det (dette kalles noen ganger som systembanen eller bare banen og er relatert til Windows PATH-miljøvariabel 1). Mange av forutsetningene ovenfor er ikke strenge krav, for i det følgende vil noen prosedyrer bli forklart i detalj, men leseren bør ikke forvente for mye håndholding på slike emner. Opplæringen er organisert i sekvensielle trinn som kan skisseres som følger: Last ned en egnet C-kompilator (TDM GCC). Last ned Lua kildepakke. Last ned en dekompressor for Lua-kildepakken (7-zip). Installer kompilatoren. Installer dekompressoren. Dekomprimer arkivet på et passende sted. Konfigurer kompilatoren på en slik måte at den kan finne kildene og starte byggeprosessen (vi bruker et Windows-kommandoskallskript for å gjøre dette). Viktig merknad: Vi anbefaler at du leser denne siden i sin helhet før du faktisk begynner med prosedyren. Sørg for å ha forstått alt på forhånd: dette kan spare deg litt tid og problemer senere. Denne prosedyren er ganske idiotsikker (vi håper), men du vet aldri -) Merk: Prosedyren er testet, med en konto med administrative rettigheter, på en x86 32-bits maskin som kjører Windows XP Professional med Service Pack 3 (SP3) installert ( Intel Mobile Core 2 Duo T7500 - 2 GB RAM). Kompilatoren som brukes er TDM GCC 4.9.2 (32 bit versjon). Merk: ettersom tiden går forbi noen av koblingene her inneholdt, kunne det bli utdatert. Derfor nedenfor gir vi ikke bare de direkte koblingene til pakker, men også lenken til hovedsidene for de aktuelle programmene. Dette bør gjøre det mulig for den motiverte leseren å tilpasse seg de åpenbare endringene (for eksempel kompensere for fremtidige versjonsnumre i koblingene) å surfe på nettstedene selv, bør denne siden ikke oppdateres. Trinn for trinn Tutorial Trinn 1: Last ned kompilatoren (TDM-GCC) Vi vil bruke Windows-porten til GCC-kompilatoren med åpen kildekode av TDM. Nedlastingssiden er funnet på 2. Mens følgende er den direkte linken til pakken vi trenger: 3. Klikk på forrige lenke, følg instruksjonene og vent på at nedlastingen skal fullføres. Den nedlastede filen skal være tdm-gcc-4.9.2.exe. Det er en 30MB nedlasting, så sørg for å ha en rask nok tilkobling. For å unngå mulige problemer, må du kontrollere at den nedlastede pakken ligger i en katalog (mappe) hvis komplett sti ikke inneholder mellomrom. Hvis dette ikke er tilfelle, kopiere eller flytte det i en katalog som oppfyller dette kravet. Alle pakkene som godt lastes ned, skal ende opp i denne katalogen (vi vil bruke den som en midlertidig arbeidskatalog for hele opplæringen). I denne veiledningen vil vi anta at du opprettet følgende mappe som en arbeidskatalog: Kopier (eller flytt) installasjonspakken du nettopp lastet ned i arbeidskatalogen, hvis du ikke lastet den ned der i utgangspunktet. Nå skal vår arbeidskatalog ha følgende innhold: Trinn 2: Last ned Lua Kilder Lua kilder nedlastingsside er 4. Dette er direkte nedlastingskoblingen til den nyeste versjonen på tidspunktet for denne skrivingen: 5. Klikk på forrige lenke, følg instruksjoner og vent på at nedlastingen skal fullføres. Forsikre deg om at filen du laster ned ligger i katalogen C: gcc-lua-install (eller kopier den den etter nedlastingen - vi vil ikke gjenopprette dette). Nå har vi to filer i vår arbeidskatalog: Trinn 3: Last ned en dekompressor (7-Zip) for Lua-kilder Lua-kilder er pakket i et arkivformat som er svært vanlig på Linux-plattformer, men som er uvanlig på Windows: TAR-GZ-formatet , som antydet av. tar. gz dobbelt utvidelse av filen. Windows-operativsystemer kan ikke dekomprimere dette formatet, så vi trenger et program som kan gjøre det. Et veldig godt og allsidig komprimeringsdekomprimeringsprogram for Windows som kan håndtere TAR-GZ-filer (og mange andre komprimerte formater) er 7-zip. Siden vi vil holde prosessen så enkel som mulig, vil vi ikke bruke den originale 7-zip installasjonspakken, fordi denne sist oppdaterer systemet når det er installert. I stedet bruker vi en alternativ distribusjon pakket av PortableApps og tilgjengelig fra siden: 6. Klikk på nedlastingskoblingen, følg instruksjonene og vent på at nedlastingen skal fullføres. Pass på at også denne filen ligger i vår arbeidsregister. Nå har vi tre filer i arbeidskatalogen vår: Trinn 4: Installer kompilatoren Nå bla gjennom Windows Utforsker. Windows grafisk filbehandling (dette er ikke Internet Explorer), i vår arbeidsbok og utfør installasjonsprogrammet for kompilatorer ved å dobbeltklikke på tdm-gcc-4.9.2.exe. En dialogboks skal vises. Fjern merket for alternativet Sjekk etter oppdaterte filer på TDM-GCC-serveren. Trykk på knappen Create. I redigeringsboksen som vises, spesifiserer du C: gcc-lua-installtdm-gcc som installasjonsmappe. Trykk på knappen Neste. I utvalgstreet som vises, blar du til slutten, og fjerner merket for Start-menyelementer og legger til PATH (dette trinnet er ikke strengt nødvendig, men det sikrer at kompilatorinstallasjonen etterlater systemet helt ren, foruten å trekke ut filene i katalogen spesifisert ovenfor). Trykk på knappen Installer og vent på at installasjonen skal fullføres. Når installatøren erklærer installasjonen vellykket, trykker du på knappen Neste. Trykk på knappen Fullfør (du kan lese readme filen eller ikke - det er ikke nødvendig for vårt formål). Nåværende innhold i vår arbeidskatalog bør nå være: med det siste elementet er underkatalogen der kompilatoren er installert (merk at i disse Utforsker vil disse elementene trolig bli vist i en annen rekkefølge). Trinn 5: Installer dekompressoren Kjør nå 7-zip bærbar installasjonsprogram ved å dobbeltklikke på filen 7-ZipPortable9.20Rev2.paf. exe inne i arbeidskatalogen. En dialogboks skal vises. Velg engelsk som språk (dette er ikke strengt nødvendig, men ellers kan følgende instruksjoner kanskje ikke matche meldingene i dialogboksene du vil se). Trykk på OK. Trykk på knappen Neste. I redigeringsboksen som vises, spesifiserer du C: gcc-lua-install7zip som målmappe. Trykk på knappen Installer og vent på at installasjonen skal fullføres. Trykk på knappen Fullfør. Nåværende innhold i vår arbeidskatalog bør nå være: med det siste elementet er underkatalogen der 7-zip er installert. Trinn 6: Pakke ut Lua-kilder ved å bruke 7-Zip Bla gjennom i katalogen med 7 zip-installasjoner (dvs. C: gcc-lua-install7zip) og dobbeltklikk på filen 7-ZipPortable. exe. Dette vil utføre 7-zip og hente programmets hovedvindu, som vekk ligner Windows Explorer. Bruk av 7-glidelåsvindu. naviger til vår arbeidskatalog (for eksempel kan du kopiere og lime inn C: gcc-lua-installasjonen i adresselinjen og trykke på Retur). Inne i 7-glidelåsvinduet, dobbeltklikk på Lua-pakkefilen (lua-5.3.0.tar. gz). Du bør se internals av pakken som en enkelt mappe kalt lua-5.3.0.tar. Dobbeltklikk på lua-5.3.0.tar. du bør legge inn den mappen og se en annen mappe med navnet lua-5.3.0. Høyreklikk på lua-5.3.0. en kontekstmeny skal vises. Velg Kopier til. alternativet fra den menyen. En dialogboks med kopi-bildetekst skal vises. Oppgi arbeidskatalogen (C: gcc-lua-install) i dialogboksen som destinasjon, og trykk OK. Lukk 7-glidelås, vi trenger ikke lenger det. Gå nå inn i vår arbeidskatalog og sjekk den: En ny underkatalog med navnet lua-5.3.0 skal være til stede. Nåværende innhold i vår arbeidsregister skal nå være: med det siste elementet er underkatalogen der Lua-kilder er pakket ut. Trinn 6: Opprett et Windows Shell-skript for å kjøre bygningen Leseren skal opprette en tekstfil med navnet build. cmd i vår arbeidsregister, og kopier og lim inn følgende tekst i den. Nåværende innhold i vår arbeidskatalog skal nå være: Kjør nå skalskriptet ved å dobbeltklikke på build. cmd. et vindu med en svart bakgrunn skal vises. Innenfor det bør du se meldingene som produseres av skriptet slik det fungerer (de fleste er fra GCC under samlingen av Lua-kilder). Dette kan ta en stund, men det er mye avhengig av ytelsen til PCen din. Med vårt testsystem tok det omtrent et minutt, men det var et ganske gammelt system. Etter at kompileringen er ferdig, vil skriptet også skape en ren binær distribusjon (dvs. uten unødvendige kildefiler) i arbeidskatalogen og utføre en enkel test som vil skrive ut en velkomstmelding før avslutningen. Du bør se den selvforklarende meldingen på slutten av utgangen i det svarte vinduet. Du kan nå lukke det svarte vinduet. Nåværende innhold i vår arbeidskatalog bør nå være: Trinn 7: Kopier Lua Binær Installasjon i en passende plassering Katalogen C: gcc-lua-installlua inneholder nå alt som trengs for å kjøre et Lua-skript. Du kan kopiere denne katalogen med innholdet der det kan være praktisk (selv på en USB-stasjon). Den interne strukturen til Lua binær installasjonskatalog bør være følgende: I underkatalogen finner du Lua. exe. Lua tolken (hvis du dobbeltklikker på den, vil den kjøre i interaktiv modus), mens i doc-underkatalogen finner du Lua-referansemanualen. Trinn 8: Konfigurer systemet til å kjøre Lua-filer Hvis du vil kunne skrive: å kjøre myscript. lua fra kommandolinjen, må du sette Lua bin-underkatalogen på Windows-søkebanen. Avsluttende merknader Etter at du har kopiert Lua-underkatalogen i sin endelige plassering, kan du helt slette arbeidskatalogen med alt innholdet. Du kan imidlertid enkelt redde mange nyttige ting: Installasjonspakken lua-5.3.0.tar. gz. tdm-gcc-4.9.2.exe og 7-ZipPortable9.20Rev3.paf. exe kan lagres vekk for fremtidige behov eller sikkerhetskopieringsformål. GCC-installasjonen dir tdm-gcc kan kopieres eller flyttes uansett hvor du vil (vær forsiktig så du ikke legger den i en katalog med mellomrom i den) og verktøyene i tdm-gccbin kan påberopes direkte fra kommandolinjen (du må legge til tdm - gcc på Windows-søkebanen hvis du vil unngå å spesifisere deres fullstedsnavn, men). 7-zip-installasjonen dir er også fullt flyttbar (bærbar, som ikke-programmerte Windows-brukere vil si, men bærbarhet i programmering har en annen betydning 7). Dermed kan du flytte den der du vil, og starte 7-zip ved å kjøre 7-ZipPortable. exe kjørbar inne. Det er så lett det passer fint også på en pendrive. Hvis du er nysgjerrig, kan du også utforske katalogen og ta en titt inne i Lua-kildene, men du må være en C-programmerer for å forstå de fleste av dem. Ha det gøy med Lua.
Comments
Post a Comment