Daiajo Tibdixious posted on Mon, 18 Apr 2016 22:40:08 +1000 as excerpted: > A package I wish to download has these instructions: > > wget -O - > http://content.runescape.com/a=946/downloads/ubuntu/runescape.gpg.key > | apt-key add -
That, and each of the following, are effectively single command-lines, one each, only wrapped here, as they would be on a limited-width terminal, for purposes of display. That line simply adds the linked gpg key to apt's keys file, presumably so it can validate the later package as a validly signed package. Of course the key fetch is using unsecured http, not https, so it's not as if the key really provides much actual security, since anyone with access to the connection could substitute a fake key, but that's more or less beside the point. The point would be that apt wants packages signed by keys it trusts, and that adds said key to the appropriate trusted key store, regardless of whether the key has actually been verified as trustworthy. > mkdir -p /etc/apt/sources.list.d Makes (if it doesn't already exist) that local dir, used in the next command. > echo "deb http://content.runescape.com/a=946/downloads/ubuntu trusty > non-free" > /etc/apt/sources.list.d/runescape.list Just to make it explicit, that ">" between non-free and /etc/apt/... is output redirection in the original command, not just a misplaced quote character. This creates a file "runescape.list" in the directory created by the mkdir above, with one line of content: deb http://content.runescape.com/a=946/downloads/ubuntu trusty non-free Presumably, the "deb" on that line tells apt what format the repo is in, the link tells apt where it's at and the protocol to use, "trusty" tells it what version of ubuntu it's for, and non-free tells it the (Debian/ Ubuntu/apt) license status. > apt-get update This will be their equivalent of portage's emerge --sync command. It'll sync all configured repos, including the one just configured above, with that /etc/apt/sources.list.d/runescape.list file and its content. > apt-get install -y runescape-launcher With the local apt set of repos synced by the above, this installs the actual package, runescape-launcher. > I have downloaded the apt sources and have been reading it. However its > fairly large & complex which will take me a while to figure out. No kidding. You'd not expect someone to download and read the portage sources to figure out how to manually install a package from an ebuild, would you? Sure it should work... provided you're technically literate and patient enough, but it's definitely the long way around. All you need is a basic general understanding of what package managers /do/, a look at the instructions provided, and if necessary, a look at the package manager's manpage, etc, tho that's not really necessary here. FWIW I've never run a Debian-based distro, tho for about three years before I switched to gentoo in 2004, I ran Mandrake, an RPM-based distro. My rpm foo is thus well over a decade out of date and is rpm, not deb, but it does give me experience with a second package manager, one from a binary-based distro, to compare against portage and gentoo as a from-source package manager and distro, and that, coupled with a general familiarity with how Unix-style commandlines and bash as a shell work, is enough to decipher the above. > The gpg key was fairly easy, but I don't see how apt-get uses it yet. As with most such things, it's simply a corruption detection and authenticity verification thing. It's likely possible to turn off such checks in apt-get's options, but doing so for other than perhaps one's own local repo/overlay would be highly discouraged, and the above procedure, while not really secure because the key was fetched using insecure means, does at least still do integrity verification, which is what verification of unauthenticated signatures effectively amounts to. But presumably you can simply gpgverify the package once you download it manually, skipping figuring out the precise gpg-verification code in apt- get. Or even skip the verification entirely... > I also don't see how apt gets the list of files to download, since there > is only a directory given. > I can't display http://content.runescape.com/a=946/downloads/ubuntu in a > browser. Presumably, apt-get update simply fetches some standardized repository index or database file from that location, which then lists the packages, etc, in a way that apt-get can read them and fetch specific packages when necessary. Now *here* you might need to go diving into apt-get's workings a bit deeper, but presumably there's a manpage and/or other repository layout documentation available, so you don't need to read the actual sources unless you want to. Meanwhile, we already know the package name, runescape-launcher, from the above instructions. And the package will be a deb file. What we don't know yet is the version information part of the filename, and if there's any subdirs, like gentoo's categories, between the root of the repo and the package file we're actually trying to download. To use a gentoo example, suppose the package we were looking for was gcc. We know the package name, gcc, and the likely extension, .ebuild, but we don't know that it's in a subdir named sys-devel, yet, instead of possibly just a g (first letter of gcc) subdir, or perhaps a build or devel subdir/category instead of sys-devel, or maybe sorted by some other means like first letter of say a 256-bit hash value of the package, expressed in hexadecimal form.[1] And we don't know the version part, say -5.3.0 of the gcc-5.3.0 that I have installed here, either. You may have to either take an educated guess at the missing parts (maybe you know the version info or can find it in google), or get them from the repo database after reading up on its documentation or the like. But before that, it's also possible that you can find a reference to the specific path, or find the *.deb file elsewhere. You can also very likely take valuable hints from the older overlay ebuild that Mark linked, despite it being the old java-based launcher. Looks like the homepage is a github repo, with the latest 4.3.5 releases tagged on Sep 21, 2015, with the latest commit on master on Feb 2, changing the downloads to https from http, so it seems active still. Meanwhile, a dumb search on "runescape" at github reveals nearly 700 repos. Of course many look to be runescape bots or the like, and many of them will no doubt be for other platforms, but a smarter search could probably narrow it down. Anyway, 50 of those projects have been updated in the last 30 days, a reasonable activity metric. A perhaps smarter search on runescape launcher lists 70-some projects, tho most appear to use the old launcher or at least be written in java. Unfortunately, no github hits on runescape nxt yet. =:^( > Just wondering if anyone has anything helpful to shorten the process of > figuring it out. > I'm planning to create a cut down apt-get which just fetches the files, > but don't have much time most days. Well, this doesn't do all the work, but it should get you well beyond the figuring out what apt-get does with the signature file stage, at least. =:^) --- [1] Back in the day, myspace was using a scheme similar to this to index and store the myspace user images, including so-called "private" images, and someone figured out the scheme and brute-forced the entire namespace, resulting in an archive some 17 gigs or so in size of all those pictures, that was torrented out for anyone interested. Of course this was in an era where 100 GiB hard drives were still considered huge and connections were normally sub-megabit, so this was no small undertaking, even just doing the torrent, let alone the work to actually mine the entire namespace in question. I still have a copy around somewhere, and have actually looked thru IIRC about 1/8 of 1/16 of it (all the 000* thru 01f* images). -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman