NixOS

NixOS izstrādes vides

NixOS izstrādes vides
Izstrādājot un palaižot programmatūru, daudzas reizes jūsu vidē ir nepieciešams ļoti noteikts bibliotēku komplekts. Jūs to sasniedzat ar virtuālo vidi, konteineriem un citiem trikiem. Tomēr tas viss jums nav obligāti vajadzīgs. Viens izplatīts gadījums ir tas, ka, programmējot Python, jums jāizvēlas starp abām lielajām versijām. Tas ir sagādājis daudz galvassāpju gan lietotājiem, gan izstrādātājiem. Jūs varat izvairīties no tā visa, ja jūsu bibliotēkas ir noteiktas, it īpaši vienai kārtai. Tas var izklausīties neiespējami vai nevajadzīgi, taču tas ir ļoti ērti retos gadījumos un izstrādei.

Pārskatīšanas elle

Ikviens, kurš to lasa, būs iepazinies ar Python jautājumu par citas valodas versijas lietošanu. Tas ir tikai viens spilgts piemērs, kurā tiek ietekmēti pat lietotāji. Tas ir saistīts ar veciem izciliem projektiem, kas pārtrauca programmatūras uzturēšanu. Daudzās citās situācijās jums ir arī nepieciešama liela kontrole pār to, kas darbojas un kādas bibliotēkas ir pieejamas. Programmējot C un C ++, tiek izmantotas bibliotēkas, kurām apkopojot bieži jābūt precīzai versijai. Pretējā gadījumā jūs atkārtoti rakstīsit programmatūras daļas, kurām nekad nebija paredzēts pieskarties. Daudzi izstrādātāji izmanto konteineru ar visām bibliotēkām, un visi pārējie darbi notiek resursdatorā.

Nix Fix

Kā nix rūpējas par šo problēmu? Nu, viņiem ir visi faili veikalā ar jaukšanu, lai noteiktu precīzu versiju. Vide, kuru izmantosit, pēc tam izveidojiet saiti uz bibliotēku vai izpildiet, ir kaut kas tāds, ko vēlaties izmantot pašreizējā situācijā. Darbojošai sistēmai pēc tam varat izmantot daudzas lietojumprogrammas versijas un pat bibliotēkas. Ja vēlaties attīstīties, izveidojat konfigurācijas failu, kas aptver jūsu pašreizējā projekta vajadzības.

Konfigurācijas faili

Kad esat instalējis NixOS, konfigurācija.nix kontrolēs jūsu vidi visam datoram. Pateicoties tam, jūs varat to kontrolēt visos čaulas gadījumos. Neatkarīgi no tā, vai jums ir NixOS vai darbojas kāds cits izplatītājs, varat izmantot citu nix failu. Fails tiek saukts par noklusējumu.nix pēc noklusējuma. To var izmantot, lai izveidotu direktoriju struktūru, kurai ir noteikta vide. Darbplūsmas mērķis ir izveidot noklusējuma nix failu, lai atspoguļotu to, ko vēlaties, lai jūsu vide atbalstītu. Pēc tam mainiet direktoriju un palaidiet nix-build, pēc tam palaidiet nix-shell. Failam var izmantot arī jebkuru nosaukumu, ja to norādāt komandrindā.

$ cd MyProject /
$ nix-build # Reiz, kad kaut ko esat mainījis.
noklusējuma $ nix-shell.nix

Tiks izteikts nix-shell parametrs, bet, ja vēlaties, lai vienā direktorijā būtu vairāki, tad varat izmantot slēdzi. Ja ir iestatītas pareizās vērtības, jūsu vide tagad ir vienāda katru reizi, kad sākat nix-shell. Pārvietojot nix failu, to varēsiet iegūt jebkurā vietā! Lielais jautājums kļūst; ko es ievietoju nix failos?

Failos tiek izmantota Nix izteiksmes valoda, tā ir gandrīz programmēšanas valoda.

Daži piemēri

Zemāk ir daži piemēri, kas jums var palīdzēt. Lai uzlabotu savu vidi, varat darīt vēl daudz citu lietu. Šis ir garš aizraujošs ceļojums, taču tas, iespējams, palēninās jūs no paša sākuma. Pirms jūs tur nokļūstat, izmantojiet citu personu kodu. Šis saraksts ir īss, tāpēc meklējiet idejas tīmeklī.

Python

Ja vēlaties izveidot Python projektu, parasti izmantojat virtuālās vides. Izmantojot Nix, tas nav nepieciešams. Tā vietā jūs varat izveidot čaulu.nix fails, kas paziņo, kuru versiju vēlaties. Vienkāršākais veids, kā to izdarīt, ir izmantot python38Full.

pkgs ? importēt :
pkgs.mkShell
# nativeBuildInputs parasti ir tas, ko vēlaties - rīki, kas jums jāpalaiž
nativeBuildInputs = [pkgs.buildPackages.python38Full];

Tas apkopo vidi ar visām Python 3 daļām.8, kas nāk ar NixOS. Ja vēlaties samazināt savu vidi, varat izvēlēties tās konkrētās daļas. Jūs varat arī pievienot savu avota kodu attālināti, izmantojot ienesšanas funkcijas.

Python kolba

Tīmekļa izstrādes piemērs ir kolba. Tā ir ļoti spēcīga pakete, lai izveidotu tīmekļa lapas, pat patiešām sarežģītas, bez īpašām pūlēm. Tā kā kolba ir populārs ietvars, tam ir gatava NixOS pakete. Fails, kas kontrolē šī būvējuma izveidi, tiek saukts par noklusējumu.nix.

