Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Deb package iets laten instaleren in eigen map  (gelezen 1631 keer)

Offline brickmasterj

  • Lid
  • Steunpunt: Nee
Deb package iets laten instaleren in eigen map
« Gepost op: 2011/11/03, 19:34:11 »
Ik ben een .deb package aan het maken.
Maar ik wil dat er iets geïnstalleerd word in de map /home/[user]/[wat mappen]
Maar hoe moet ik dat formuleren in de .deb?
Bij mij is het dus /home/joris/...
Maar bij iemand anders misschien wel anders (grote kans dat de meeste niet 'Joris' heten  ;) :D)
Hoe moet je de map na 'home' dan noemen?
Of is dit wel mogelijk?
Workstation:
Dell Precision 690 Workstation
Dual Xeon X5365 Quad (8-Cores @3.0GHz)
64GB DDR2 R.A.M.
Sapphire Radeon HD 6570 (2GB GDDR3)

PC:
Dell OptiPlex 755
Intel Core 2 Duo E8400 (2-Cores @3,00Ghz)
4GB DDR2 R.A.M.
ATi Radeon HD 2400 XT (258MB GDDR2)

IGN: brickmasterj (of brickmaster-j)

Offline overdenkamp

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #1 Gepost op: 2011/11/03, 20:16:23 »
Volgens mij doen bijna alle programma's dat als ze voor de eerste keer opgestart worden...

Kun je anders niet ergens iets met installatiescripts, in die debs? Is er niet een bepaalde naam voor een bestandje, om in de dep te plaatsen, die automatisch gerund wordt door dpkg bij het installeren, waar je dan een simpel bash-scriptje van maakt met een cp. Geen idee of dat erg gewaardeerd zou worden, en je moet ook even goed nadenken hoe dat met verwijderen gaat, ook als een andere user het verwijdert... -Weet er ook niet zo veel van af-

Offline Erik Krom

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #2 Gepost op: 2011/11/03, 20:46:42 »
Van het maken van een .deb weet ik ook niet veel, maar om met de terminal in de home map te komen gebruik ik altijd ~.
Als de .deb met shell script werkt zou je het daar ook moeten kunnen gebruiken.

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #3 Gepost op: 2011/11/03, 20:49:41 »
Het is in ieder geval niet alledaags om een deb in de homemap te installeren. Als een gebruiker dat echt wil, kan hij dit meegeven aan de dpkg opties bij het installeren.

Wat moet er precies in de homemap terecht komen? Heel het pakket? Enkele bestanden? Wat voor programma is het precies?

Offline brickmasterj

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #4 Gepost op: 2011/11/03, 21:03:56 »
Om een voorbeeld te noemen (dit is niet mijn over mijn eigen .deb)
Ik heb een keer van iemand een .deb gekregen die iets installeerde in:
/home/joris/.minecraft/bin/
(Het was een mod voor Minecraft, een spel)
Maar ik heb deze .deb niet meer, en ik kan hem ook op internet niet meer vinden...
Ik weet niet ook niet hoe je in een bash-script kan bestanden kan laten kopiëren naar:
/home/{user}/
Is het niet mogelijk om in de .deb alleen een DEBIAN en een map met de bestanden (bijv.: 'files') aan te maken,
en dat degene dan bij het instaleren zelf moet zeggen dat de bestanden uit map 'files' in de /home/{user}/ moet komen?
Wat wordt de terminal command dan?

Workstation:
Dell Precision 690 Workstation
Dual Xeon X5365 Quad (8-Cores @3.0GHz)
64GB DDR2 R.A.M.
Sapphire Radeon HD 6570 (2GB GDDR3)

PC:
Dell OptiPlex 755
Intel Core 2 Duo E8400 (2-Cores @3,00Ghz)
4GB DDR2 R.A.M.
ATi Radeon HD 2400 XT (258MB GDDR2)

IGN: brickmasterj (of brickmaster-j)

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #5 Gepost op: 2011/11/03, 21:08:14 »
Het simpelste zou een gewoon bash script zijn. Zet de gewenste bestanden en het script in een map en pak het in met tar (tar.gz of tar.bz2 bijvoorbeeld).

