all 12 comments

sorted by: hot top controversial new old
[–] 10 points 11 months ago* (1 child)

You seem to be a very novice programmer.

how do I setup my dev environment

? Google that? Use a devcontainer? I mean literally a question answered thousands of times.

where should I start

Setting up your dev environment. Then maybe create a few projects for you to test your package manager empirically?

do I invent my own pkg format or do I use pre built packages like deb or rpm?

Depends on what you want to do. I'm honestly not sure how to help you here? What kind of answer are you fishing for here?

  • source
  • hideshow 1 child comment
  • [–] 3 points 11 months ago

    Why would you do that?

    Aside from the fact there are so many package managers out there, don't you want to start with something simpler?

  • source
  • [–] 3 points 11 months ago* (last edited 11 months ago)

    I guess a good start would be to look at some minimal package managers like opkg. Maybe xbps, yum, pacman too; the format is simple but for pacman you need rather look at libalpm.

  • source
  • [–] 2 points 11 months ago

    Take a look at Homebrew. Essentially how it works is that it parses a definition file for package(s) and downloads and installs them (and their dependencies) in a for loop.

  • source
  • [–] 2 points 11 months ago

    Building a package manager is kind of a large project, so I'd recommend trying to build some smaller applications in C# first. That will help you set up your development environment and get a better grasp on the language and ecosystem.

    Once you've got an okay understanding of the language, I think a package manager would be a great project to learn with (especially if it's something you're interested in)!

    1. do I invent my own pkg format or do I use pre built packages like deb or rpm? I think the later one will be more easier

    Whether you build your own package format or use one from another manager is up to you. If you want to learn how a specific package manager works, consider integrating with their package format. If you want to design a full system, consider designing your own (and maybe take inspiration from some existing solutions). I wouldn't say that using an existing format would be strictly easier, as those formats are specially designed and can often be very complicated.

    1. where should I start?

    This is a tricky question for any application. I'd highly recommend spending a little bit of time to determine roughly what steps will need to be done for each stage of package management (i.e., creating a package, publishing a package, installing a package). Since you're just doing this to learn, it's okay if it's not perfect or if there are portions that are missed, it's just important to get some thoughts out. When you actually start writing code, you'll probably want to focus on the more fundamental aspects that block the other stages (implement package creation before implementing installation)

  • source
  • [–] 2 points 11 months ago (2 children)

    Maybe spend some time investigating how to make nuget packages and then move onto deb or rpm. That way you'll have a better idea of the problems that you'll face in making your own. Personally whenever I feel the need for some kind of package manager, nuget is flexible enough that I can repurpose it to almost anything.

  • source
  • hideshow 2 child comments
  • [–] [S] 1 point 11 months ago (1 child)

    nuget is flexible enough that I can repurpose it to almost anything. wait so you mean I can use nuget to install Linux packages too? that would be really awesome if true.

    Thank you for the reply!

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 11 months ago* (last edited 11 months ago) (2 children)

    Abandon microshit c#

    Edit: also read apt/dpkg/rpm/yum/pacman source? Deb literally just tar with file with same hierarchy as in os with one or two extra file for metadata.

  • source
  • hideshow 2 child comments