18
7day
17

need help creating a package manager in c# - Lemmy.ca

https://lemmy.ca/post/56350755
ThirdConsul - 7day

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?

10
china🇨🇳 - 6day

yes I am a novice programmer and don't know much about c# either but I have made a bunch of projects which is fairly usable so I am not someone with no experience.

1
MonkderVierte @lemmy.zip - 6day

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

3
Matt - 5day

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.

2
far_university1990 @reddthat.com - 7day

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.

2
ThirdConsul - 7day

Slow down, relax, OP asked a question, not murdered your pet hamster.

8
far_university1990 @reddthat.com - 5day

Microsoft did. My pet hamster called mojang account. And now i out for microsoft blood.

2
rirus @feddit.org - 7day

Every package manager you mention is shit. Look at guix, nix or pnpm for better, innovative concepts and ideas and implement them better.

-8
data1701d (He/Him) - 5day

Every package manager you mention is shit.

Every package manager you mention is s***.

2
far_university1990 @reddthat.com - 7day

Every package manager you mention is shit.

And so are you.

-8
rirus @feddit.org - 6day

Wtf, do you know nix, guix and pnpm? They have way better concepts, ideas and functionality then the legacy package managers you mentioned.

-1
far_university1990 @reddthat.com - 5day

0
pastermil @sh.itjust.works - 6day

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?

2
Wojwo - 6day

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.

2
china🇨🇳 - 5day

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!

1
Wojwo - 5day

Yeah, you could probably make a linux distro that uses nuget for packaging... Hadn't really thought about it but it should be doable.

2
fbr @lemmy.dbzer0.com - 5day

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)

2