Fuistine umquam experiri cum codice seu systema utilitates in Linux ut non cures de basi ratione et non omnia destruas in casu erroris in codice qui cum privilegiis radicibus currere debet?
Sed quid quod dicamus te probare vel currere in una machina totum fasciculum variarum micro- ionum? Centum an mille?
Cum machinis virtualis ab hypervisore tractatis, tales quaestiones solvi possunt et erunt, sed quanti? Exempli gratia, continens in LXD distributione Linux Alpinae secundum distributionem tantum consumit 7.60MB
RAM, et ubi radix maceriæ obtinet post satus 9.5MB
! Quomodo tibi placet, Elon Musk? Commendo reprehendo sicco fundamentales facultates LXD - continentis systematis in Linux
Postquam in genere patuit quaenam LXD continentia sint, longius eamus et cogitemus, quid si tale messoris suggestum fuerit ubi tuto codicem exercitui currere possis, graphas generare, dynamice (interactive) ligare UI- contenta cum codice tuo; supplementum codicem cum textu Aenean... formatting? Quidam interactive blog! Wow... Volo! Egestas! π
Vide sub felem ubi immittamus in vase Juppiter lab - posteros interfaciei usoris loco Iuppiter Comentarii iam pridem usoris, et modulos Python etiam ut instituemus. numpy, pandas, matplotlib', IPyWidgets quae omnia supra scripta facere tibi sinet et omnia in speciali documento - IPython laptop servabis.
ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ
- Orbital ne longe consilium
- Institutionem et configurationem systematis fundamentalis
- Installing basic software and setting up the system
- Installing ac Vestibulum JupyterLab
- Socius notitia cum exercitu
- Salve, Orbis Terrarum!
- Dilatandi facultates Pythonis
- Testis moduli in JupyterLab
- Quid plura?
Orbital ne longe consilium ^
Brevis actio consilium destinet, ut facilius nobis ad propositum supra modum exsequendum:
- Sit scriptor install et launch vas secundum distributionem ornamentum Alpinae Linux. Distributione hac utemur, quia minimalismum spectat, ac solum necessariam in ea programmationem instituemus, nihil supervacaneum.
- Addamus additamentum virtualis orbis in vase et nomen ei da -
hostfs
et conscende eam ad radicem fasciculi. Hic orbis efficiet ut lima in hospitem ex dato presul intra continente uti possit. Sic notitia nostra sine vase erit. Si continens deletum est, notitia super exercitum remanebit. Etiam hoc schema utile est ad eandem datam communicandam inter multa vasa sine norma retis mechanismi continentis distributionem. - Instituamus Bash, sudo, necessarias bibliothecas, systema usoris addere et configurare
- Instruamus Pythonem, moduli et binarii clientelas illis componant
- Sit scriptor install quod launch Juppiter labspeciem customize, extensiones instituere pro eo.
In hoc articulo incipiemus deducendo continens, non considerare de installando et configurando LXD, haec omnia in alio articulo reperire potes. Basic lineamenta LXD - Linux systemata continens.
Institutionem et configurationem systematis fundamentalis ^
Vas cum praecepto in quo imaginem definimus creamus alpine3
, identifier pro continens - jupyterlab
et, si opus est, figurae figurae;
lxc init alpine3 jupyterlab --profile=default --profile=hddroot
Hic sum usus configuratione profile hddroot
quae dat speciem radicis in vase cum partitione Repono Pool sita in corporis HDD orbis:
lxc profile show hddroot
config: {}
description: ""
devices:
root:
path: /
pool: hddpool
type: disk
name: hddroot
used_by: []
lxc storage show hddpool
config:
size: 10GB
source: /dev/loop1
volatile.initial_source: /dev/loop1
description: ""
name: hddpool
driver: btrfs
used_by:
- /1.0/images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
- /1.0/profiles/hddroot
status: Created
locations:
- none
Hoc mihi facultatem dat experiendi cum vasis in orbe HDD, salvis opibus orbis SSD, quae etiam in systemate meo praesto est, pro quo figuram figuram separatam creavi. ssdroot
.
postquam continens creatur, est in statu; STOPPED
sic oportet illud incipere cursando in ea ratio init;
lxc start jupyterlab
Indicem continentiae in LXD clavibus utendo ostendemus -c
quae indicat columns proponere;
lxc list -c ns4b
+------------+---------+-------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool |
+------------+---------+-------------------+--------------+
Cum continens creando, IP oratio passim electa est, cum figurationem profile adhibebamus default
quod ante felis in articulum Basic lineamenta LXD - Linux systemata continens.
Hanc IP inscriptionem mutabimus ad memorabiliorem unum creando interfaciem retis in gradu continentis, et non in plano profile configurationis sicut nunc in figura hodierna. Hoc non habes, saltare potes.
Creando network interface eth0
quam ad transitum coniungimus (pons network) lxdbr0
in quibus NAT secundum articulum praecedentem et continens accessum habebimus ad Interreti, et etiam IP oratio stabilis ad interfaciem assignamus - 10.0.5.5
:
lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
His additis fabrica, receptaculum rescindi debet;
lxc restart jupyterlab
Reprehendo statum continentis;
lxc list -c ns4b
+------------+---------+------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0) | hddpool |
+------------+---------+------------------+--------------+
Installing basic software and setting up the system ^
Ad vas nostrum administrandum, sequenti programmate inaugurari debes:
sarcina
Description
vercundus
GNU Burne Iterum concha
vercundus, complementum
Programmable complementum ad vercundus testa
sudo
Da quidam users posse currere quaedam praecepta ut radix
umbra
Tessera et instrumentorum administratio rationi consentaneum cum subsidiis ad fasciculos umbrarum et PAM
tzdata
Fontes ad tempus zonae et diei tempus salvificum data
Nano
Picus editor clone cum enhancements
Accedit, auxilium instituere potes in systematis hominis paginis insertis fasciculis sequentibus man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano
Intueamur mandata et claves quibus usi sumus;
lxc
- Voca LXD clientisexec
- LXD Clientem modum, qui imperium in vase decurritjupyterlab
- Continens ID--
- Peculiaris clavis quae dat speciem claves ulterius non interpretandi sicut claves prolxc
et reliquam chordae ut continensapk
- Alpina Linux distributio sarcina procuratoradd
- A sarcina procurator modum qui installs packages certa post mandatum
Deinde tempus zonam in systemate ponemus Europe/Moscow
:
lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Post tempus installing zona, in sarcina tzdata
iam non opus est in systemate, spatium capiet, ut eam deleas:
lxc exec jupyterlab -- apk del tzdata
Reprehendo tempus zona:
lxc exec jupyterlab -- date
Wed Apr 15 10:49:56 MSK 2020
Ut non multum temporis impendamus Bash pro novis usoribus in continente instituendo, in sequentibus gradibus skel limas paratas factas ex hospitii systemate ad illud effingemus. Hoc permittet te Bash in vase interactive praetendere. Meus hospes systema Manjaro Linux et tabulae exscriptae sunt /etc/skel/.bash_profile
, /etc/skel/.bashrc
, /etc/skel/.dir_colors
in principio aptae sunt pro Alpine Linux et difficultates criticas non causant, sed aliam distributionem habere potes et debes sine modo instar sicco si error sit in continente currentem Bash.
Effingo lima ut osseam continens. Clavis --create-dirs
necessaria directoria creabit si non sunt:
lxc file push /etc/skel/.bash_profile jupyterlab/etc/skel/.bash_profile --create-dirs
lxc file push /etc/skel/.bashrc jupyterlab/etc/skel/.bashrc
lxc file push /etc/skel/.dir_colors jupyterlab/etc/skel/.dir_colors
Pro usuario radicis existenti, lima scelestae tantum expressa in receptaculum ad domum directorium effingo:
lxc exec jupyterlab -- cp /etc/skel/.bash_profile /root/.bash_profile
lxc exec jupyterlab -- cp /etc/skel/.bashrc /root/.bashrc
lxc exec jupyterlab -- cp /etc/skel/.dir_colors /root/.dir_colors
Alpina Linux installs a testa pro users ratio /bin/sh
erimus repone cum root
user in Bash:
lxc exec jupyterlab -- usermod --shell=/bin/bash root
quod root
usoris non ignoro, in tortor eget. Praeceptum sequens generabit et novam ei tesseram temere tradet, quam in scrinio consolatorio post eius executionem videbis;
lxc exec jupyterlab -- /bin/bash -c "PASSWD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12); echo "root:$PASSWD" | chpasswd && echo "New Password: $PASSWD""
New Password: sFiXEvBswuWA
Etiam, novum usorem systematis crearemus - jupyter
pro quo postea configurabimus Juppiter lab:
lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyter
Let's generate and set a password for it:
lxc exec jupyterlab -- /bin/bash -c "PASSWD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12); echo "jupyter:$PASSWD" | chpasswd && echo "New Password: $PASSWD""
New Password: ZIcbzWrF8tki
Deinceps duo mandata exequemur, primum systema coetus creabit sudo
et secunda adiciet usorem ei jupyter
:
lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyter
Videamus quid usor coetus pertinet ad jupyter
:
lxc exec jupyterlab -- id -Gn jupyter
jupyter sudo
Omnia est ok, moveamur in.
Patitur omnes users qui sunt membra coetus sudo
uti imperium sudo
. Ad hoc currunt scriptum sequens sed
uncomments parametri linea in configuration file /etc/sudoers
:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"
Installing ac Vestibulum JupyterLab ^
Juppiter lab Python est applicatio, ut primum hunc interpretem instituamus. Item, Juppiter lab nos install usura Pythone sarcina procurator pip
et non ratio unius, quia in promptuario systematis superari potest, ideoque necesse est ut manually dependentias pro eo componat, fasciculos sequentes inaugurari. python3 python3-dev gcc libc-dev zeromq-dev
:
lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-dev
Sit scriptor update pythonis modulorum et sarcina procurator pip
ad emendationem:
lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheel
install Juppiter lab per sarcina procurator pip
:
lxc exec jupyterlab -- python3 -m pip install jupyterlab
Cum extensiones in Juppiter lab experimentalia sunt et in sarcina jupyterlabrum publice non exiguntur, ita manually instituere et configurare debemus.
NodeJS instituamus et pro eo procurator involucrum - NPM, cum Juppiter lab utitur illis ad extensiones suas;
lxc exec jupyterlab -- apk add nodejs npm
Ad extensiones Juppiter lab quae operati instituemus, institui debent in directorio usoris, cum applicatio ex usore deducetur jupyter
. Problema est nullum esse modulum in imperio Lorem quod ad directorium transeundum esse potest: applicationis solum variabilis ambitus accipit ideoque definiendum est. Ad hoc faciendum, mandatum exportationis variae scribemus JUPYTERLAB_DIR
in user scriptor amet jupyter
, Ad file .bashrc
quod fit omni tempore utentis trabes in:
lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"
Proximum mandatum instituet specialem extensionem - extensionem procurator in Juppiter lab:
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager"
Nunc primum omnia parata sunt Juppiter labsed adhuc paucas extensiones utiles instituere possumus:
toc
β Tabula contentorum, elenchum capitulorum in an- ticulo/comentario generatjupyterlab-horizon-theme
- III themejupyterlab_neon_theme
- III themejupyterlab-ubu-theme
- Allium unus theme ab auctor hoc articulo :) Sed hoc in casu, institutionem ex Repositorio GitHub ostendetur
Curre sequentia mandata continue ut has extensiones instituas;
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build @jupyterlab/toc @mohirio/jupyterlab-horizon-theme @yeebc/jupyterlab_neon_theme"
lxc exec jupyterlab -- su -l jupyter -c "wget -c https://github.com/microcoder/jupyterlab-ubu-theme/archive/master.zip"
lxc exec jupyterlab -- su -l jupyter -c "unzip -q master.zip && rm master.zip"
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build jupyterlab-ubu-theme-master"
lxc exec jupyterlab -- su -l jupyter -c "rm -r jupyterlab-ubu-theme-master"
His extensionibus insertis, eas scribere debemus, cum antea, durante institutione, clavem designamus --no-build
ad tempus conserves. Nunc signanter acceleremus eos in unum componendo ire;
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"
Nunc sequentia duo mandata percurre, ut curramus primum Juppiter lab. Fieri posset ut uno imperio id deducerem, sed in hoc casu mandatum launch, quod difficile est in animo tuo recordari, memoria retinebitur in vase, et non in exercitu, ubi iam satis imperat. in historia notare :)
Positum est vas in user jupyter
:
lxc exec jupyterlab -- su -l jupyter
Deinceps run Juppiter lab cum clavibus et parametris ut notatur;
[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browser
Vade ad electronicam in navigatro tuo http://10.0.5.5:8888 et in pagina quae aperit intrare firmitatis indicium accessum quem in console videbis. Effingo quod crustulum in pagina, deinde deprime login. Post logging in, vade ad extensiones tabulas sinistrae, ut in figura infra ostenderis, ubi tu promptus erit, cum procurator extensionem activum, periculum securitatis capias, extensiones ex aliis partibus inauguratis, quibus mandatum est. JupyterLab progressus non est reus;
Sed totam solitudinem sumus Juppiter lab et pone in vase ut extensiones tertiae partis quae NodeJS requirunt et utantur, notitias in disco saltem furari non possint praeter ea quae intra continentem aperimus. Adepto ad documenta privata tua in hospitio /home
Processus continentis abhorret succedere, et si fecerint, debes habere privilegia in fasciculis in systematis militiae, quia in vasis curritur. unprivileged modus. Ex his indiciis, periculum aestimare potes in extensionibus inclusis Juppiter lab.
IPython codicillos creatos (paginae in Juppiter lab) nunc creabitur in directorio domus usoris - /home/jupyter
sed consilia nostra inter exercitum et continentem dividantur, ut ad consolandum revertamur et desinamus. Juppiter lab exsequendo hotkey - CTRL+C
et respondens y
postulante. Tum desinunt user scriptor interactive session jupyter
completing hotkey CTRL+D
.
Socius notitia cum exercitu ^
Ad data cum exercitu communicare, debes fabricam facere in vase quod sinit hoc facere et hoc facere, sequens mandatum currite ubi claves sequentes denotamus:
lxc config device add
- Quod mandatum adiungit fabrica configurationejupyter
β ID continentis cui conformatio additurhostfs
- Fabrica ID. nomen quodvis potes ponere.disk
- Quod genus fabrica significaturpath
- Iter designat in vase ad quod LXD conscendet hanc machinamsource
β Specificare fontem, viam ad indicem militiae quam cum vase communicare vis. Secundum iter specificare optiones tuas
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks
Nam catalogus /home/dv/projects/ipython-notebooks
licentia apponenda est continens user qui currently habet UID = SubUID + UID
, vide capitulum Omnium saluti. Continens Privilegia articulus Basic lineamenta LXD - Linux systemata continens.
Licentiam pone in hospitio, ubi dominus usor continens erit jupyter
ac variabilis $USER
erit specificare exercitum user ut coetus:
sudo chown 1001000:$USER /home/dv/projects/ipython-notebooks
Salve, Orbis Terrarum! ^
Si adhuc habes Sessionem consolatorium apertum in vase cum Juppiter lab, deinde sileo eam novam clavem --notebook-dir
ab occasu in valorem /mnt/hostfs
sicut semita ad radicem Laptopi in continente ad fabricam quam in priori passu creavimus;
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Deinde ad paginam http://10.0.5.5:8888 et crea primum laptop strepitando puga paginae ut in tabula infra ostendetur:
Deinde, in agro paginae, codicem Pythonis qui classicum ostentabit Hello World!
. Cum perfeceris ingressus, torcular CTRL+ENTER
seu "ludere" bullam in summo instrumentorum instrumentorum communicatione habere, hoc facere JupyterLab;
Hoc loco omnia fere ad usum parata sunt, sed ignarus erit si modulos Pythonis additos (applicationes plenae plenae) quae signanter capacitates Pythonis in Juppiter labergo :) transeamus.
PS interesting res est ut vetus implementation Iuppiter sub codice nomine Pentium Jupyter non recessit et est in parallelis Juppiter lab. Ad antiquam versionem vertas, nexum addito suffixo in inscriptione sequere/tree
ac transitus ad novam versionem profertur cum suffixo /lab
, sed non specificari:
- Iuppiter codicillus - http://10.0.5.5:8888/tree
- Iuppiter Lab - http://10.0.5.5:8888/lab
Dilatandi facultates Pythonis ^
In hac sectione, tam potentes linguae Pythonis modulos instituemus ut numpy, pandas, matplotlib', IPyWidgets eventus quorum integrantur in laptop Juppiter lab.
Ante installing modulorum Python enumerantur per sarcina procurator pip
praemittenda est ratio clientium in Alpina Linux;
g++
- Opus ad modulos componendos, cum aliqui ex eis in lingua perficiantur C ++ et coniungere ad Pythonem in runtime ut modulorum binariifreetype-dev
- Pythonis moduli dependentia matplotlib'
clientelas installare:
lxc exec jupyterlab -- apk add g++ freetype-dev
Una quaestio est: in statu hodiernae distributionis Linux Alpinae, novam versionem NumPy componi non poterit, compilatio erroris apparebit me expedire non posse;
ERROR: Rotas aedificare non potuit pro numpy quo PEP 517 utuntur et directe institui non possunt
Huius moduli ergo instituemus ut sarcina systematica quae versionem iam exaratam distribuit, sed paulo antiquiorem quam quae in situ nunc in promptu est:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev
Deinde, modulorum Python inaugurare per sarcinam procurator pip
. Quaeso patientes estote sicut moduli aliquot componendi et pauca minuta sumite. In machina mea, compilatio ~15 minuta tulit:
lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlib
Repurgari institutionem caches:
lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*
Testis moduli in JupyterLab ^
Si res currit Juppiter lab, sileo eam ut moduli novi inaugurati reducuntur. Hoc facere, in sessione console strepita CTRL+C
ubi habes quod currit et intrabit y
sistere petitionem et rursus " Juppiter lab premendo sagittam in tincidunt ne iterum iterumque intret Enter
ut satus est;
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Perge ad paginam http://10.0.5.5:8888/lab vel paginam in navigatro tuo refice, ac deinde sequentem codicem in cellula nova comedas;
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot
Provenire debes ut infra in pictura, ubi IPyWidgets generat elementum UI in pagina quae interactively cum source codice, et etiam matplotlib' ostendit ex codice in forma picturae quasi functionis graph;
Multa exempla IPyWidgets potes invenire in tutorials hic
Quid plura? ^
Bene, si manseris, et ad finem articulum perveneris. Consulto scriptum non notavi in ββfine articuli qui inaugurat Juppiter lab in "deprimendo" ad operarios adhortandos :) Sed hoc ipsum facere potes, quoniam iam scis quomodo, in unum Bash scriptum iussionibus collectis :)
Vos can quoque:
- Nomen retis pone continens loco IP oratio scribendo in simplici
/etc/hosts
et typus inscriptione in pasco http://jupyter.local:8888 - Circum ludere cum limite subsidii continentis, hoc enim in capitulo legitur basic facultatem LXD vel plus informationes in LXD elit situs.
- Muta thema:
Et quanto plus potestis! Id omne. Opto tibi successum!
UPDATE: 15.04.2020/18/30 XNUMX:XNUMX - Errores correcti in capite "Salve, Mundus!"
UPDATE: 16.04.2020/10/00 XNUMX:XNUMX - Correctus et additus textus in descriptione extensionis procurator activation Juppiter lab
UPDATE: 16.04.2020/10/40 XNUMX:XNUMX β Errores correcti qui in textu inveniuntur ac leviter mutati sunt in melius caput "Instruendo programmata fundamentalia et systema instituens"
Source: www.habr.com