Voorbeeld:
#!/usr/bin/sh
cp -r mapmetbestanden $HOME/.minecraft/mapmetbestanden

Offline brickmasterj

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #6 Gepost op: 2011/11/03, 21:46:04 »
Het simpelste zou een gewoon bash script zijn. Zet de gewenste bestanden en het script in een map en pak het in met tar (tar.gz of tar.bz2 bijvoorbeeld).

Voorbeeld:
#!/usr/bin/sh
cp -r mapmetbestanden $HOME/.minecraft/mapmetbestanden
Maar waar moet ik dit script dan in de .deb zetten?
En als ik het script laat opslaan in /tmp/ (ofzo), hoe laat je hem dan runnen, na of onder de instalatie?
Kan het dan bijvoorbeeld zijn dat die Minecraft installer deed:
- Inhoud: DEBIAN, tmp
- Na het instaleren word /tmp/bash-scirpt gerunt, automatisch
 - In die bash-script staat:
   cp -r /tmp/.minecraft/bin/ $HOME/.minecraft/bin
- Instalatie voltooien, (eventueel)  /tmp/ bestanden worden verwijderd
Workstation:
Dell Precision 690 Workstation
Dual Xeon X5365 Quad (8-Cores @3.0GHz)
64GB DDR2 R.A.M.
Sapphire Radeon HD 6570 (2GB GDDR3)

PC:
Dell OptiPlex 755
Intel Core 2 Duo E8400 (2-Cores @3,00Ghz)
4GB DDR2 R.A.M.
ATi Radeon HD 2400 XT (258MB GDDR2)

IGN: brickmasterj (of brickmaster-j)

Offline MauRice2

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #7 Gepost op: 2011/11/03, 22:07:13 »
Brickmasterj,

Zonder al te diep in details gaan...
Een deb-pakket die in je HOME-map installeer, gaat niet.
- De opdracht wordt als root uitgevoerd (sudo), dus als het ging, zal eerder in de HOME-map van de root terecht komen.
- De rechten zullen niet goed tenzij je alles op 0777 zet, wat ook niet de bedoeling is.
- Bij het installeren weet het die echt niet welke user deze bestanden moet hebben in zijn HOME-map.

Wat eigenlijk gebeurt met die MOD-deb-pakket-voor-Minecraft, dat de MOD's in de map van Minecraft worden ge-installeerd.
En bij de eerste volgende keer dat je het spel speel, deze bestanden in je HOME-map worden geladen. Hebben ze ook gelijk de goede rechten en eigenaar 'vlaggen'.

De makkelijkste manier is die van Nunslaughter.
Wat je wel kan maken is een self-extract-zip-bestand:
http://lembra.wordpress.com/2011/09/04/how-to-generate-a-bash-script-with-an-embeeded-tar-gz-self-extract/

« Laatst bewerkt op: 2011/11/03, 22:11:55 door MauRice2 »
MvG,
MauRice
Registered Linux user: 473556

Offline brickmasterj

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #8 Gepost op: 2011/11/03, 22:14:08 »
Ok, das een hoop info, maar dat zelfuitpakkende .tar.gz bestand is heel handig!
En het tweede probleem stond ook al klaar: als ik sudo dpkg-deb --build {Package} deed,
Kreeg ik de error dat de permissies voor die map 700 was, en dat moest >=0755 en <=0755 zijn.
Workstation:
Dell Precision 690 Workstation
Dual Xeon X5365 Quad (8-Cores @3.0GHz)
64GB DDR2 R.A.M.
Sapphire Radeon HD 6570 (2GB GDDR3)

PC:
Dell OptiPlex 755
Intel Core 2 Duo E8400 (2-Cores @3,00Ghz)
4GB DDR2 R.A.M.
ATi Radeon HD 2400 XT (258MB GDDR2)

IGN: brickmasterj (of brickmaster-j)

Offline MauRice2

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #9 Gepost op: 2011/11/03, 22:23:14 »
Brickmasterj,

