Friday 3 November 2017

Arch Fakeroot Binære Alternativer


Jeg prøver å lage min første deb, så jeg vet ikke mye om det ennå. Dette er min reglerfil for øyeblikket. I det øyeblikket jeg leser dokumentasjon og prøver å forstå hvordan jeg skriver mer kompliserte regelfiler, sitter jeg fast på binær - bue og binær-indep mål Kort sagt, jeg forstår ikke hva de egentlig står for. Dokumentasjonen sier at pakkebue bestemmes av Arkitektur-linjen i Control-filen. Hvis verdien er så er pakken en arkitektur avhengig. Hvis verdien er noe da pakken er en arkitektur uavhengig. Jeg forstår fullt ut denne delen Men da begynner jeg å lese mannfiler for debhelper tools. man dpkg-buildpackage sier. Det kaller debian-regler bygg etterfulgt av fakeroot debian-regler binærmål, med mindre en kilde-bare bygger har blitt bedt om med - S Merk at binærmål er enten binært standard tilfelle, eller hvis - b er spesifisert eller binærbue hvis - B er spesifisert eller binær-indep hvis - A er specifiedmands i binær-indep sekvensen passeres - i alternativ for å sikre de jobber bare med binære uavhengige pakker, og kommandoer i binærbue-sekvensene er bestått-et alternativ for å sikre at de bare arbeider med arkitekturavhengige pakker. da prøver jeg å se standard sett med kommandoer for binær, binærbue og binær - indep mål ved å skrive. og få fullt like sett med kommandoer den eneste forskjellen er - i og - a flagg etter hver kommando. Så det første spørsmålet er - hva er forskjellen mellom for eksempel dhautobuild, dhautobuild - a og dhautobuild - i eller noen andre dhcommand. Og et annet spørsmål er - hvis kontrollfilen min bare består av pakker med all arkitektur, må jeg bruke binær-indep-målet, eller jeg kan klare det uten å bruke bare byggbue-mål i reglene filen. 27 13 ved 20 37. Forskjellen. Målet binære indep bygger alle Arkitektur alle binære pakker i kildepakken. Målet binærbue bygger alle andre pakker, enten Arkitektur eller pakker med en eksplisitt arkitekturliste eller noen arkitekturvogn Ds liker arkitektur linux-any. The skillet mellom disse to banene inne i byggeprosessen er relevant hvis du har en kildepakke som inneholder begge typer binære pakker, arkitekturavhengig og uavhengige. Den første bygningen av pakken bygger begge typer binære pakker, men hver etterfølgende bygge på forskjellige arkitekturer trenger bare å bygge arkitekturavhengige binære pakker som du allerede har bygget alle arkitektur-uavhengige pakker i den første bygningen. Imagine du har en kildepakke kalt foo som bygger de binære pakkene foo-programmer og foo-data Mens programmene i foo-programmer må kompileres, for eksempel på grunn av at de er skrevet i C, og dermed er binærpakken av Arkitektur noen datafiler i foo-data-bilder, oversettelser, hjelpetekster, dokumentasjon, teksturer, spill kart osv. er det samme for alle arkitekturer, derfor er det Arkitektur alle La oss si at oppstrømsversjonen av foo er 1 0 og det er den første Debianpakke-revisjonen av den opprinnelige er du frigjør. Du bygger først alle pakkene på amd64-arkitekturen for 64-biters PCer, du får og, men du vil også kunne kjøre den på 32-biters PCer, derfor trenger du også Men du trenger ikke et sekund så byggeprosessen krever bare - arkmålene, for eksempel ved å ringe dpkg-buildpackage - B. Nødvendige eksplisitte mål. Med de minimale dh style debian-reglene kan det ikke være nødvendig å spesifikt spesifisere mål, siden mange oppstrøms byggeanlegg ikke gjør dette skille, men hvis de gjør det, for eksempel ved å ha et eget mål for å bygge dokumentasjonen, kan du implementere det som f. eks. Eksempel tatt fra dh 7 man siden. Hvorfor trenger vi fakeroot kommandoen i det hele tatt Kan vi bare bruke sudo eller su kommandoer. Man siden says. fakeroot - Kjør en kommando i et miljø faking root privilegier for filmanipulering. Gir en falskt rotmiljø Denne pakken er ment å aktivere noe som dpkg-buildpackage - rfakeroot, dvs. å fjerne behovet for å bli rot for en pakkebygging. Dette gjøres ved å sette LDPRELOAD som gir wrappers rundt getuid chown chmod mknod stat og derved skape et falskt rotmiljø Hvis du ikke forstår noe av dette, trenger du ikke fakeroot. Min spørsmål er, hvilket spesialmål løser det at en enkel su eller sudo don t For eksempel for ompakning av alle installerte pakker i ubuntu gir vi følgende kommando. Kan vi gjør kommandoen ovenfor med sudo eller su i stedet for fakeroot som dette. Gir meg denne feilen. Kontrollkatalogen har dårlige tillatelser 700 må være 0755 og 0775.it er en god ide, for sikkerhetsgrunnlag, for å unngå å gjøre som rot alt som c kan du gjøre som vanlig bruker, selv om du kan kjøre sudo eller su fordi det er maskinen din har to bruksområder 1, det lurer programmer til å tro at du er faktisk rotbruker, noe som er dårlig skrevet proprietær programvare kan kreve, selv om det ikke trengs vanligvis Windows utvikler har gått Linux og 2 det tillater emulering av filmodus og eierskapsendringer som du ellers ikke ville kunne gjøre, hovedsakelig for å lage en tjærefil med riktige tillatelser og eierskap, nyttig for eksempel når du pakker programvare pqnet 12 aug 14 kl 10 03.I tenk notatet i utdraget fra summer opp det Hvis du ikke forstår noe av dette, trenger du ikke fakeroot Hvis du ikke kan tenke på en situasjon der fakeroot er nyttig, så trenger du ikke bokstavelig talt det Men folk som faktisk gjør det trenger det fullstendig forstå brukssaken Christopher Schultz desember 5 16 på 15 32.Indisin at du er en utviklerpakke vedlikeholder osv. jobber på en ekstern server Du vil oppdatere innholdet i en pakke og gjenoppbygge den, laste ned og tilpasse en kjerne fra og bygge den osv. Når du prøver å gjøre disse tingene, vil du finne ut at noen trinn krever at du har rotrettigheter UID og GID 0 av forskjellige årsaker, sikkerhet, oversett permisjoner osv. Men det er ikke mulig å få rotrettigheter , siden du jobber på en ekstern maskin og mange andre brukere har det samme problemet som deg. Dette er akkurat det som fakeroot gjør det som en effektiv UID og GID på 0 til miljøet som krever dem. I praksis får du aldri ekte rotrettigheter i motsatt til su og sudo som du nevner. Ansatt Mar 20 11 på 11 56. For å se tydelig forskjellen mellom fakeroot og en ekte sudo su, gjør du bare. Så lenge du er innenfor fakeroot-skallet, ser det ut til at du er rot - så lenge du ikke prøver å gjøre noe som egentlig trenger root privilegier. Og dette er akkurat det et pakkeverktøy trenger for å lage pakker som vil gi mening på hvilken som helst maskin. Faktisk, når du bruker fakeroot for emballasje, hva du vil oppnå er å gjøre verktøyene du ru n under fakeroot for å se filene dine som eid av rot Ingenting mer, ingenting mindre Så faktisk vil su eller sudo ikke fungere for å få den riktige filen ownership. answered 25. okt 12 kl 10 16.Ingen t faker farlig Hvis jeg lager en fil med suid bit og rx perm, filen vil bli opprettet eid av rot, kjørbar av noen, som rot Eller kanskje sette suid bit vant t arbeide Frizlab Oct 3 14 på 21 14.Ikke bra jeg prøvde dette ut selv Primær grunn for fakeroot er å få eierskap root root i bygget pakker uten å være root installert pakker vil ha riktig perms, men ntzrmtthihu777 Dec 16 14 på 14 38.Since svarene er vanskelig å forstå for meg selv og det tok litt å tenke å forstå det denne kommentaren gjorde jeg forstår det, jeg skal gi en forhåpentligvis bedre forklaring.1 Hva skjer i fakeroot. Ingen mer enn hva som skjer med din egen bruker Absolutt ingenting mer Hvis du fakeroot som når den blir kalt, gir deg et nytt skall, som sudo, vil late som gjør ting som du nee dersom du tenker på det, er det totalt bortkastet tid. Hvorfor ville du gjøre ting som vant t faktisk skje. Det er vanvittig. Du kunne bare ikke gjort noe av det, og det ville ha Det har ikke vært noen forskjell, siden det ikke er spor av det.2 Sporet av fakeroot. Det kan være et spor igjen av fakeroot. La oss se på kommandoene i MortenSickels svar som er ganske fint og fortjener en upvote. Ved første øyekast, det ser ut til å ha brukt fakeroot var totalt bortkastet tid Til slutt, hvis du ikke hadde brukt fakeroot, ville du ha det samme. Den subtile saken her er dette. Men det betyr at innholdet i filen fortsatt husker å være en rot Du kan si at ikke å bruke fakeroot ville ha produsert de samme resultatene. Du har rett, dette eksemplet er for enkelt. La oss ta et annet eksempel. La oss se hva som skjedde, jeg lot til å være rot, som er helt ineffektiv, og opprettet x og y jeg lot x å tilhøre myuser og y å tilhøre roten de actua Jeg begge tilhører myuser som vi ser på slutten, men jeg lot det bare være slik. Da skapte jeg en oppføring og lagret fantasien til en fil Senere når jeg ser tilbake på filen, kan jeg se hvem jeg forestilte meg filene skal eies av igjen, de er egentlig ikke eid av folk jeg forestilte, jeg bare bare forestilt at.3 Så hvorfor vil du det igjen. Du kan kanskje si at jeg egentlig ikke hadde til å falle til å være rot for å opprette den noteringen Jeg kunne bare ha opprettet oppføringen, redigerte den for å reflektere fantasien. Du har rett, det trengte du ikke fakeroot for det. Faktisk vet du at fakeroot ikke gjør noe, du kan ikke ha fått noen evne du ikke har før. Men dette er hva fakeroot handler om, kan redigering av oppføringen være ubehagelig. Som det er med en pakke som kan installeres på systemet, har du en tar ed, gzip ed, xz ed, bzip2 ed eller et annet format det er å holde filene sammen og huske deres tillatelser og eiere kan du eas ily endre den komprimerte filen og redigere eierskap av en fil jeg ikke vet om deg, men jeg kan ikke tenke på en måte. Kan det være et verktøy som er bygget som, når alt er komprimert, endrer det den komprimerte filen og endrer programvaren eierskapene og tillatelser Ja, det kan Så, enten du kan falle eierskapene før du komprimerer eller endrer dem etter at Debian-folk har bestemt at den tidligere er enklere. 4 Hvorfor ikke bare bruke sudo. Først og fremst trenger du ikke rotenettigheter til å bygge programvare og du ikke Jeg trenger ikke root-privilegier for å komprimere dem. Så hvis du ikke trenger det, må du virkelig være en Windows-bruker til å tenke på å få den tillatelsen. Men sarkasme til side, kan du ikke engang få root-passord. La oss si at du gjør det ha root-tillatelser Og la si at du vil late som om en fil skal ha lesetilgang bare til roten Så du sudo faktisk endrer fil eier og tillatelser til roten du kommer ut av rotse skallet og prøver å pakke alt Du mislykkes fordi nå du kan ikke lese filen lenger siden du ikke har root-tilgang Så du må sudo og komprimere og bygge pakken som roten Effektivt må du gjøre alt som root. As en pakker trenger du ikke root-tillatelser, og du burde ikke få det når du installerer en pakke, det kan hende du må installere noen fil A som root, og det er der du trenger root-tillatelser. All fakeroot er for å gjøre dette mulig. Det lar pakkerlisten A som eid av rot for arkiveren, slik at når pakken dekomprimeres av brukeren, arkiveren krever rottilgang og skaper A som eid av rot. Jeg har brukt den til pakkebyggingsskript. Jeg var ikke sikker på at personen som kjører skriptet, har tilgang til root-nivå, men skriptet fortsatt trengs for å generere, si en tar-fil som inneholdt filer som tilhører roten Den enkleste måten å gjøre det på var å kjøre pakkebyggingsskriptet under fakeroot, som lurte arkiveren på å tro at filene tilhørte rot og pakket dem som sådan inne i arkivet Dette vei, når Pakken ble pakket ut til destinasjonsmaskinen på en annen maskin, og filene tilhørte ikke rart eller ikke-eksisterende brukere. Tenk på det, det eneste stedet jeg har sett dette var å bygge noen slags arkiv rootfs av innebygde systemer, arkiver, pakker debpakpakker, etc. på forespørsel 24. februar kl. 12 på 12 58.fakeroot er et løsningsverktøy for bugged pakkesoftware. Det er ingen grunn til at du må være rot for å lage slike pakker, men siden de ikke tillater deg å spesifisere fil tillatelser på noen annen måte enn å sette dem direkte inn i filsystemet førhand har du ikke noe valg pqnet 12 aug 14 kl 10 08. En vanlig bruk er å finne ut hvilke filer et sviktende binær virkelig ønsket å få tilgang til. Det er å finne ut og fikse eller jobbe rundt bugs forårsaket av hardkodede baner og feilaktig unntakshåndtering. Arch Build System. What er Arch Build System. Arch Build System er et porter-lignende system for bygging og pakking programvare fra kildekode Mens pacman er speciali zed Arch verktøy for binær pakkehåndtering, inkludert pakker bygget med ABS, ABS er en samling verktøy for å kompilere kilde i installerbare pakker. Hva er et porter-lignende system. Ports er et system som brukes av BSD for å automatisere prosessen med å bygge programvare fra kildekode Systemet bruker en port for å laste ned, pakke ut, lappe, kompilere og installere den oppgitte programvaren. En port er bare en liten katalog på brukerens datamaskin, oppkalt etter den tilsvarende programvaren som skal installeres, som inneholder noen få filer med instruksjoner for å bygge og installere programvaren fra kilden Dette gjør installering av programvaren så enkel som å skrive lage eller gjøre installeringen ren i portens katalog. ABS er et lignende konsept. ABS består av et katalogtreet ABS-treet som ligger under var abs Dette treet inneholder mange underkataloger, hver innenfor et repo navn og hver oppkalt av deres respektive pakke. Dette treet representerer, men inneholder ikke alle offisielle Arch-programvare som kan hentes gjennom SVN-systemet. Du kan referere til hver pakke-navngitt underkatalog som en ABS, så mye som en refererer til en port. Disse ABS-eller underkataloger inneholder ikke programvarepakken eller kilden, men heller en PKGBUILD-fil og noen ganger andre filer. En PKGBUILD er en enkel Bash bygge skript en tekstfil som inneholder kompilering og emballasje instruksjoner samt URL til riktig kilde tarball å bli lastet ned Den viktigste komponenten av ABS er PKGBUILDs Ved å utstede inne i ABS makepkg kommandoen, er programvaren først kompilert og deretter pakket i bygge katalog Nå kan du bruke pacman Arch Linux-pakkebehandling til å installere, oppgradere og fjerne den nye package. ABS oversikten. ABS kan brukes som paraplybegrep, da det inkluderer og stole på flere andre komponenter, selv om det ikke er teknisk nøyaktig, kan ABS referere til følgende verktøy som et komplett verktøykasse. ABS-tre ABS-katalogstrukturen inneholder filer som trengs for å bygge alle offisielle pakker men ikke pakkene selv eller kildefilene til programvaren. Den er tilgjengelig i svn - og git-repositorier og abs-skriptet fra abs-pakken laster ned dem ved hjelp av rsync til var abs på din lokale maskin. På det lokale systemet inneholder treet underkataloger for hver lagringsplass spesifisert, som igjen inneholder en underkatalog for hver pakke. Merk ABS-treet synkroniseres en gang om dagen, slik at det kan ligge bak det som allerede er tilgjengelig i repositoriene. BRUKE et Bash-skript som inneholder nettadressen til kildekoden sammen med kompileringen og emballasje instruksjoner makepkg shell kommando verktøy som leser PKGBUILDs, laster ned automatisk og kompilerer kildene og oppretter en i henhold til PKGEXT array i Du kan også bruke makepkg til å lage dine egne pakker fra AUR - eller tredjepartskilder. Se Opprette pakker for mer informasjon pacman pacman er helt skilt, men er nødvendigvis påkalt enten av makepkg eller manuelt for å installere og fjerne de innebygde pakkene og for å hente avhengigheter AUR Arch User Repository er adskilt fra ABS, men AUR ikke støttede PKGBUILDs er bygget ved hjelp av makepkg for å kompilere og pakke opp programvare I motsetning til ABS-treet på din lokale maskin eksisterer AUR som et nettstedgrensesnitt. Det inneholder mange tusen brukerbidragte PKGBUILDs for programvare som ikke er tilgjengelig som en offisiell Arch-pakke Hvis du trenger å bygge en pakke utenfor det offisielle Arch-treet, er det sjanse for at det er i AUR. Warning Offisielle PKGBUILDs antar at pakkene er bygget i en ren chroot Bygg programvare på et skittent byggesystem kan mislykkes eller forårsake uventet oppførsel ved kjøring, fordi hvis byggesystemet registrerer avhengigheter dynamisk, blir resultatet avhenger av Ds på hvilke pakker som er tilgjengelige på byggesystemet. Hvorfor vil jeg bruke ABS. Arch Build System brukes topile eller kompilere en pakke, av hvilken som helst grunn. Lag og installer nye pakker fra kilde til programvare som ingen pakker er ennå tilgjengelig, se Opprette pakker. Tilpass eksisterende pakker for å dekke dine behov, slik at deaktivere eller deaktivere alternativer, patching. Rebuild hele systemet ved hjelp av kompilatorflaggene, la FreeBSD f. eks. med pacbuilder. Cleanly bygg og installer din egen tilpassede kjerne, se Kjernekompilering. Få kjernemoduler som fungerer med din tilpassede kjerne. Kompilér og installer en nyere, eldre, beta eller utviklingsversjon av en Arch-pakke ved å redigere versionsnummeret i PKGBUILD. ABS er ikke nødvendig å bruke Arch Linux, men det er nyttig for å automatisere bestemte oppgaver av kildekompilering. Byggepakker ved hjelp av abs består av disse trinnene. Installer abs-pakken med pacman. Run abs som rot for å opprette ABS-treet ved å synkronisere det med Arch Linux-serveren. Kopier buen ld filer vanligvis bor under var abs repo pkgname til en bygg katalog. Naviger til den katalogen, rediger PKGBUILD hvis ønskelig og gjør makepkg. According til instruksjonene i PKGBUILD, vil makepkg laste ned riktig kilde tarball, pakke ut det, lapp hvis ønskelig , kompilere i henhold til CFLAGS spesifisert i og til slutt komprimere de innebygde filene i en pakke med utvidelsen eller. Installering er like enkelt som å gjøre pacman - U-fil Pakkefjerning håndteres også av pacman. Install tools. This vil gripe abs-sync-skriptene , ulike byggeskripter og rsync som en avhengighet, hvis du ikke allerede har det. Før du faktisk kan bygge noe, vil du også trenge grunnleggende kompileringsverktøy. Disse samles lett inn i pakkegruppen base-devel Denne gruppen kan være installert med pacman. Edit for å inkludere de ønskede lagringsplassene. Remove foran de aktuelle depotene. For eksempel. ABS-treet er et SVN-kataloghierarki som ligger under var abs og ser slik ut. Th e ABS-treet har nøyaktig den samme strukturen som pakkedatabasen. Første nivå Repository name. Second-nivå Pakke navn kataloger. Tredje nivået PKGBUILD inneholder informasjon som trengs for å bygge en pakke og andre relaterte filer patcher, andre filer som trengs for å bygge pakken. Kildekoden for pakken er ikke til stede i ABS-katalogen. I stedet inneholder PKGBUILD en URL som laster ned kildekoden når pakken er bygget. Så størrelsen på abs-trær er ganske liten. Last ned ABS tree. Din ABS-tre er nå opprettet under var abs Merk at tregrener ble opprettet tilsvarende de du spesifiserte i. Abs-kommandoen bør kjøres jevnlig for å holde synkronisering med de offisielle depotene. Individuelle ABS-pakkefiler kan også lastes ned med. På denne måten trenger du ikke å sjekk ut hele abs-tree bare for å bygge en pakke. Denne artikkelen eller delen er en kandidat for sammenslåing med makepkg. Notes Vennligst bruk det andre argumentet i malen for å gi mer detaljert indi kationene Diskuter i Talk Arch Build System. makepkg s angir globale miljøvariabler og kompilatorflagger som du kanskje vil redigere hvis du bruker et SMP-system, eller for å angi andre ønskede optimaliseringer. Standardinnstillingene er for i686 og x8664 optimaliseringer som vil fungere bra for disse arkitekturene på single-CPU-systemer Standardene vil fungere på SMP-maskiner, men vil bare bruke en kjerne-CPU når kompilering ser makepkg for detaljer. Sett PACKAGER-variabelen in. Setting PACKAGER-variabelen i er et valgfritt, men sterkt anbefalt trinn Det tillater et flagg for raskt å identifisere hvilke pakker som er blitt bygget og eller installert av deg, ikke den offisielle vedlikeholdsføreren. Dette oppnås lett ved bruk av expac. Showing all packages including those from AUR. Showing only packages contained in repos. This example only shows packages contained in the repos definert in. Create en build directory. It anbefales å lage en bygg katalog hvor den faktiske kompilering vil finne sted du bør aldri mod ify ABS-treet ved å bygge inne i det, da data vil gå tapt, overskrevet på hver ABS-oppdatering. Det er god praksis å bruke hjemmekatalogen din, men noen Arch-brukere foretrekker å lage en lokal katalog under var abs eid av en vanlig bruker. Lag din bygge katalog e g. Copy ABS fra treet var abs repository pkgname til bygg katalogen. Build pakke. I vårt eksempel vil vi bygge den slanke skjerm manager pakken. Kopi den tynne ABS fra ABS treet til en build directory. Navigate til bygningskatalogen. Modifiser PKGBUILD etter eget ønske. Hvis du trenger å gjøre endringer i kilden selv, i stedet for bare PKGBUILD, se Patching in ABS. Kjør deretter makepkg med - s-flagget for å aktivere automatisk oppbyggingstid. Før du klager om manglende avhengigheter, husk at gruppebase-devel antas å bli installert når du bygger med makepkg Se Installer tools. Install som root. That s det Du har nettopp bygget slank fra kilde og installert det på ditt system wi th pacman Pakkefjerning håndteres også av pacman med pacman - R slim. ABS-metoden for å installere programvare gir komfort, samtidig som du opprettholder fullstendig gjennomsiktighet og kontroll over bygge - og installeringsfunksjonene som er inkludert i PKGBUILD. Det samme gjelder de samme trinnene i den tradisjonelle metoden som vanligvis inkluderer konfigurasjonen, gjør, gjør installeringsstrinn, men programvaren er installert i et falskt rotmiljø. En falsk rot er ganske enkelt en underkatalog i byggkatalogen som fungerer og oppfører seg som systemets rotkatalog. I forbindelse med fakeroten program, oppretter makepkg en falsk rotkatalog og installerer de kompilerte binærfilene og tilhørende filer i den, med rot som eier. Den falske rot - eller underkatalogtreet som inneholder den kompilerte programvaren, komprimeres deretter til et arkiv med utvidelsen eller en pakke. Når den påkrevd, pacman ekstrakter deretter pakken installerer den inn i systemets ekte rotkatalog. Reserver modifiserte pakker. Oppdatere systemet med pacman erstatter en modifisert pakke fra ABS med pakken med samme navn fra de offisielle depotene. Følg instruksjonene nedenfor for hvordan du unngår dette. Sett inn en gruppeserie i PKGBUILD, og ​​legg til pakken i en gruppe som heter Modifisert. Legg til denne gruppen i delen IgnorereGruppe in. Hvis nye versjoner er tilgjengelige i de offisielle arkivene under en systemoppdatering, skriver pacman et notat om at det hopper over denne oppdateringen fordi den er i delen IgnoreGroup. På dette tidspunktet skal den endrede pakken ombygges fra ABS for å unngå delvise oppgraderinger. pbget - hent PKGBUILDs for individuelle pakker direkte fra webgrensesnittet. Inkluderer AUR support. asp - et verktøy for å håndtere bygg kildefilene som brukes til å lage Arch Linux-pakker. Bruker git-grensesnittet som tilbyr mer oppdaterte kilder. Få kilde. Ubuntu kjernekilde er tilgjengelig via git Mer informasjon kan fås fra KernelTeam KernelGitGuide. Build system breakdown. This krever litt kunnskap e av Debians byggesystem, inkludert debianregistreringsfilen, osv. Under gutsy ble byggesystemet omskrevet fra grunnen, hovedsakelig for å fjerne bruken av kjernepakke som byggverktøy, siden det ble for tungt og restriktivt for våre behov Vi bruker fortsatt kjernekile til udeb creation. Flavours er hvordan vi definerer ulike typer kjerner på samme arkitektur. Hver smak kan rettes mot en bestemt CPU, eller gi noen funksjonalitet for et bestemt formål. For eksempel er amd64 x8664 arkitekturen har disse flavours. generic - Standard installer kernel. server - Optimalisert for serverinstallasjoner. Når du bygger på amd64-arkitekturen, er disse kjernene som er bygget. I virkeligheten er de bare forskjellige i små variasjoner av kjernekonfigurasjonsalternativer. Hver smak er bygget bruk av en forhåndsdefinert konfigurasjonsfil som brukes av kjernekonstruksjonssystemet Hver arkitektur inneholder det s config-filer i debian-grennavn-config-ark eller debian-konfigurasjonsark i tilfelle av Ubuntu Hardy Filen es er delt for hver smak i debian grennavn config arch config smaken og felles alternativer deles i debian filnavn navn config arch arch. When kjernene er bygd, felles og smaks spesifikke config filer sammen i bygningskatalogen. Debian-kontrollfilen genereres fra kjerne-kile-kommandoen Dette vil bli handlet automatisk under en fakeroot debian-regler. Filen genereres fra et debian-reglermål Dette er befolket av filer som definerer smaker i debian-kontroll d varene. vars filer definerer pakkebeskrivelser for hver smak. Changelog-filen er hvor vi sporer alle endringene som er gjort i depotet. Dette er en standard debian changelog. Endringer blir ikke lagt til manuelt. I stedet blir det gjort automatisk ved utgivelsestid ved hjelp av git logg Se nedenfor for prosessen. ABI er sannsynligvis en av de viktigste funksjonene i byggesystemet. I kjernepakkenavn er ABI den numeriske komponenten umiddelbart etterfulgt kjerneversjonen E g. ABI i eksemplet ovenfor er 1 ABI er representert i debian changelog as. The mindre versjon etter ABI er en stadig økende revisjon. Det viser i utgangspunktet hvor mange opplastinger som er gjort for denne kjerneversjonen. kjernen ABI er avledet fra filen som ble produsert under kjernebyggingen Hver eksportert funksjon er gitt en hash som definerer funksjonens argumenter og returverdi, noe som gjør det enkelt å oppdage endringer som kan ødelegge moduler som er bygget opp mot kjernen, for eksempel vår egen linux-begrensede - moduler pakken. ABI-filene for den forrige bygningen ligger i debian abi prev-rev Layoutet ligner debian config-katalogen ved at hver arkitektur er en underkatalog, og hver smak er en fil med ABI for den smaken i den. Når kjernekonstruksjonen er ferdig, kontrollerer den hver smak mot prev ABI Hvis tidligere og nåværende ABI s er den samme versjonen f. eks. 6, og ABI har endret seg, vil bygningen mislykkes. Dette betyr at en ABI-bump er nødvendig se nedenfor. Fra nå av resulterer en enkelt ABI-endring i enhver smak i en ABI-bump for hele bygningen. Det er ingen per-smak eller per-arkitektur ABI-nummer. Dette er av sunnhetshensyn. Overordnet ABI sjekker feil. Når du oppretter filene nedenfor sørger for at filen har noe innhold a 1 er vanlig for å sikre at filen ikke går tapt når du genererer kildepakker når det er en. Ingen ABI-sjekk for alle smaker og arkitekturer. Slett bygg med skipabi sant som argument. Ingen ABI sjekk for alle smaker av en bestemt arkitektur. Opprett filen abi forrige versjonen arch ignore. No ABI sjekk for en smak av en bestemt arkitektur. Lag filen abi tidligere versjonen arch flavour. Ignore spesifikke symboler for alle smaker av alle arkitekturer i alle versjoner. Lag filen abi perm-svarteliste og skriv hvert symbol for å ignorere til en linje. Hvis alle symboler i en bestemt modul skal ignoreres, inneholder den linjen modulnavnet prefiksert av M noter mellomrommet mellom kolon og modu le navn. Ignorere spesifikke symboler for alle smaker av alle arkitekturer i en versjon. Opprett en fil abi forrige versjon svarteliste med samme semantikk som perm-svartelisten filen. Modullister. Modullister spores på samme måte som ABI, og holdes i debian abi prev-ver arch flavor Filen er en basenavnet liste, sans forlengelse, av alle modulene i en bestemt smak. Dette er sjekket uavhengig av ABI, siden det er ment å spore utgivelse for å unngå at modulene går sakte ved feil. Overordnet modul sjekk feil. Når du oppretter filer nedenfor, sørg for at filen har noe innhold a 1 er vanlig for å sikre at filen ikke går tapt når du genererer kildepakker når det er en. Ingen modulskontroller for alle smaker og arkitekturer. Skru av bygge med hoppmodul sant som argument. Ingen modul kontroller for alle smaker av en bestemt arkitektur. Lag filen abi forrige versjonen arch. No modul sjekk for en smak av en bestemt arkitektur. Lag filen abi tidligere versjon en rch flavour. Ignore spesifikke moduler for alle smaker av alle arkitekturer. Opprett en tidligere versjon av filen abi og plasser hver modul for å ignorere i en egen linje av den filen. På det er en git repo kalt kteam-verktøy. Den inneholder også noen git kroker som vi bruker for å sikre at politikkoverensstemmelsen forplikter seg til vårt treverk. Hvis du jobber mye med Ubuntu Linux-kjernetreet, bør du sette disse skriptene inn i katalogen av dine treemit-maler. I debian commit-maler i kildetreet Det er flere maler som skal brukes når du forplikter endringer som du forventer å bli integrert med Ubuntu-kjernerepet. Bruksmallene inneholder kommentarer for hvordan du fyller ut de nødvendige opplysningene. Merk også at alle forpliktelser må ha en Signed-off-linje - s alternativ til git commit En typisk git commit kommando vil se ut. Merk at alternativet - e må følge - F alternativet, ellers git vil ikke la deg redigere commit-template før du begår Den primære du wi Jeg skal bruke patch template Dette er kommentert tungt, så det skal være selvforklarende Noen maler krever ikke redigering, for eksempel bumpabi og updateconfigs maler. Et eksempel på commit-logg vil se slik ut. Den første linjen er kritisk og bør oppsummere endringen. Prefikset for linjen definerer typen av forpliktelsen se nedenfor Den siste linjen skal inneholde avmeldingen for oppdateringen og eventuelle acks den har mottatt. Resten av teksten bør kortfattet beskrive endringen. Utviklingssyklus. Dette avsnittet beskriver alle trinnene som er involvert i en felles utviklingssyklus Det vil si syklusene fra en opplastingsutgave av Ubuntu-kjernen til neste. Oppdatere ABI - og modullister. For å starte en ny utgave må du laste ned ABI - og modulfilene fra forrige utgave. For å gjøre dette , bruk. I eksempelet ovenfor er 2 6 26 kjerneversjonen, og 1 1 er den siste opplastede revisjonen. Dette laster ned alle forrige deb s, og trekker ut ABI-filene og modullister. Du kan finne det lettere t o gjør dette fra en DC-maskin hvor arkivet er nærmere nedlasting av alle kjernen deb s er en båndbredde eater. Starting en ny utgave. Straks etter en opplasting bør du kjøre. Dette vil generere en ny debian changelog oppføring for neste revisjonsnummer, og endre passende andre filer under debian-katalogen. Legg til ny kode. Nå kan du gjenopprette treet ditt, dra fra andre grener eller bruke oppdateringer som går inn i denne oppdateringen. Oppdatere konfigs valgfritt. Som nye drivere legges til og fusjoner gjøres med oppstrøms , it becomes necessary to update our configs in debian branch-name config This is easily done for all architectures with one simple command. This runs silentoldconfig for all flavours, so if any possible config options are unanswered, it will ask you Alternatively, if you know of a new config option, you can alleviate answering the same question for it on all flavours by appending it to the debian branch-name config arch config files, and running the above command. Once the config s are updated, you simply commit the new changes. Now build the kernel for all archs and flavours. Bumping the ABI. If the build fails because of the ABI checker, this is a sign that the ABI needs to be bumped. If it becomes necessary to increase the ABI, you simply need to edit debian changelog and increase the ABI in the version For example, if the current changelog looks like. And an ABI bump is required, you would change the above line to look like. Once this is complete and the changelog is committed the following commands should be run to regenerate the control files. Submitting Patches. Patches need to be ACK d by other members of the Ubuntu kernel team before being pushed. Upstream syncing. During an Ubuntu development cycles, the kernel is constantly synced against upstream Linux GIT head This involves merging conflicts, possibly deprecating local patches, and performing test builds. For stable releases, we cherry pick and sometimes outright sync to the 2 6 x y GIT tree for that particul ar release. During development cycle, when we are following upstream git very closely, we will use git rebase to stay synced to upstream Once upstream version has been released, we no longer rebase This may cause times where you need to force a GIT pull because the master of our tree is now rebased. Third party drivers. During gutsy, feisty and hardy, third-party drivers were kept in a package called linux-ubuntu-modules They are now kept in a subdirectory ubuntu in the main kernel tree. Modules added by Ubuntu have to meet some basic criteria. Modules added to the main tree must be open source. Must be stable, and pass code review. Must support hardware and or features relevant to a good portion of users. It is preferable that these drivers are maintained upstream, and be scheduled for inclusion In some cases, we keep drivers that do not meet these last criteria However, this is mainly due to being grandfathered in and our policy of not losing support for hardware. Preparing an upload. Once the tree is ready for upload, follow these steps to complete the package for uploading. Run git status to be sure you have no outstanding commits, or extraneous files in your local tree. It may also be a good idea to run git ls-files --others to check for extraneous files. Create the changelog entries, with the following commands. Tag the release The - m option is the message for the tag commit, and matches the actual tag name. Push the changes and tag to our repo. If the tree has a in the repo, download that to the same directory as the git tree. Ensure the tree is clean and the control files are populated. Run dpkg-buildpackage. or to build with source use. Upload using whatever tools you wish dupload for example. Submit your patch for upstream inclusion when appropriate, e g quirk updates. It should be noted that for development releases, a new tarball is generated at each upload However at release time, a is used, which is based on the upstream tarball of the released kernel we are using. Announce Kernel uploads. A number of other groups are affected by the Ubuntu Kernel changing We therefore announce all kernel uploads to the kernel-team, installer group, and ARM group note the ARM group are subscribed to kernel-team An example email is included below. Pushing to our repo. The kernel team should push changes to our repo see KernelGitGuide for public repo For normal pushes, use the following command. For a release the release tag should be pushed as well well with. NOTE Each release tree is someone s responsibility If it s not yours, it s probably best to email patches to rather than committing yourself. Security and Proposed Updates. On occasion, security patches are applied to stable kernels For these kernels, you will set the archive in debian changelog to rel - security where rel is some release like intrepid. The security team generally provides patches in the form of CVE s, with GIT SHA URL s to an upstream patch that fixes the problem We usually use will fetch from the upstream GI T repo, and git cherry-pick to get the fix into the local tree. The easiest way to fetch the remote repo s objects is to create a remote file such as containing. Then to pull the objects, and cherry pick an SHA, do this. The - e option will bring up an editor to add any Ubuntu related info to the commit perhaps a bug number, or maybe even add the CVE number The - x will keep the original GIT SHA in the commit message to track where it came from The - s option applies your Signed-off-by so that we can track who applied the commit. Security uploads should be build tested prior to upload this is the case for any upload, but especially so for security and proposed updates You and one other person should boot test the resulting kernel. If possible especially for critical code paths , attempt to reproduce the bug via supplied reproducers usually from the security team to verify it actually fixes the bug Make sure that there are no regressions as well. After upload, notify the security team that you h ave made the upload and include a copy of the changelog. Performing builds. Grab the Pre-requisite Tools. A good way to ensure that you have all of the tools installed that are required to build a package is to use debuild - b If you are missing something, it will fail very quickly. Pre-upload test builds. A set of scripts to help farm out builds across all supported architectures is described in. Quick builds. Aside from the standard dpkg-buildpackage build method, there are several easier ways to do build for developers When I actually add new code, I generally do an out-of-tree build for test, like so. You can add - jX as needed. One other helpful tool for a developer is to install the ccache package This speeds rebuild by a large factor. Normal full build. To test normal package building, one can use this command from the kernel git repo. This will build every kernel flavour. Partial build. You can also do single or multiple specific flavours during the build, using this syntax. So you can change g eneric with any flavour you want to build You may also want to do. to get the architecture independent headers package. LUM builds are done using. where flavour generic, ume, rt, xen, etc. Build options. There are several build options, in the form of environment variables and make variables Make options are passed on the debian rules command line. CONCURRENCYLEVEL X where X is a number to pass using make s - j option Use of this option is generally not recommended, as it will override the value normally selected automatically by the build rule based on the number of processor cores Setting the value to 1 can be useful to serialize the build in order to help isolate the source of a build or clean failure. AUTOBUILD - can be passed to make as well Tells the build to create a non-official package with generated ABI Used for daily builds of the kernel. skipabi true - Used for test only, causes the build to skip the ABI consistency check. skipmodule true - Same as above, but for the module check. NOK ERNLOG - Used for the insertchanges or printchanges target Causes git-ubuntu-log to not include upstream kernel changes in changelog output. E g When trying to avoid previous or current ABI file missing and not wanting to do an ABI-bump. Post upload. There are several things to do after an upload These depend greatly on what the upload involved Usually, for a non-ABI changing upload, you do not need to do anything further. However, for an ABI changing upload, packages need to be rebuilt against the linux-headers Note that these packages have an extra version whose major matches the ABI of the kernel it is being built against. This package contains modules that are proprietary They are distributed separately so that it is easy for users to not have to use them. For an ABI bump, edit debian rules and find abiversion Change the value to the new ABI number Use dpkg-buildpackage as normal after creating a new changelog entry. The linux-restricted-modules package was not stored in a git tree prior to Intrepid To get it you would need to use apt-get source like. This will only work from an environment that has the apropriate series deb-src set for restricted like. With Intrepid LRM started to be a git tree on and you can clone it to a working directory If you got the sources, then look for the abi-version in debian rules and make sure it corresponds to the abi of your new kernel and you have installed the header packages for all flavours After that fakeroot dpkg-buildpackage will build the package. For Jaunty, you will need to follow the same instructions for bumping the ABI in the base source, i e updating debian changelog then running. For Hardy there was a separate LUM git tree which was quite similar to LRM Setting the ABI is the same as in linux-source via debian changelog A quick summary to checkout, use git clone ubuntu-hardy-lum and to build, use fakeroot debian rules binary-modules-FLAVOUR Please note that the alsa tree for Hardy is in linux-ubuntu-modules, so if you re havi ng sound issues you might want to try building this package in addition to the main kernel package. Starting with Intrepid, additional modules are placed into the ubuntu directory of the main kernel repository. The linux-meta package provides meta packages for easier user upgrades Because our kernel packages are named with full ABI and flavour, users normally would have to manually upgrade to a new kernel if it had an ABI bump The meta packages always point to the latest kernel, so if users install these packages and they are installed by default on new systems , then upgrades will always pull in everything they need to be current. For an ABI bump, edit debian changelog and increment the ABI number and since only an ABI bump requires a new linux-meta package the upload number. This package is usually empty during development It is meant for post-release updates of new drivers It is packages separately from the kernel so that it is easier to provide sometimes untested drivers for new hardwa re on a stable release Users do not have this package installed by default. This package is based heavily on linux-ubuntu-modules. main, proposed and security, OH MY. We have some differing processes for different types of uploads Described here for the sanity challenged. No differences for this Uploading to main the current development release is the primary target for work. Technically known as rel - proposed e g edgy-proposed is where we can push changes that need testing, and are unsuited for a wide audience of users who expect a rock solid distribution. Kernel changes after release first get uploaded to - proposed and after some time will get moved to the - updates. See the KernelUpdates page for more information. This is self explanatory, or so it would seem Security patches will get applied to a temporary topic branch based on the last version in - updates The resulting kernel package is uploaded to a special build environment and will get into the security and updates pocket After upload t he security patches will be merged back into the main tree. KernelTeam KernelMaintenance henrix 2012-02-22 17 20 37.Arch fakeroot binary trading.-G Equivalent to --build source, any since dpkg 1 17 11 If --as-root is also given, then the command is executed as root see --root-command the clean, binary, binary-arch and binary-indep targets Arch fakeroot binary trading Live Rates Of Forex In Taiwan Etc See the manpage for option and strip Strip symbols from binaries libraries -- docs Save doc --as-root Only meaningful together with --target since dpkg 1 15 0 - si - sa - sd - vversion - Cchanges-description - m, --release-by maintainer-address - e, --build-by maintainer-address Passed unchanged to dpkg-genchanges - a, --host-arch architecture Specify the Debian architecture we build for long option since dpkg 1 17 17 Otherwise it runs the preclean hook and calls fakeroot debian rules clean to clean the build-tree unless - nc or --no-pre-clean is specified It runs the source hook and calls dpkg-so urce - b to generate the source package if a source build has been requested with --build or equivalent options It runs the build hook and calls debian rules build-target, then runs the binary hook followed by fakeroot debian rules binary - target unless a source-only build has been requested with --build source or equivalent options It runs the check hook and calls a package checker for the file if a command is specified in DEBCHECKCOMMAND or with --check-command It runs the sign hook and calls gpg2 or gpg to sign the file if any, unless - us or --unsigned-source is specified or on UNRELEASED builds , and the file unless - uc or --unsigned-changes is specified or on UNRELEASED builds Each line in the configuration file is either an option exactly the same as the command line option but without leading hyphens or a comment if it starts with a binary Builds the architecture specific and independent binary packages - g Equivalent to --build source, all since dpkg 1 17 11 --target target --targ et target - T, --rules-target target Calls debian rules target after having setup the build environment and stops the package build process here since dpkg 1 15 0, long option since dpkg 1 18 8.Many dpkg-buildpackage options are forwarded to dpkg-genchanges It runs the postclean hook and if - tc or --post-clean is specified, it will call fakeroot debian rules clean again Note when using this value standalone and if what you want is simply to re - build the source package, using dpkg-source is always better as it does not require any build dependencies to be installed to be able to call the clean target any Builds the architecture specific binary packages Arch fakeroot binary trading Forex Netting Hedging Build binary packages fakeroot debian rules binary make the For Architecture any packages, the autobuilder system performs a rebuild It ensures the pristine-tar for upstream tarball generated by the --pristine-tar option You can Here we just show how to package a simple shell script or bi nary Use the x option to extract the files cat control Package parted Version 1 4 24-4 Section admin Priority optional Architecture i386 Depends e2fsprogs 1 27-2, libc6 fakeroot dpkg-deb --build debian dpkg-deb building package - P, --build-profiles profile Specify the profile s we build, as a comma-separated list since dpkg 1 17 2, long option since dpkg 1 18 8 Etc See the manpage for option and strip Strip symbols from binaries libraries -- docs Save doc - b Equivalent to --build binary or --build any, all Note that known targets that are required to be run as root do not need this option i e. Binary Option Strategies Examples Website. The architecture of the machine we build on is determined automatically, and is also the default for the host machine Arch fakeroot binary trading The default behavior is to build for no specific Stock Exchange Rates Build binary packages fakeroot debian rules binary make the For Architecture any packages, the autobuilder system performs a rebuild It ensure s the pristine-tar for upstream tarball generated by the --pristine-tar option You can --target-arch architecture Specify the Debian architecture the binaries built will build for since dpkg 1 17 17 --target-type gnu-system-type Specify the GNU system type the binaries built will build for since dpkg 1 17 17 Abordarea Inteligenta A Pietei Forex Converter Etc See the manpage for option and strip Strip symbols from binaries libraries -- docs Save doc It can be used in place of --target-arch or as a complement to override the default GNU system type of the target Debian architecture. Note that build-target and binary-target are either build and binary default case, or if an any and all build has been requested with --build or equivalent options , or build-arch and binary-arch if an any and not all build has been requested with --build or equivalent options , or build-indep and binary-indep if an all and not any build has been requested with --build or equivalent options It runs the changes hook and calls dpkg-genchanges to generate a file --build type Specifies the build type from a comma-separated list of components since dpkg 1 18 5 The allowed values are source Builds the source package any Builds the architecture specific binary packages Arch fakeroot binary trading Total Number Of Stock Exchange In Ukraine all Builds the architecture independent binary packages This is an alias for source, any, all, and the same as the default case when no build option is specified - F Equivalent to --build full, --build source, binary or --build source, any, all since dpkg 1 15 8 Arch fakeroot binary trading - t, --host-type gnu-system-type Specify the GNU system type we build for long option since dpkg 1 17 17 Thanks kureikain, but your package install only a binary version I create at the Gogs-Git-Dev AUR package - Build options sqlite pam cert No such file or directory usr bin fakeroot line 181 8920 User defined signal 1 --target-arch architecture Specify the Debian architecture the b inaries built will build for since dpkg 1 17 17 --target-type gnu-system-type Specify the GNU system type the binaries built will build for since dpkg 1 17 17.dpkg-buildpackage is a program that automates the process of building a Debian package It prepares the build environment by setting various environment variables see ENVIRONMENT , runs the init hook, and calls dpkg-source --before-build unless - T or --target has been used It checks that the build-dependencies and build-conflicts are satisfied unless - d or --no-check-builddeps is specified If a specific target has been selected with the - T or --target option, it calls that target and stops here All long options can be specified both on the command line and in the dpkg-buildpackage system and user configuration files Arch fakeroot binary trading Also sets them as a space separated list as the DEBBUILDPROFILES environment variable which allows, for example, debian rules files to use this information for conditional Forex Exchange Ra te In Belize It can be used in place of --host-arch or as a complement to override the default GNU system type of the host Debian architecture Stock Market Index Of Norway - j, --jobs jobs auto Number of jobs allowed to be run simultaneously, number of jobs matching the number of online processors if auto is specified since dpkg 1 17 10 , or unlimited number if jobs is not specified, equivalent to the make 1 option of the same name since dpkg 1 14 7, long option since dpkg 1 18 8.

No comments:

Post a Comment