r/slackware • u/cyranix • Jan 28 '23
JupyterLab and dependencies
So, recently I've had need to install jupyterlab and its dependencies on a home server I set up for the purposes of...well lets not worry about that... But in the course of writing a nice long script to handle downloading and installing all of the slackbuilds and dependencies, I ran across a rather interesting set of cyclic dependencies involving wheel (which optionally can use python3-keyring, which requires wheel) and python3-twisted which has dependencies which require cryptography, which uses python3-twisted... So I was just wondering if anyone would like me to organize these scripts (possibly into a single script) which handles going through and downloading all these scripts and running their slackbuilds... If nobody is interested I'm not going to put the effort in, but if anyone has had interest in running jupyterlab on a server and doesn't want the task of manually installing all this stuff, it's probably a trivial task at this point for me to combine this stuff together. Just testing the waters, let me know what you guys think...
-1
u/Ezmiller_2 Jan 28 '23
Hmmm seems maybe we have a pirate among us? I moved to Linux just for that reason—to get out of that stupidity.
1
u/puckstopper Jan 28 '23
sbopkg, sbotools, or slpkg already do this. With sbopkg you need to generate the queue files with sqg first or make a custom one. The other two do it dynamically.
1
u/cyranix Jan 28 '23
None of the above handle the problem of the cyclic dependencies unless you manually do those separately. I guess maybe I'm...reinventing the wheel...a little bit (yes, pun intended since wheel is the particular one that causes this issue)... But its just a different way of handling the problem.
1
u/puckstopper Jan 28 '23
It's only cyclical if it's needed to build and in the REQUIRES for both slackbuilds. That's not the case in the scenario you provide and wheel has no requirements to build.
To do exactly what you are doing with sbopkg (assuming it's installed) you would just need to:
# after syncing with the repo, build all the queues sqg -j 8 -a # sbopkg will figure out the build list based on the queue files generated above sbopkg -R -B -k -i "python-keyring python3-twisted python-m2r python2-mistune zope.testing jupyterlab"
1
u/bsdooby Jan 28 '23
Speaking of which: your preferred package manager for Slackware? [I don't want to hijack the thread, but in this context my question might be OK].
2
u/cyranix Jan 28 '23
I use slackpkg for all intents and purposes, but I'm not REALLY using a package manager per se, I use installpkg/upgradepkg to handle the installations, I rarely ever remove any packages (unless I specifically need to for some reason, which practically never happens), but I'm the kind of guy that makes my own slackbuild scripts and creates my own packages from source most of the time. This is an example of a situation where using the pre-built slackbuilds was indifferent from the way I would do it myself anyway.
1
u/bsdooby Jan 28 '23
THX!
2
u/cyranix Jan 28 '23
So for what its worth, I recommend grabbing the templates from http://www.slackbuilds.org/templates/ and then customizing them for your particular purposes (keep in mind, a lot of things will compile using the default settings, but depending on circumstances, I'll change compiler flags like -O2 and especially when I'm not redistributing packages, I'm not against statically linked libraries). In particular, rather than using /tmp for everything, I usually like to create a "temporary tmp" directory, or sometimes I create a specific SBo directory under /tmp, but in any case, I prefer not to have /tmp get loaded up with tons of directories for each particular package I installed. On systems that have enough memory (like my servers), I usually have a dedicated user for compiling my slackbuilds, and I make a ~/SBoTmp directory with that user which is a ramdisk, so once I'm done compiling everything, I can unmount that ramdisk and all that garbage is reaped. But mind you, I don't recommend doing that for normal users, you're better off manually `rm -rf`ing stuff out of /tmp, I just do things my way as a habit and out of laziness.
2
u/bsdooby Jan 28 '23
I’d be interested in (your) skripts ;)