I have Aurora DX installed. It comes with ffmpeg. I am trying to compile and install motionplus as I could not find it to install. It requires ffmpeg-devel, which is available on other fedora systems. I could not find it to install on Aurora.
Thanks for the reply. In my haste I forgot to mention the things that I have tried.
rpm-ostree search does not have any devel packages for ffmpeg. Installing any of the -free ones messes up installed packages, so I am stumped.
For reference here is the mess I am referring to.
rpm-ostree install ffmpeg-free
error: "ffmpeg-free" is already provided by: ffmpeg-1:7.0.2-4.fc41.x86_64. Use --allow-inactive to explicitly require it.
~
❯ rpm-ostree install ffmpeg-free-devel
Checking out tree 7bfbc7c... done
Enabled rpm-md repositories: updates fedora copr:copr.fedorainfracloud.org:hikariknight:looking-glass-kvmfr updates-archive
Importing rpm-md... done
rpm-md repo 'updates' (cached); generated: 2024-11-22T03:15:44Z solvables: 10272
rpm-md repo 'fedora' (cached); generated: 2024-10-25T08:41:19Z solvables: 76624
rpm-md repo 'copr:copr.fedorainfracloud.org:hikariknight:looking-glass-kvmfr' (cached); generated: 2024-10-25T08:11:34Z solvables: 5
rpm-md repo 'updates-archive' (cached); generated: 2024-11-22T04:06:13Z solvables: 9991
Resolving dependencies... done
error: Could not depsolve transaction; 1 problem detected:
Problem: conflicting requests
- package ffmpeg-free-devel-7.0.2-7.fc41.i686 from fedora requires libavcodec-free-devel = 7.0.2-7.fc41, but none of the providers can be installed
- package ffmpeg-free-devel-7.0.2-7.fc41.x86_64 from fedora requires libavcodec-free-devel = 7.0.2-7.fc41, but none of the providers can be installed
- package libavcodec-free-devel-7.0.2-7.fc41.i686 from fedora requires libavcodec-free(x86-32) = 7.0.2-7.fc41, but none of the providers can be installed
- package libavcodec-free-devel-7.0.2-7.fc41.i686 from fedora requires libavcodec.so.61, but none of the providers can be installed
- package libavcodec-free-devel-7.0.2-7.fc41.x86_64 from fedora requires libavcodec-free(x86-64) = 7.0.2-7.fc41, but none of the providers can be installed
- installed package libavcodec-1:7.0.2-4.fc41.x86_64 obsoletes libavcodec-free < 1:7.0.2-4.fc41 provided by libavcodec-free-7.0.2-7.fc41.i686 from fedora
- installed package libavcodec-1:7.0.2-4.fc41.x86_64 obsoletes libavcodec-free < 1:7.0.2-4.fc41 provided by libavcodec-free-7.0.2-7.fc41.x86_64 from fedora
If I’m correct ffmpeg is replaced by the one from negativo17 repo. Which is disabled by default on the system. To install ffmpeg-devel you need to enable the repo first.
You can find the repo file in this path: /etc/yum.repos.d/negativo17-fedora-multimedia.repo there you change the enabled=0 to enabled=1 on the [fedora-multimedia] section.
Then you will be able to install ffmpeg-devel without any problems. Hope this helps.
Ya, I thought a distrobox would be better too, but the software only has make install. If it made a package, I could have just installed that. Is there another way to use the distrobox that i am unaware of? I was just going to use it to compile the binaries and then install those.
You said better than layering all that… Is there some complications or performance degradation with multiple “installs” with rpm-ostree? I mean I thought after the reboot it squashed all the changes down to only layer the base image and the changes all together. Is there somewhere I can read up on how this layering works and image based distros in general?
Also, thanks. That allowed me to install the required packages.
The real benefit would be that you don’t have to worry about anything. The moment you go layer things, that would mean you are responsible for the trouble it can create. Like enabling repos and errors that will come out of that, not being able to update because of that.
Performance wise there is not really an impact, only that an update takes a little longer because it needs to apply the local layer on top of the image.
I’m not sure if you are talking about Releases · Motion-Project/motion · GitHub but they do have debian/ubuntu packages. So you could create a debian/ubuntu container via boxbuddy, install the deb and voila you now have access to your tool in the container. No need to layer any package on the host. Export the motion cli tool from inside your container like so
distrobox-export --bin /usr/bin/motion
/usr/bin/motion from ubuntu-toolbox exported successfully in /var/home/user/.local/bin.
OK!
Now you have motion available on your host terminal!
If its a totally different program you have been talking about, proces is the same, compile, install in your distrobox, export it to the host. No need to layer anything in this way. distrobox-export