mjpg-streamer is clunky to manage, and once cscore is available, you’ll find that migrating to it from mjpg-streamer should be fairly straightforward and will offer a number of advantages (including integration with the default dashboards). But, this will get you going for now.
Traceback (most recent call last):
File "installer.py", line 1009, in <module>
retval = main()
File "installer.py", line 990, in main
retval = options.cmdobj(options)
File "installer.py", line 792, in download_opkg
package_list = opkg.resolve_pkg_deps(options.packages)
File "installer.py", line 185, in resolve_pkg_deps
for results in self._toposort(pkgs):
File "installer.py", line 217, in _toposort
raise ValueError('Cyclic dependencies exist among these items: {}'.format(', '.join(repr(x) for x in data.items())))
ValueError: Cyclic dependencies exist among these items: ('mjpg-streamer', {'libv4l'}), ('libv4l', {'media-ctl'}), ('media-ctl', {'libv4l'})
Heh, well that’s annoying. The installer does a topological sort to figure out what items it should download and what order it should install them in… having a cycle makes that a bit annoying. I’ll see if I can figure out a sane way to deal with this tonight.
does not. media-ctl depends on libv4l and libv4l depends on media-ctl.
C:\Users\Team1288\Desktop\robotpy-2017.0.6>py installer.py install-opkg mjpg-streamer
Copying over the opkg cache...
Looking up hostname roborio-1288-frc.local ...
Connecting to robot via SSH at roborio-1288-frc.local
Using username "admin".
NI Linux Real-Time (run mode)
Log in with your NI-Auth credentials.
Remote working directory is /home/admin
local:C:\Users\Team1288\Desktop\robotpy-2017.0.6\opkg_cache\install_opkg.sh => remote:/home/admin/opkg_cache/install_opkg.sh
libjpeg8 - 8d-r1.20
libjpeg8 already installed, continuing...
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for media-ctl:
* libv4l (>= 1.6.2) *
* opkg_install_cmd: Cannot install package media-ctl.
Installing media-ctl (1.6.2-r0.3) on root.
Command ''C:\\Users\\Team1288\\Desktop\\robotpy-2017.0.6\\win32\\plink.exe', '-pw', '', '[email protected]', 'bash opkg_cache/install_opkg.sh']' returned non-zero exit status 255.
Odd, it worked for me, but the problem is that the installer script installs each package separately… so it can’t find the one that has the dependency cycle.
I would recommend just ssh’ing into the robot and installing the packages present in /home/admin/opkg_cache manually. Just run ‘opkg install FOO.ipk’… you will probably have to specify libv4l and media-ctl at the same time.
We would love to get this installed, but the active install option seems to require an internet connection - how do we get our roboRIO connected to the internet? Do we just have to plug it into a router or something?
robotpy-installer 2017.1.3 can correctly handle installing packages with cycles now (I even tested it with the roborio disconnected from the internet this time!).
bvisness: The robotpy installer can do offline installations, see the documentation for details.
Thanks, we’ll give that a try. Last time we tried the offline installation, the download step succeeded but the install step failed. (Same error as razar51.)