Vraag Bij het installeren van gebruikerstoepassingen, waar kunnen 'aanbevolen werkwijzen' worden gevonden?


Soms installeer ik applicaties handmatig, in plaats van te gebruiken apt of een andere pakketbeheerder.

Welke locatie (/usr/, /usr/local/, /opt/, /home/, enz.) wordt gesuggereerd door "best practices" voor de installatie van gebruikerstoepassingen?


184
2017-08-05 14:42


oorsprong


Liken om dingen te installeren uit de bron zo vaak, schreef ik een beetje hulpmiddel om het te doen die de wijzigingen in uw shell-opstartbestand op zichzelf uitvoert (en ook uw bibliotheekprefix, als u ernaar vraagt, wijzigen voor programma's die afhankelijk zijn van gedeelde bibliotheken). Niet erg rijk aan functies, maar het werkt 99% van de tijd. - new123456
Verwant bericht: askubuntu.com/q/138547/62483 - Lucio
Grote discussie over het onderscheid tussen /opt en /usr/local : unix.stackexchange.com/q/11544/11917 - blong


antwoorden:


Dat hangt er eigenlijk van af. Als de toepassing een makefile heeft, gebruikt (voor python-apps) distutils (heeft een setup.py bestand) of een soortgelijk build / install systeem, zet het in /usr/local/ (standaard gedrag).

Als je gewoon een tarball uittrekt en direct uitvoert (bijvoorbeeld Thunderbird, Firefox), plaats het dan in /opt/.

Waarom? Van wat ik begrijp, /usr/local/ heeft een hiërarchie die vergelijkbaar is met /usr/. Dus een programma dat verwacht om "geïnstalleerd" te worden /usr/ zou goed moeten werken /usr/local/. Een programma dat slechts één map nodig heeft en alle bestanden / bibliotheken met betrekking tot die map krijgt, kan één map voor zichzelf krijgen /opt/.


163
2017-08-05 14:53



Het lijkt zoveel mensen vergeten opt/ - naar mijn mening heb je de spijker op zijn kop geslagen als voor zijn doel. - Marco Ceppi♦
Ik heb eclips gedownload en geëxtraheerd naar / opt. Hoe kan ik het van terminal laten werken zoals andere programma's zoals javac, java. Ik deed met update-alternatieven als volgt, sudo update-alternatives - installeer "/ usr / bin / eclipse" "eclipse" "/ opt / eclipse / eclipse" 1 MAAR HET ZEGT COMMANDO NIET GEVONDEN I TYPE sudo eclipse - Deepen
Maak een symlink vanuit / usr / bin of voeg het toe aan PATH in ~ / .bashrc - Alex


Het is goed om dat te onthouden /usr staat niet voor gebruiker maar liever unix systeembronnen.

Als zodanig ben ik geneigd te veronderstellen dat elke distributie de rechten heeft om helemaal over de inhoud van te stampen /usr, en dat mijn specifieke toevoegingen aan het systeem ingaan /usr/local, die ik behoud voordat ik een upgrade uitvoer.

Ondertussen gaan applicaties en andere dingen naar binnen /opt.

Sommige mensen voelen zich op hun gemak door spullen erin te stoppen /homehoewel ik die conventie zelden volg.

Dat gezegd hebbende, liet ik de distributiepakketmanager eerst dingen op zijn manier doen, en dan het bovenstaande doen bij het rollen van dingen.


99
2017-09-17 17:39



Het is de moeite waard te onthouden dat 'unix systeembronnen' een hernoeming is die NA '/ home' is toegevoegd. In de oude, oude, oude dagen (Unix Version 6 et.al.) zag je mappen zoals / usr / jimmy, / usr / siobhan, / usr / ahmed, etc. omdat de "user" -directory's werden opgeslagen in / usr . - Mark Leighton Fisher
OK ik zal bijten: waar staat opt ​​voor? - Seth
@Seth Ik denk dat het 'optioneel' is - het was oorspronkelijk bedoeld voor software die geen deel uitmaakte van een standaardinstallatie. - Carl H
/ usr is User. Dat kwam omdat Linux-gebruikers ontwikkelaars waren. Eerst toen het zich begon te splitsen in ontwikkelaars en gebruikers de /home dir werd geïntroduceerd. En dan had iemand het idee om te zeggen dat het betekent Unix System Resources, wat niet echt logisch is, want we hebben de Unix system Resources in /dev - Info-Screen
Juist, / usr is een backronym. Het doel is veranderd sinds de tijd dat Unix in 1969 op een PDP-7 draaide. - Walt Stoneburner


Installeer onstabiele programma's zoals Firefox ontwikkel in / home / user / opt / maakt het een stuk gemakkelijker te verwijderen, en geen verwarring voor andere gebruikers over welke versie ze zouden moeten gebruiken ... Dus als het geen programma is voor wereldwijd gebruik, installeer dan het in een submap in je homedirectory.

Installeer nooit programma's in / usr /, het veroorzaakt waarschijnlijk chaos, dingen geïnstalleerd in / usr / is alleen bedoeld voor distributiepakketten. / usr / local / is voor pakketten die lokaal zijn gecompileerd. En de werking werkt op precies dezelfde manier! bestanden in / usr / local / krijgen voorrang boven bestanden in / usr /

/ opt / moet worden gebruikt voor de installatie van vooraf gecompileerde (binaire) pakketten (Thunderbird, Eclipse, Netbeans, IBM NetSphere, enz.) en dergelijke. Maar als ze alleen voor een enkele gebruiker zijn, moeten ze in je thuismap worden geplaatst.

Als je een programma wilt kunnen laten installeren op een "rare" locatie (zoals / home / user / opt / firefox /) zonder het hele pad te typen, moet je het toevoegen aan je $ PATH-variabele, kun je dit doen een regel als deze toevoegen in uw /home/user/.profile

export PATH=/home/user/opt/firefox:$PATH

De mapnaam moet de map zijn waar het uitvoerbare bestand dat u moet uitvoeren zich bevindt.


30
2017-08-07 08:40





De Linux Filesystem Hierarchy Standard geeft aan /usr/local.

Van http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html:

Het oorspronkelijke idee achter '/ usr / local' was om een ​​apart ('lokaal') te hebben   '/ usr' directory op elke machine naast '/ usr', wat misschien net is   alleen-lezen vanaf een andere locatie. Het kopieert de structuur van   '/ Usr'. Tegenwoordig wordt '/ usr / local' algemeen beschouwd als een goede plaats in   om zelf gecompileerde of programma's van derden te houden. De / usr / local   hiërarchie is voor gebruik door de systeembeheerder bij het installeren   software lokaal. Het moet veilig zijn om te worden overschreven wanneer het   systeemsoftware is bijgewerkt. Het kan worden gebruikt voor programma's en gegevens die   zijn deelbaar onder een groep hosts, maar niet in / usr. plaatselijk   geïnstalleerde software moet worden geplaatst in / usr / local in plaats van / usr   tenzij het wordt geïnstalleerd om software in / usr te vervangen of te upgraden.


25
2017-08-05 14:45



Lijkt dit / usr / local spul in tegenspraak met de info op de opt-pagina: tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html "" Deze map is gereserveerd voor alle software en add-on-pakketten die geen deel uitmaken van de standaardinstallatie. Bijvoorbeeld, StarOffice, Kylix, Netscape Communicator en WordPerfect-pakketten zijn normaal hier te vinden. Om te voldoen aan de FSSTND, moeten alle toepassingen van derden in deze map worden geïnstalleerd. "..." (vergelijkbaar met de manier waarop Windows nieuwe software installeert in zijn eigen directorystructuur C: \ Windows \ Progam Files \ "Programmanaam ")" - Pod


Ik heb meestal een map met de naam "Programma's" in mijn huis waar ik die programma's installeer, vreemd genoeg (of niet) het zijn nu allemaal java-dingen.

Het heeft een groot voordeel voor mij, als ik computers opnieuw installeer of wissel, raken ze verplaatst met de rest van mijn huis. Het heeft een duidelijk nadeel, die apps zijn alleen beschikbaar voor mijn gebruiker.


5
2017-08-05 14:57



Hoe kan ik Ubuntu 16.04 opnieuw installeren zonder gegevens in de thuismap te verliezen? Ik probeerde het te doen door formate / directory en typ dan dezelfde oude gebruikersnaam en hetzelfde wachtwoord, maar ik heb ontdekt dat Ubuntu een andere thuismap maakt. - Ibrahim Disouki


Gebruik "checkinstall" om uw buitenaards pakket naar een deb te converteren zodat het niet meer kan worden gebruikt met behulp van de pakketbeheerder.

Houd er rekening mee dat configuratiebestanden vaak niet worden behandeld als configuratiebestanden (mogelijk genegeerd of misschien behandeld als onderdeel van de app) en dat pre- en post-install-scripts soms worden verknoeid, hoewel het u gewoonlijk waarschuwt wanneer het denkt dat de deb zal een slecht pre- of post-install script hebben.


1
2017-08-16 01:41