Making custom repos ( local and global )


Notes


  • This page has references to older name of our distro: DrunkOS
  • As the GitLab still has the example up then we wont be making any confusion by making changes here ;)

Requirements


  • Running Evolinx system
  • here we will make repository folder in ~/Desktop/EVOLINX ( and take EVOLINX folder as root folder )
  • repository we will talk about is "mega_games" and will be in repository/x86_64/mega_games
  • also gonna take that you have some prebuilt pkg files somewhere

Local


  • Here we will make simple repository tree and add repo to bottle.conf

  • This will be used only for initializing the repo

$ mkdir -p repository/x86_64/mega_games/packages

$ cd repository/x86_64/mega_games/packages
  • Now copy over youre prebuilt packages and drop them in packages folder where we are
// Making db
$ repo-add mega_games.db.tar.xz *x86_64*.gz

// Get current full path
$ pwd

// Now lets test that repo locally
$ nano /etc/bottle.conf
  • navigate to the bottom of conf and add following lines there with youre own path to repo
// Now dont get confused with triple ///
// file:// like https:// and then we also add root path /home to it so it will be this weirdness like it is

[mega_games]
Server = file:///home/martinvlba/Desktop/EVOLINX/repository/x86_64/mega_games/packages/
SigLevel = Optional TrustAll
  • Now were ready so lets run
$ bottle -Sy

$ bottle -S my_mega_game
  • And thats it, have fun with local repos and go nuts

Global


  • Global repos arent actually any different like local repos so follow Local guide until modding the /etc/bottle.conf and then get back to this guide
  • Note: We will be pushing repo to https://git.n64.cc ( Gitlab alike site ) as a example how things run ( and yeah that can be made with small repos where are no big pkg's )
  • Example repo: https://gitlab.com/drunk-os/drunk-repo
Adding repo to git
  • navigate to repository/x86_64/mega_games and run following
$ git add -A -f

$ git commit -m "Adding initial packages" -m "Extra info go here"

$ git branch -M master

// Make sure to make the repo and copy its link
$ git add origin https://gitlab.com/drunk-os/drunk-repo.git

// Now push it
$ git push -u origin master
Getting raw url and testing out the repo
  • Getting raw url is easy
  • Firstly open the repo in browser and navigate to the file you wanna view like here ( clicking on Download gives you raw URL )

get_raw_url

  • Now copy it and format it from ( to note that x86_64/ is for me there a packages/ here )
  • https://gitlab.com/drunk-os/drunk-repo/-/raw/main/x86_64/ark-21.12.2-1-x86_64.pkg.tar.gz
  • To
  • https://gitlab.com/drunk-os/drunk-repo/-/raw/main/x86_64/
  • Now lets add it to bottle.conf and test
$ nano /etc/bottle.conf
  • Add following
[mega_games]
Server = https://gitlab.com/drunk-os/drunk-repo/-/raw/main/x86_64/
SigLevel = Optional TrustAll
// Now lets sync the new repo
$ bottle -Sy

Additional info about bottle.conf

  • So what does what?
[mega_games]
Server = https://gitlab.com/drunk-os/drunk-repo/-/raw/main/x86_64/
SigLevel = Optional TrustAll
  • [mega_games] = bottle searches for mega_games.db in the defines Server = hey://heyhey.hey/repo/hey/
  • SigLevel = Optional and TrustAll is mainly needed if packages are unsigned with gpg keys ( fast and easy way with this )