• Matt@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    13 hours 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.

  • fbr@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 day 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)

  • Wojwo@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    2 days ago

    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.

    • china🇨🇳@lemmy.caOP
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      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!

      • Wojwo@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        17 hours ago

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

  • ThirdConsul@lemmy.ml
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    2 days ago

    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?

    • china🇨🇳@lemmy.caOP
      link
      fedilink
      arrow-up
      1
      ·
      2 days ago

      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.

  • MonkderVierte@lemmy.zip
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    2 days 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.

  • pastermil@sh.itjust.works
    link
    fedilink
    arrow-up
    2
    ·
    2 days 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?

  • far_university1990@reddthat.com
    link
    fedilink
    arrow-up
    11
    arrow-down
    9
    ·
    edit-2
    2 days ago

    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.