Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Trolley: A simple package tool for unRAID

Featured Replies

Description

 

Trolley is a very simple package tool for Slackware, designed for unRAID. It uses the packages API created for Boxcar and allows you to easily search, install, and remove packages.

 

ibwmJp2ZNRCDt7.png

 

Install

 

Installation and usage instructions on Github: https://github.com/nicinabox/trolley

 

Releases

 

https://github.com/nicinabox/trolley/releases

  • Replies 130
  • Views 32.4k
  • Created
  • Last Reply

Sweet! Does this just install SlackWare 14.0/13.3713.1 unRAID optimised packages? Have you looked at piotrasds work on his packages?

 

Is there any way to force it to install 13.1 packages?

 

Are you going to add things like transmission etc?

  • Author

These are the official Slackware packages, not unRAID plugins, or plugins by the same name. Transmission, plex, etc would be plugins. I'm also working on an Addon system for Boxcar that specifically addresses distributing these. Many plugins require packages as a dependency to function properly.

 

The last version number in the list is the Slackware 13.1 package, so you can do:

 

trolley install python 2.6.4

 

I've not seen piotrasds work, could you link me?

 

Edit: Found piotrasd's packages. Not really clear on them though. Some seem to be official slackware packages, others are not. Not sure if they are modified or what's the deal. It's probably a Bad Idea to modify the official libs. This can cause all kinds of compatibility issues down the road. Better to use the officially supported packages (and you don't have to stick to 13.1, many newer ones have better compatibility).

@nicinabox

 

are not modifyed ;) just updated to new version and compiled under slackware 13.1 for 100% compatybility ;)

 

This can cause all kinds of compatibility issues down the road. Better to use the officially supported packages (and you don't have to stick to 13.1, many newer ones have better compatibility)

 

this is not true ;) because slackware 13.37 use other glibc version so - some packages wich are deep depended of glibc could make some issue in system ;)

 

This packages manager is good solution for repo 13.1 but when somebody install some stuff 13.37 must be carefull - some could good working like git, unrar but some could crash system

 

I remeber when guys create plugin "XBMC Standalone Library Updater" they use many packages from 13.37 after that even system service like "cron" get segfaults, after when i compile for them most important depends plugin started working proper with no any issue in system.

  • Author

Thanks for the reply piotrasd!

 

are not modifyed ;) just updated to new version and compiled under slackware 13.1 for 100% compatybility ;)

 

Doesn't that mean that it's modified? It's not the original package. Where does the "new version" come from?

 

tbecause slackware 13.37 use other glibc version so - some packages wich are deep depended of glibc could make some issue in system ;)

 

This is true. glibc in particular needs to be version-specific. Other packages have varying degrees of dependencies on the Slackware version. For instance, you can use Ruby 1.9.3p448 from Slackware 14.0 without an issue.

 

This packages manager is good solution for repo 13.1 but when somebody install some stuff 13.37 must be carefull - some could good working like git, unrar but some could crash system

 

It's too bad Slackware doesn't do dependency management. We could sidestep a lot of issues like this :(

 

I remeber when guys create plugin "XBMC Standalone Library Updater" they use many packages from 13.37 after that even system service like "cron" get segfaults, after when i compile for them most important depends plugin started working proper with no any issue in system.

 

I remember seeing this with Boxcar. Dropping the glibc version back to 13.1 fixed the cron segfaults. It takes a lot of testing to find the newest packages you can use.

Im prefer compilation myself - new fresh under slackware 13.1 (if somebody something will be need, just let me know)

(i have very good prepared environment on slack 13.1 for compiling even with some kernel 3.9.6 sources and header like unraid)

 

about modifity of packages im use standard orginal script to builds packages just change version ;)

So essentially @nicinabox we could ideally use Trolley to facilitate plugin dependency installations, like for example Sickbeard, instead of manually downloading and installing packages on plg installation i could just tell it to run "trolley install python 2.6.4". Am i correct in this assumption?

 

Furthermore, as @piotrasd said, compiling new versions under 13.1 is probably the best way forward to avoid any issues with other Slack versions.

 

