How getting software from GitHub works?

867 views

I normally consider myself pretty handy with computers, but I’m no programmer. I know GitHub is primarily for programmers, but I often find GitHub pages when looking for specific programs, and always end up walking away frustrated because anything I try to download just gives me a whole bunch of unfamiliar file-names and what I’m guessing is some uncompiled data? I really don’t know, and it just confuses me what I’m supposed to do in order to actually execute files I find on GitHub? I’ve heard something about Python and something about Cmd (Is that Windows Command Line Prompt?) and whenever I look up tutorials or guides for GitHub I find primer videos for programmers, not user friendly newbie guides for people who just want to download a piece of software.

In: Technology

12 Answers

Anonymous 0 Comments

Git is a version control system used by programmers, basically, you don’t want to just save your source files every time your done programming something, and it can be quite valuable to know how things looked like in the past, in addition it makes it easier to work with others, so you don’t just end up overriding each others source files, Git goes a bit further than this, for example you usually “bundle” your changes in “commits”, so you don’t just change one file but that’s a different topic.

GitHub is a website used to provide Git repositories, if a project is public, you can download the programs sourcecode and immediately have it in your version control system (Git), so working with others is easier.

This also means that most of the time, if you land on GitHub that means you’re dealing with uncompiled code, so to run it you need some sort of compiler, and usually an IDE is recommended and on some projects you have to first set up a few things to be able to compile something.

Finally, some developers are nice enough to provide a link to the final executable where you can just download it and install it on GitHub, check their descriptions or ReadMes, usually there’s some info there.

Anonymous 0 Comments

