View Issue Details
|[All Projects] Website
|Fixed in Version
|0000061: Fedora install instructions on website broken due to character replacement
|The Fedora install instructions at https://www.cinelerra-gg.org/fedora-package/ will currently not function if cut-and-pasted into a terminal window, because the first command listed to be entered is:
"dnf install cinelerra –nogpgcheck –repofrompath cingg,https://cinelerra-gg.org/download/pkgs/fedoraXX/"
(with the XX to be replaced by the Fedora release, such as "29" for the most current)
The issue is with the characters preceding "nogpgcheck" and "repofrompath", which are SUPPOSED to be two hyphens ("--"), but it seems your CMS has helpfully replaced with a single en-dash character ("–").
|Steps To Reproduce
|1. Copy "dnf install cinelerra –nogpgcheck –repofrompath cingg,https://cinelerra-gg.org/download/pkgs/fedoraXX/" from the website and paste into a terminal
2. Edit the end of the string to "fedora29"
3. Prepend "sudo" (note: I would suggest adding this to the listed command line, as has become common practice in install instructions.)
3. Hit Enter
Expected result: cinelerra installs
$ sudo dnf install cinelerra –nogpgcheck –repofrompath cingg,https://cinelerra-gg.org/download/pkgs/fedora29/
Last metadata expiration check: 1:45:54 ago on Fri 14 Dec 2018 10:49:33 AM EST.
No match for argument: –nogpgcheck
No match for argument: –repofrompath
No match for argument: cingg,https://cinelerra-gg.org/download/pkgs/fedora29/
Error: Unable to find a match
|While changing the command on the website to:
sudo dnf install cinelerra --nogpgcheck --repofrompath cingg,https://cinelerra-gg.org/download/pkgs/fedoraXX/
will suffice to fix the problem of cinelerra not being installable by following the instructions, I have a suggestion for a slightly different method that might be simpler for all concerned.
The problem with --repofrompath is that it's a one-time addition: The repo is not actually added to the set of repositories stored in /etc/yum.repos.d/, and will not be accessible during future dnf calls unless "--repofrompath cingg,https://cinelerra-gg.org/download/pkgs/fedoraXX/" is again specified on the command line. This leaves users who install using this method no way to get future updates automatically as they're released, which is one of the purposes of dnf to begin with.
Common practice for third-party repositories (even single-application ones) is to distribute an RPM package $REPONAME-release.rpm containing repository configuration files. cinelerra-gg-release.rpm might look something like this:
The digital signature used to sign packages in the repo is placed in the /etc/pki file.
The /etc/yum.repos.d/ file contains repository configuration of the form:
Distributing Fedora RPMs this way gives several advantages:
1. The packages distributed by the repository CAN be signed (which is good for security)
2. "--nogpgcheck" on the command line is made unnecessary, because the key will be automatically extracted from the package during install and dnf will offer to import it
3. Because the baseurl in the .conf file contains $releasever, it will automatically substitute the current release number for whatever system it's installed on. This means that the /fedoraXX/ on the suggested command line can be done away with.
If you were to create cingg-release.rpm containing the above, and make it downloadable at https://cinelerra-gg.org/download/pkgs/cingg-release.rpm, that same command line could be used for ALL versions of Fedora, past present and future. They would automatically point to the correct https://cinelerra-gg.org/download/pkgs/fedora$releasever/ URL to download the version of cinelerra matching their Fedora release.
4. The system will regularly scan the repository for new releases of cinelerra, and offer them as updates to the user.
Even if you choose not to sign your cinelerra-gg RPM releases, I would still suggest making an RPM available with the repo configuration (without the /etc/pki/ file or the gpgkey= line, and with gpgcheck=0 set in the .conf) and making it available on the website. The install instructions could be changed to simply:
sudo dnf install https://cinelerra-gg.org/download/pkgs/cingg-release.rpm
sudo dnf install cinelerra
(Or add --nogpgcheck to the FIRST command, only, if not including signatures.)
This page contains a pretty good overview of package signing from the software-distribution perspective. It's old enough that it discusses the yum command instead of its replacement dnf, but the signing information is all based on the underlying rpm tools and is still current.
|No tags attached.
BTW... it's been _so_long_ since Fedora switched from yum to dnf that I've sort of forgotten everything I ever knew about it, but my MEMORY is that the $REPONAME-release.rpm method was broadly applicable to yum as well.
So this technique should probably work (or at least be adaptable into one that does) for CentOS, and avoid users having to manually create /etc/yum.repos.d/cin_gg by hand. The only thing I can't really remember is whether "yum install https://some.site/reponame-release.rpm" would work directly, or if the .rpm needed to be downloaded first and then installed with "yum localinstall".
|I will be able to change this into the alternative method. That way avoids the -- problem altogether. Thanks.