Hey who knows, if it works well enough limetech might consider including it in unRAID as a subset to installpkg/plg!

when unraid migrate to Slackware 14.0 - topic will be easy :) now we must just waiting

  • Author

So essentially @nicinabox we could ideally use Trolley to facilitate plugin dependency installations, like for example Sickbeard, instead of manually downloading and installing packages on plg installation i could just tell it to run "trolley install python 2.6.4". Am i correct in this assumption?

 

Exactly right.

 

Furthermore, as @piotrasd said, compiling new versions under 13.1 is probably the best way forward to avoid any issues with other Slack versions.

 

I still feel like I'm missing something about this. Aside from a version difference, I don't get how this is different from just using the newer package, sans compilation. Many (but not all) packages from >13.1 are in fact compatible. What benefits does the compilation bring and how is this practice sustainable?

  • Author

So essentially @nicinabox we could ideally use Trolley to facilitate plugin dependency installations, like for example Sickbeard, instead of manually downloading and installing packages on plg installation i could just tell it to run "trolley install python 2.6.4". Am i correct in this assumption?

 

Was thinking more about this as I was working on it.

 

I think it would be really great if trolley could read from a packages.json file in the current directory. This file would specify the packages and versions required for the plugin. Trolley could look for it automatically and parse it out if it exists. Then you don't end up with a dozen lines of `trolley install n v` in your code.

 

It does bring up some questions:

 

Where do the packages get stored?

How do version comparisons work? (a la rubygems, node)

Do we allow version comparison operators, or only exact versions?

What if the user already has a newer version installed?

What if the user has an older version installed?

 

Something to consider...

 

Edit:

 

packages.json is now supported.

Packages are stored in /boot/extra automatically.

There are no version comparisons. Devs must specify exact package version at this time.

If user has package by the same name installed, another version (newer or older) will not be downloaded.

noticed that python2.6 made trouble installing trolley. installed python2.7.3 and i could get trolley to work.

 

after that installed ca_certificates and perl and brought boxcar to life. thanks for the simplification of unraid. especially the mobile/ responsive design!

  • Author

noticed that python2.6 made trouble installing trolley. installed python2.7.3 and i could get trolley to work.

 

after that installed ca_certificates and perl and brought boxcar to life. thanks for the simplification of unraid. especially the mobile/ responsive design!

 

0.1.2 required python 2.7, but 0.1.3 (which I just released as you replied to this message) works with 2.6 :)

  • 4 weeks later...

Hello, I'm getting what I think are python 2.6 related errors when trying to install anything:

root@Tower:/boot/extra# trolley remove perl
Traceback (most recent call last):
  File "/usr/local/bin/trolley", line 257, in <module>
    if __name__ == '__main__': main()
  File "/usr/local/bin/trolley", line 255, in main
    args.func(args)
  File "/usr/local/bin/trolley", line 155, in remove
    _removepkg(package[0])
  File "/usr/local/bin/trolley", line 98, in _removepkg
    if _command_exists('removepkg'):
  File "/usr/local/bin/trolley", line 35, in _command_exists
    stdout=subprocess.PIPE)
  File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

 

Any help would be appreciated!

  • Author

Hello, I'm getting what I think are python 2.6 related errors when trying to install anything:

root@Tower:/boot/extra# trolley remove perl
Traceback (most recent call last):
  File "/usr/local/bin/trolley", line 257, in <module>
    if __name__ == '__main__': main()
  File "/usr/local/bin/trolley", line 255, in main
    args.func(args)
  File "/usr/local/bin/trolley", line 155, in remove
    _removepkg(package[0])
  File "/usr/local/bin/trolley", line 98, in _removepkg
    if _command_exists('removepkg'):
  File "/usr/local/bin/trolley", line 35, in _command_exists
    stdout=subprocess.PIPE)
  File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

 

Any help would be appreciated!

 

Thanks for letting me know about this! Would you mind posting this on the Github Issues page so I can track it? I'll be sure to get it taken care of.

 

https://github.com/nicinabox/trolley/issues

Having the same issue. Is there any fix yet?

  • Author

Fixed! Grab 0.1.4. I've updated the installer to a 1-line installer. Check it on the github page.

Fixed! Grab 0.1.4. I've updated the installer to a 1-line installer. Check it on the github page.

 

Thank you, this fixed my issue!

 

Follow-up question now that I have trolley working. Is there a way to manually feed trolley urls for slackware packages it can't seem to find? For example, I'm trying to install the libs from these instructions: http://lime-technology.com/forum/index.php?topic=887.msg5941#msg5941 and trolley doesn't find most of the libs. I know I can install them the manual way, but I like the idea of trolley knowing about them and keeping them all together.

 

Thanks again!

  • Author

Fixed! Grab 0.1.4. I've updated the installer to a 1-line installer. Check it on the github page.

 

Thank you, this fixed my issue!

 

Follow-up question now that I have trolley working. Is there a way to manually feed trolley urls for slackware packages it can't seem to find? For example, I'm trying to install the libs from these instructions: http://lime-technology.com/forum/index.php?topic=887.msg5941#msg5941 and trolley doesn't find most of the libs. I know I can install them the manual way, but I like the idea of trolley knowing about them and keeping them all together.

 

Thanks again!

 

Hmm, all those packages in that message are official, trolley knows about them. Which ones are you having trouble with?

Fixed! Grab 0.1.4. I've updated the installer to a 1-line installer. Check it on the github page.

 

Thank you, this fixed my issue!

 

Follow-up question now that I have trolley working. Is there a way to manually feed trolley urls for slackware packages it can't seem to find? For example, I'm trying to install the libs from these instructions: http://lime-technology.com/forum/index.php?topic=887.msg5941#msg5941 and trolley doesn't find most of the libs. I know I can install them the manual way, but I like the idea of trolley knowing about them and keeping them all together.

 

Thanks again!

 

Hmm, all those packages in that message are official, trolley knows about them. Which ones are you having trouble with?

 

After trying again, it looks like libxml2 isn't being found in the search, but all the others are.

  • Author

Fixed! Grab 0.1.4. I've updated the installer to a 1-line installer. Check it on the github page.

 

Thank you, this fixed my issue!

 

Follow-up question now that I have trolley working. Is there a way to manually feed trolley urls for slackware packages it can't seem to find? For example, I'm trying to install the libs from these instructions: http://lime-technology.com/forum/index.php?topic=887.msg5941#msg5941 and trolley doesn't find most of the libs. I know I can install them the manual way, but I like the idea of trolley knowing about them and keeping them all together.

 

Thanks again!

 

Hmm, all those packages in that message are official, trolley knows about them. Which ones are you having trouble with?

 

After trying again, it looks like libxml2 isn't being found in the search, but all the others are.

 

What the what. You're right, it's definitely missing. libxml2 should be in this list:

 

trolley search libx
Package Name (Slackware 14.0, 13.37, 13.1)
------------------------------------------
libxcb (1.8.1, 1.7, 1.6)
libxslt (1.1.26, 1.1.26, 1.1.26)
libxklavier (5.2.1, 5.1, 5.0)
libxkbfile (1.0.8, 1.0.7, 1.0.6)
libxkbui (1.0.2)

 

That means something went probably went awry in parsing the packages list. Will look into this tonight.

  • Author

Turns out the regex wasn't matching a handful of packages. Good catch. Fixing that and re-parsing tonight :)

  • Author

* Server updated with correct matches.

* Also was able to parse description

* trolley 0.1.5 released with support for package description (0.1.4 is still compatible with these API changes however)

 

Enjoy!

Oh no :P

 

root@Tower:/# trolley update
Cannot install trolley.txz:  file not found
Traceback (most recent call last):
  File "/usr/local/bin/trolley", line 271, in <module>
    if __name__ == '__main__': main()
  File "/usr/local/bin/trolley", line 269, in main
    args.func(args)
  File "/usr/local/bin/trolley", line 221, in update
    subprocess.call(args)
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

  • Author

I really need some tests.

 

This is probably the result of an outdated naming convention. I'll get this fixed, but you can use the installer to update in the mean time.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.