pkgs ? importēt :
pkgs.python38Packages.buildPythonApplication
pname = "NixApp";
src = ./.;
versija = "0.1 ";
propagatedBuildInputs = [pkgs.python38Packages.kolba];

Kā redzat, ir nixpkgs iepakojumi, kas pārklāj kolbu. Ja vēlaties izmantot kaut ko citu, pievienojiet tos kvadrātiekavās. Tas attiecas uz visu veidu pakotnēm, kas ir iekļautas NixPkgs krātuvē. Ja pakete nepastāv, izmantojiet ienesēju.

Python izstrāde

Ja vēlaties sākt Python izstrādes vidi, pievienojiet nepieciešamās paketes atbilstoši pārskatīšanai un citām.

ar importu ;
ar pkgs.python37Packages;
stdenv.mkDerivation
nosaukums = "python-devel";
req = ./ prasības.txt;
celtnieks = "$ bash / bin / bash";
iestatīšana = ./ setup_venv.sh;
buildInputs = [
python37Pilnīgs
python37Packages.pip
];
sistēma = iebūvētie.currentSystem;
shellHook = "
SOURCE_DATE_EPOCH = $ (datums +% s)
";

ShellHook, starp dubultajiem apostrofiem (”), varat ievietot visus skriptus, kas jums patīk. Atkal padomājiet par to, kas jau varētu pastāvēt, jo tur ir daudz gudru cilvēku, kas jau attīstās, izmantojot NixOS.

JavaScript

Standarta versija JavaScript vai precīzāk nodejs lietošanai ir zemāk esošais nix skripts. Nosauciet to apvalks.nix un ievietojiet to projekta direktorijā, pēc tam sāciet ar komandu nix-shell.

ar importu ;
stdenv.mkDerivation
nosaukums = "mezgls";
buildInputs = [
nodejs
];
shellHook = "
eksportēt PATH = "$ PWD / mezgla_moduļi /.bin /: $ PATH "
";

Tas ir vienkāršākais, iespējamais triks, lai gan to ir daudz vairāk. Jūs varat uzzināt, kā pievienot skriptu, kuru citādi palaistu manuāli. Pirms to izmantojiet uzmanīgi un meklējiet pilnas alternatīvas.

Jupyter

Zemāk esošais skripts inicializē direktoriju, lai mitinātu funkciju kopu, kurā var palaist Jupyter. Pārējās paketes paredzētas statistikai un mašīnmācībai. Jūs varat arī noņemt un pievienot atbilstoši savām vajadzībām.

ar importu ;
(
ļaujiet
pitonā38.arPackages (ps: ar ps; [geopandas ipython jupyter
jupyterlab matplotlib numpy pandas seaborn toolz])
).env

Konfigurācijas

Jūsu IDE, redaktoram vai jebkuram citam patiešām varat cept arī iestatījumos. Izstrādātājiem VIM un Emacs būs pirmie kandidāti uz šo specializāciju. Vim ir savs spraudņu komplekts, kas pieejams kā nixpkgs.

Fetchers

Paketes NixOS pamatā ir faili, kas norāda uz avotiem un to, kas nepieciešams pakotņu sastādīšanai. To var izmantot, ja trūkst paketes. Kamēr jūs varat atrast avota pakotni, tās instalēšanai varat izmantot ienesēju. Standarta ienesējs ienes patērētājus, bet tiek dēvēts par fetchurl.

stdenv, fetchurl:
stdenv.mkDerivation
vārds = "sveiki";
src = fetchurl
url = "http: // www.piemērs.org / labdien.darva.gz ";
sha256 = "1111111111111111111111111111111111111111111111111111111111";
;

Jūs varat to izmantot tā, kā tas ir iepriekšminētajā kodā. Jums ir arī fetchgit un citas versiju kontroles sistēmas. Papildus tam galvenie git pakalpojumi ir pārklāti ar fetchFromGitHub, fetchFromGitLab un citiem. Izmantojot visus šos ienesējus, jums vajadzētu būt iespējai atrast jebkuru nepieciešamo paketi NixOS.

Secinājums

NixOS izmantošana prasa nedaudz vairāk pūļu nekā citi sadalījumi. Tomēr, ja vēlaties izstrādāt programmatūru, pūles ir tā vērts. Jūs uzturēsiet galveno sistēmu tīrāku un varēsit lēkāt starp projektiem, neradot traucējošus konfliktus starp vidēm.

Instalējiet jaunāko Dolphin emulatoru Gamecube un Wii operētājsistēmai Linux
Delfīnu emulators ļauj jums spēlēt izvēlētās Gamecube un Wii spēles Linux personālajos datoros (PC). Tā kā Dolphin Emulator ir brīvi pieejams un atvē...
Kā lietot GameConqueror Cheat Engine Linux
Rakstā ir sniegts ceļvedis par GameConqueror apkrāptu dzinēja izmantošanu Linux. Daudzi lietotāji, kas spēlē spēles operētājsistēmā Windows, bieži izm...
Labākie Linux spēļu konsoles emulatori
Šajā rakstā tiks uzskaitīta populārā Linux spēļu konsoles atdarināšanas programmatūra. Emulācija ir programmatūras saderības slānis, kas atdarina spēļ...