Trolley: A simple package tool for unRAID


Recommended Posts

  • Replies 130
  • Created
  • Last Reply

Top Posters In This Topic

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).

Link to comment

@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.

Link to comment

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.

Link to comment

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 ;)

Link to comment

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!

Link to comment

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?

Link to comment

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.

Link to comment

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 :)

Link to comment
  • 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!

Link to comment

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

Link to comment

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!

Link to comment

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?

Link to comment

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.

Link to comment

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.

Link to comment

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

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.