The files on Github are generally meant for other programmers, as you note. If you want to download something and have it Just Work™, the file has to be specifically intended and packaged for download. Consider [this repo](https://github.com/remyroy/CDDA-Game-Launcher/releases), for a GUI launcher for a game.

It’s packaged for end-user download, by just clicking the EXE or ZIP file.

If you try to download a repo that’s meant for another purpose, you’ll only get the source code in the repo. You’re meant to “fork” the repo (create a copy for your use) and then download it into a workspace.

Anonymous 0 Comments

Github has toy parts. So that other people can build better toys by using their own effort & creativity along with ready-made toy parts.

If you don’t like a toy part, you can make modifications by requesting the original builder. Or you can clone it in your workshop to work on it.

Github also uses git. This tracks the versions by which toy parts are made (from raw materials to toy parts). If a good part is messed up by adding a modification, you can easily revert back to the previous version of the toy part.

Also, github has options for hosting read-me manuals for toy parts, q/a and links to demos of toy parts being used.

In other words, GitHub is the embodiment of the phrase, “Standing on the Shoulder of Giants” as generous open-source developers provide a shoulder to stand on and other developers try to do the standing by building upon or improving that shoulder!

Here, toy/shoulder = software

Anonymous 0 Comments

The simple answer is that as an end user, you’re not really supposed to. Github is something specifically targeted towards developers. For end users the project should have some sort of convenient website where you can just download an installer.

While github does allow to release installers, most projects that do this kind of thing are targeted towards developers to start with. Anything intending to be user friendly should be using something other than github to interact with end users.

> I really don’t know, and it just confuses me what I’m supposed to do in order to actually execute files I find on GitHub?

That depends entirely on what you found. It goes all the way from very straightforward to spending a week setting up a very specific environment consisting of many parts.

Anonymous 0 Comments

Github does have the option for the developer to upload finished Releases. Depending on how the developer manages things this may include ready compiled software or even packages ready to be installed. But in a lot of cases there is just a a compressed archive of the source code at the time. You can also get this by following the Download links that github gives you which will allow you to download the source code as it appears in the repository. Normally developer will not download directly but rather clone the repository which gives them a different package that includes a lot of the history of the project. Because projects are compiled and run differently it is common to include a text file with instructions on how to compile, install and run the software from source. Again this helps developers as they may want to make modifications to the source code before they run it. But in general github is not a tool for end users who should be looking in package repositories or elsewhere for easy to install versions of the software. And this is up to the developer and package maintainers to do. The only tool that github provides to help developers with this is to host files under the releases tab.

Anonymous 0 Comments

In terms of downloading it, you can clone it using git. Git is a source code manager that allows multiple people to collaborate without clashing. You can install a git client which is a program used to load git (i use gitkraken), and use that to clone the repo. You can also download a zip file of the repo but that won’t receive updates if someone changes the repo.

In terms of running the program, it depends on what the program is. If its an android app, you’ll need to load it into the IDE and compile it. Python can be ran straight away if you have all the dependencies, and c style projects need the compiler toolchain.

If you have a specific repo in mind we can help you further 🙂

Anonymous 0 Comments

> and what I’m guessing is some uncompiled data?

Github is a website that hosts source code. You will generally need a compiler or interpreter to be able to run that code. There are lots of different programming languages and build systems in use so there’s no one set of instructions that will work – you need to read the documentation for the project, which usually explains the steps needed to get it running.

> I’ve heard something about Python

Python is a programming language. To run a program that’s written in Python you need a Python interpreter, which may come preinstalled depending on what OS you have.

> something about Cmd (Is that Windows Command Line Prompt?)

Yes.

> whenever I look up tutorials or guides for GitHub I find primer videos for programmers

If you look up a “guide for Github” you’re probably going to find instructions on how to use Github’s UI and/or the Git version control system that it’s based on. How to compile and run a program doesn’t have to do with Github itself – Github is just a hosting service for code.

Anonymous 0 Comments

Have you checked r/github?

Anonymous 0 Comments

Github is repository of the source code(not-compiled) data for program. The first page usually has two things: Overall data structure of the project, which shouldn’t be important for non-programmer, and contents of the file called Readme.md, which is a file that’s supposed to explain to whoever came to that repository, what they’re looking at, how to make it work, and such. Usually, if there is click-and-go type installation available for the project, it’s mentioned in that readme.md file.

If the readme.md doesn’t contain any info that seems relevant to you, it might be you’re expected to run it on your own. It’s nearly impossible to give you any guide on how to do that in general case, but usually it is fairly straight-forward case of first, identifying tools you need to have available to compile this code at all(for example, python interpreter is needed to run .py files), and then second, following the step-by-step instructions given in readme.md. However, there are many ways in which the instructions might be incomplete and you might encounter problems that require pretty deep knowledge to fix on your own, so…

Since you gave example of python, it’s often fairly straightforward. You need python interpreter. You download the entire project(either through git program, or as a zip file) and place it somewhere. You install all the pre-requisite programs(for python specifically, it’s usually a line after line of “pip install <package name>” put into… Well, given that you use Windows, I’m actually not entirely sure, but I think after installing Python on windows, pip should work on command prompt? When you’re installing python it should make special mention somehow about where you can expect to find all these tools. Microsoft Powershell should work too. Anyway, pre-requisites are usually listed in readme.md file, and it usually includes those pip install commands so you just copy paste them, download stuff, and you’re ready to go.

Next up, in terminal, command prompt, powershell or whatever you end up using to pass these commands, you’d probably type something akin to “python ~/downloads/big_project/main.py”. To make it work, you might need to learn a bit about folder navigation within the terminal you use, or use full path to the file. The program should now be running.

There are many steps here that might go wrong, but I think you have very good chance of getting the program to work regardless. But it mostly depends on how well the program is documented(readme.md specifically)

Anonymous 0 Comments

> anything I try to download just gives me a whole bunch of unfamiliar file-names and what I’m guessing is some uncompiled data?

The thing is, GitHub is intended for programmers to share and manage source code: uncompiled computer instructions like you note. it’s not really intended for end users to get finalized software, and a lot of what you find there is going to need to be compiled before you can use it.

How you then compile or execute the files you find on GitHub can’t be put in to some global tutorial, because it depends on the exact project and the programming language being used in it. Imagine that you’d try to find a tutorial for how to cook and bake every recipe you could possibly find in a cook book. Some recipes only require you to mix things in a bowl and serve. Others require three pans and an oven. Some recipes will call for weeks worth of fermenting different ingredients. Some need you to own a blender, while others will call for a crock-pot. Trying to condense every possible recipe down to a single tutorial is a fools errant.

If you find something on GitHub you like try googling the exact name of the software and see if you can’t find a pre-packaged version, read the description for the GitHub repository to see if it explains what to do, or see if anything is listed under the “Releases” section of that repository. Beyond that giving exact instructions beyond “Google the language being used and learn how to execute that language” becomes rather difficult.