Als je er in verdiep zal het mogelijk zijn met de een deb-bestand.
Plaats de MOD-bestanden en het script in een map plaatsen bv /tmp.
Installeer de deb-bestand.
Dan het script laten uitvoeren door de juiste user.
Dan komen ze wel met de goede rechten en vlaggen in de user's zijn HOME-map.
Deb-bestand weer de-installeren,

Ben je, volgens mij, beter af met een self-extract-zip-bestand.
MvG,
MauRice
Registered Linux user: 473556

Offline brickmasterj

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #10 Gepost op: 2011/11/03, 22:51:27 »
Brickmasterj,

Als je er in verdiep zal het mogelijk zijn met de een deb-bestand.
Plaats de MOD-bestanden en het script in een map plaatsen bv /tmp.
Installeer de deb-bestand.
Dan het script laten uitvoeren door de juiste user.
Dan komen ze wel met de goede rechten en vlaggen in de user's zijn HOME-map.
Deb-bestand weer de-installeren,

Ben je, volgens mij, beter af met een self-extract-zip-bestand.
Ehm, ja ik zit weer met een error XD:
Als ik het bestand (samengevoegd tot example.sh) wil uitvoeren in /tmp/ krijg ik de error:
Extracting file into /tmp

gzip: stdin: not in gzip format
tar: Child died with signal 13
tar: Error is not recoverable: exiting now
Finished
Ik heb exact opgevolgd wat er beschreven werd op http://lembra.wordpress.com/2011/09/04/how-to-generate-a-bash-script-with-an-embeeded-tar-gz-self-extract/
Ik heb de .tar.gz file aangemaakt met 'Archiefbeheer'  :|
Ook als ik het archief aan maak met deze command, blijft hij de error geven...
tar -zcvf example.tar.gz /home/joris/files/
« Laatst bewerkt op: 2011/11/03, 23:34:32 door brickmasterj »
Workstation:
Dell Precision 690 Workstation
Dual Xeon X5365 Quad (8-Cores @3.0GHz)
64GB DDR2 R.A.M.
Sapphire Radeon HD 6570 (2GB GDDR3)

PC:
Dell OptiPlex 755
Intel Core 2 Duo E8400 (2-Cores @3,00Ghz)
4GB DDR2 R.A.M.
ATi Radeon HD 2400 XT (258MB GDDR2)

IGN: brickmasterj (of brickmaster-j)

Offline MauRice2

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #11 Gepost op: 2011/11/04, 06:42:13 »
Brickmasterj,

Blijkbaar zit er een foutje in.
Het beste is 'copy - paste'.

Als je de stappen volgt...
Krijg je met het script uit te voeren in /tmp...
Exact een kopy van de mappen-structuur + bestanden uit je HOME-map in /tmp  

Kijk eens in de self-extract-zip-bestand, of er geen lege regel tussen zit.
Citaat
# NOTE: Don't place any newline characters after the last line below.
14   __TARFILE_FOLLOWS__
Q��2��B7�<9PR)+u�ʯ~�_uU'������@���1:�j�cTk�Z��
« Laatst bewerkt op: 2011/11/04, 07:02:18 door MauRice2 »
MvG,
MauRice
Registered Linux user: 473556

Offline brickmasterj

  • Lid
  • Steunpunt: Nee
Re: Deb package iets laten instaleren in eigen map
« Reactie #12 Gepost op: 2011/11/04, 12:53:37 »
Ja, idd, ik had idd een lege regel aan het einde, over het hoofd gezien  :D
Tnx, het werkt nu!
Is er alleen nog iets waarmee je in het script kan vaststellen waar die uitgepakt word?
Dus op een vaste locatie?
Workstation:
Dell Precision 690 Workstation
Dual Xeon X5365 Quad (8-Cores @3.0GHz)
64GB DDR2 R.A.M.
Sapphire Radeon HD 6570 (2GB GDDR3)

PC:
Dell OptiPlex 755
Intel Core 2 Duo E8400 (2-Cores @3,00Ghz)
4GB DDR2 R.A.M.
ATi Radeon HD 2400 XT (258MB GDDR2)

IGN: brickmasterj (of brickmaster-j)