What is the difference between apt, apt-get and git?












0















I use Xubuntu and found that I can update packages by using apt and apt-get. But I have heard that programmers use usually git in their project to manage different version. So why Xubuntu do not use git to handle different versions of software?










share|improve this question









New contributor




Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 6





    It's an interesting question, however it seems that you first need to understand the difference between software package manager and version control systems. They are fundamentally very different things.

    – shivams
    8 hours ago








  • 1





    Everything. What is the difference between format and mkdir? :-)

    – peterh
    7 hours ago






  • 2





    A package is a group of pre-configured files such as pre-compiled binaries, libraries, and/or supporting configuration files, etc. These are created by a package maintainer who may acquire original sources from git (or any other vcs or even a distribution method that isn't a vcs). This saves all of us the work of compiling all of our own applications and libraries and leverages skills of the maintainer.

    – Christopher
    7 hours ago
















0















I use Xubuntu and found that I can update packages by using apt and apt-get. But I have heard that programmers use usually git in their project to manage different version. So why Xubuntu do not use git to handle different versions of software?










share|improve this question









New contributor




Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 6





    It's an interesting question, however it seems that you first need to understand the difference between software package manager and version control systems. They are fundamentally very different things.

    – shivams
    8 hours ago








  • 1





    Everything. What is the difference between format and mkdir? :-)

    – peterh
    7 hours ago






  • 2





    A package is a group of pre-configured files such as pre-compiled binaries, libraries, and/or supporting configuration files, etc. These are created by a package maintainer who may acquire original sources from git (or any other vcs or even a distribution method that isn't a vcs). This saves all of us the work of compiling all of our own applications and libraries and leverages skills of the maintainer.

    – Christopher
    7 hours ago














0












0








0








I use Xubuntu and found that I can update packages by using apt and apt-get. But I have heard that programmers use usually git in their project to manage different version. So why Xubuntu do not use git to handle different versions of software?










share|improve this question









New contributor




Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I use Xubuntu and found that I can update packages by using apt and apt-get. But I have heard that programmers use usually git in their project to manage different version. So why Xubuntu do not use git to handle different versions of software?







apt software-installation git version-control






share|improve this question









New contributor




Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 8 hours ago









Rui F Ribeiro

39.5k1479132




39.5k1479132






New contributor




Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 8 hours ago









VerybeginnerVerybeginner

122




122




New contributor




Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Verybeginner is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 6





    It's an interesting question, however it seems that you first need to understand the difference between software package manager and version control systems. They are fundamentally very different things.

    – shivams
    8 hours ago








  • 1





    Everything. What is the difference between format and mkdir? :-)

    – peterh
    7 hours ago






  • 2





    A package is a group of pre-configured files such as pre-compiled binaries, libraries, and/or supporting configuration files, etc. These are created by a package maintainer who may acquire original sources from git (or any other vcs or even a distribution method that isn't a vcs). This saves all of us the work of compiling all of our own applications and libraries and leverages skills of the maintainer.

    – Christopher
    7 hours ago














  • 6





    It's an interesting question, however it seems that you first need to understand the difference between software package manager and version control systems. They are fundamentally very different things.

    – shivams
    8 hours ago








  • 1





    Everything. What is the difference between format and mkdir? :-)

    – peterh
    7 hours ago






  • 2





    A package is a group of pre-configured files such as pre-compiled binaries, libraries, and/or supporting configuration files, etc. These are created by a package maintainer who may acquire original sources from git (or any other vcs or even a distribution method that isn't a vcs). This saves all of us the work of compiling all of our own applications and libraries and leverages skills of the maintainer.

    – Christopher
    7 hours ago








6




6





It's an interesting question, however it seems that you first need to understand the difference between software package manager and version control systems. They are fundamentally very different things.

– shivams
8 hours ago







It's an interesting question, however it seems that you first need to understand the difference between software package manager and version control systems. They are fundamentally very different things.

– shivams
8 hours ago






1




1





Everything. What is the difference between format and mkdir? :-)

– peterh
7 hours ago





Everything. What is the difference between format and mkdir? :-)

– peterh
7 hours ago




2




2





A package is a group of pre-configured files such as pre-compiled binaries, libraries, and/or supporting configuration files, etc. These are created by a package maintainer who may acquire original sources from git (or any other vcs or even a distribution method that isn't a vcs). This saves all of us the work of compiling all of our own applications and libraries and leverages skills of the maintainer.

– Christopher
7 hours ago





A package is a group of pre-configured files such as pre-compiled binaries, libraries, and/or supporting configuration files, etc. These are created by a package maintainer who may acquire original sources from git (or any other vcs or even a distribution method that isn't a vcs). This saves all of us the work of compiling all of our own applications and libraries and leverages skills of the maintainer.

– Christopher
7 hours ago










3 Answers
3






active

oldest

votes


















5














apt and apt-get are related and very different from git.



apt is the package management tool for Debian-derived Linux distributions (including Ubuntu/Xubuntu). This is used to manage (i.e. download, install, remove, update) the binary software packages that makeup the Linux distribution you are using. This is about updating your local system software, as well as adding and removing programs.



'apt' is the command-line tool that is used to interact with the Synaptic graphical tool. Essentially, they do the same things; however, one is graphical and runs in the X-Window System and the other is run from the Linux command line.



apt-get is the command that is most-commonly used to install or update packages on your computer. apt is less-commonly used and differs from apt-get mostly in terms of output formatting. You can use man apt or man apt-get to pull up the manual pages, which will give you more details about the differences between the commands. There are also many pages online that will give you more information about how Synaptic and apt can be used.



git, on the other hand, is a versioning control system for source code for software development. Again, you can use man git for more information (if git is installed on your system). However, I wouldn't think you would need to worry much about git if you have Xubuntu and are not involved in developing software yourself.






share|improve this answer































    3














    So apt and apt-get are both package management tools available to most Debian and Debian based Linux distributions. APT stands for Advanced Package Tool and is a package management tool designed to manage .deb packages. Here is an article you can check out to see the differences. I also recommend you read the Debian Wiki on package management.



    Essentially apt-get is "older" and apt is "newer" but both have largely the same functionality, that being they download, install, update, upgrade, and manage all your packages on your Debian install. They are interchangeable outside of a few edge cases.



    Git on the other hand is a software version control system. Here is a good site to get started on learning about git. Developers and end users can use git to control versions of a project they are working on. You can use git to track changes in Word documents, videos, pictures, source code, etc.



    It is just another tool to be able to manage and control software on your system. Some applications are not available in your operating system's repositories and the developers may choose to distribute a version in a git repository compared to the standard repository that your operating system's package manager would reference. In that case you would use git to download the software and follow any instructions the developers provide to complete the installation.



    Using git is a more manual process. By using apt or apt-get you can automatically download and install any updates for all packages (software, firmware, kernel updates, security patches, etc.) with 1 or 2 commands. With git you would have to check to see if there is a new version of the software yourself, download it and complete all the installation steps needed. Unlike with an APT tool, you would have to do this for each individual piece of software you installed via git.






    share|improve this answer































      0














      apt-get calculates dependencies, so it can install dependent packages according to your request. (Or remove other packages, in other cases). It unpacks the package files and runs install scripts in sequence.



      git allows pulling / pushing a set of (source code) files. It does not track dependencies. As well as the current version of the source files, git tracks the history of changes to the set of files.



      Both of these are fairly sophisticated. They are also specialized to their respective purposes, making various tradeoffs. There is not a lot of overlap between them.





      For example they even tend to use different network and security protocols from each other. Many (but not all) Git downloads are now performed over HTTPS (HTTP over SSL). This defends against connection hijacking by relying on the same global Web Certificate Authorities (CAs) as used for online banking, etc.



      Connection hijacking on the internet is distressingly easy and widespread, that we must always defend against it. Connection hijacking could be performed by a malicious Wi-Fi router you are connected to, the internet access provider, someone who gained access to a line between internet backbone routers, etc.



      Most (but not all) apt downloads are performed over plain HTTP. However the apt downloads are then authenticated. This uses one GPG signature file for the overall apt repository, which in turn authenticates a chain of checksums. See SecureApt.



      For example SecureApt is historically cheaper than SSL, because it does not require the server to encrypt each file transfer individually. Another example feature is the ability to download from your best local "mirror" server of the apt repository. All the mirror has to do is copy the same files. Mirror servers have been provided by many different organizations as a public service. And yet if the mirror server is hijacked, they cannot feed you a false update. The authenticated files can only be generated by the organization that holds the secret half of the GPG keypair.



      There might be some room to improve SecureApt using more modern techniques. For example SecureApt has no equivalent of "Update Transparency" (analogous to Certificate Transparency), to deter state powers from secretly coercing backdoors into distributed software. Nevertheless, the features of SecureApt have been quite well suited to their purpose.



      Security has not been so much of a focus for Git, in my understanding. And whereas e.g. the Debian apt repo is generated by one large organization, many people will want to use Git to inspect source code and history from many stand-alone projects. Re-using HTTPS authenticated using the Web Certificate Authorities has been a very convenient way to add protection to these connections.






      share|improve this answer























        Your Answer








        StackExchange.ready(function() {
        var channelOptions = {
        tags: "".split(" "),
        id: "106"
        };
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function() {
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled) {
        StackExchange.using("snippets", function() {
        createEditor();
        });
        }
        else {
        createEditor();
        }
        });

        function createEditor() {
        StackExchange.prepareEditor({
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: false,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        imageUploader: {
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        },
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        });


        }
        });






        Verybeginner is a new contributor. Be nice, and check out our Code of Conduct.










        draft saved

        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f494474%2fwhat-is-the-difference-between-apt-apt-get-and-git%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        5














        apt and apt-get are related and very different from git.



        apt is the package management tool for Debian-derived Linux distributions (including Ubuntu/Xubuntu). This is used to manage (i.e. download, install, remove, update) the binary software packages that makeup the Linux distribution you are using. This is about updating your local system software, as well as adding and removing programs.



        'apt' is the command-line tool that is used to interact with the Synaptic graphical tool. Essentially, they do the same things; however, one is graphical and runs in the X-Window System and the other is run from the Linux command line.



        apt-get is the command that is most-commonly used to install or update packages on your computer. apt is less-commonly used and differs from apt-get mostly in terms of output formatting. You can use man apt or man apt-get to pull up the manual pages, which will give you more details about the differences between the commands. There are also many pages online that will give you more information about how Synaptic and apt can be used.



        git, on the other hand, is a versioning control system for source code for software development. Again, you can use man git for more information (if git is installed on your system). However, I wouldn't think you would need to worry much about git if you have Xubuntu and are not involved in developing software yourself.






        share|improve this answer




























          5














          apt and apt-get are related and very different from git.



          apt is the package management tool for Debian-derived Linux distributions (including Ubuntu/Xubuntu). This is used to manage (i.e. download, install, remove, update) the binary software packages that makeup the Linux distribution you are using. This is about updating your local system software, as well as adding and removing programs.



          'apt' is the command-line tool that is used to interact with the Synaptic graphical tool. Essentially, they do the same things; however, one is graphical and runs in the X-Window System and the other is run from the Linux command line.



          apt-get is the command that is most-commonly used to install or update packages on your computer. apt is less-commonly used and differs from apt-get mostly in terms of output formatting. You can use man apt or man apt-get to pull up the manual pages, which will give you more details about the differences between the commands. There are also many pages online that will give you more information about how Synaptic and apt can be used.



          git, on the other hand, is a versioning control system for source code for software development. Again, you can use man git for more information (if git is installed on your system). However, I wouldn't think you would need to worry much about git if you have Xubuntu and are not involved in developing software yourself.






          share|improve this answer


























            5












            5








            5







            apt and apt-get are related and very different from git.



            apt is the package management tool for Debian-derived Linux distributions (including Ubuntu/Xubuntu). This is used to manage (i.e. download, install, remove, update) the binary software packages that makeup the Linux distribution you are using. This is about updating your local system software, as well as adding and removing programs.



            'apt' is the command-line tool that is used to interact with the Synaptic graphical tool. Essentially, they do the same things; however, one is graphical and runs in the X-Window System and the other is run from the Linux command line.



            apt-get is the command that is most-commonly used to install or update packages on your computer. apt is less-commonly used and differs from apt-get mostly in terms of output formatting. You can use man apt or man apt-get to pull up the manual pages, which will give you more details about the differences between the commands. There are also many pages online that will give you more information about how Synaptic and apt can be used.



            git, on the other hand, is a versioning control system for source code for software development. Again, you can use man git for more information (if git is installed on your system). However, I wouldn't think you would need to worry much about git if you have Xubuntu and are not involved in developing software yourself.






            share|improve this answer













            apt and apt-get are related and very different from git.



            apt is the package management tool for Debian-derived Linux distributions (including Ubuntu/Xubuntu). This is used to manage (i.e. download, install, remove, update) the binary software packages that makeup the Linux distribution you are using. This is about updating your local system software, as well as adding and removing programs.



            'apt' is the command-line tool that is used to interact with the Synaptic graphical tool. Essentially, they do the same things; however, one is graphical and runs in the X-Window System and the other is run from the Linux command line.



            apt-get is the command that is most-commonly used to install or update packages on your computer. apt is less-commonly used and differs from apt-get mostly in terms of output formatting. You can use man apt or man apt-get to pull up the manual pages, which will give you more details about the differences between the commands. There are also many pages online that will give you more information about how Synaptic and apt can be used.



            git, on the other hand, is a versioning control system for source code for software development. Again, you can use man git for more information (if git is installed on your system). However, I wouldn't think you would need to worry much about git if you have Xubuntu and are not involved in developing software yourself.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 7 hours ago









            Time4TeaTime4Tea

            1,019320




            1,019320

























                3














                So apt and apt-get are both package management tools available to most Debian and Debian based Linux distributions. APT stands for Advanced Package Tool and is a package management tool designed to manage .deb packages. Here is an article you can check out to see the differences. I also recommend you read the Debian Wiki on package management.



                Essentially apt-get is "older" and apt is "newer" but both have largely the same functionality, that being they download, install, update, upgrade, and manage all your packages on your Debian install. They are interchangeable outside of a few edge cases.



                Git on the other hand is a software version control system. Here is a good site to get started on learning about git. Developers and end users can use git to control versions of a project they are working on. You can use git to track changes in Word documents, videos, pictures, source code, etc.



                It is just another tool to be able to manage and control software on your system. Some applications are not available in your operating system's repositories and the developers may choose to distribute a version in a git repository compared to the standard repository that your operating system's package manager would reference. In that case you would use git to download the software and follow any instructions the developers provide to complete the installation.



                Using git is a more manual process. By using apt or apt-get you can automatically download and install any updates for all packages (software, firmware, kernel updates, security patches, etc.) with 1 or 2 commands. With git you would have to check to see if there is a new version of the software yourself, download it and complete all the installation steps needed. Unlike with an APT tool, you would have to do this for each individual piece of software you installed via git.






                share|improve this answer




























                  3














                  So apt and apt-get are both package management tools available to most Debian and Debian based Linux distributions. APT stands for Advanced Package Tool and is a package management tool designed to manage .deb packages. Here is an article you can check out to see the differences. I also recommend you read the Debian Wiki on package management.



                  Essentially apt-get is "older" and apt is "newer" but both have largely the same functionality, that being they download, install, update, upgrade, and manage all your packages on your Debian install. They are interchangeable outside of a few edge cases.



                  Git on the other hand is a software version control system. Here is a good site to get started on learning about git. Developers and end users can use git to control versions of a project they are working on. You can use git to track changes in Word documents, videos, pictures, source code, etc.



                  It is just another tool to be able to manage and control software on your system. Some applications are not available in your operating system's repositories and the developers may choose to distribute a version in a git repository compared to the standard repository that your operating system's package manager would reference. In that case you would use git to download the software and follow any instructions the developers provide to complete the installation.



                  Using git is a more manual process. By using apt or apt-get you can automatically download and install any updates for all packages (software, firmware, kernel updates, security patches, etc.) with 1 or 2 commands. With git you would have to check to see if there is a new version of the software yourself, download it and complete all the installation steps needed. Unlike with an APT tool, you would have to do this for each individual piece of software you installed via git.






                  share|improve this answer


























                    3












                    3








                    3







                    So apt and apt-get are both package management tools available to most Debian and Debian based Linux distributions. APT stands for Advanced Package Tool and is a package management tool designed to manage .deb packages. Here is an article you can check out to see the differences. I also recommend you read the Debian Wiki on package management.



                    Essentially apt-get is "older" and apt is "newer" but both have largely the same functionality, that being they download, install, update, upgrade, and manage all your packages on your Debian install. They are interchangeable outside of a few edge cases.



                    Git on the other hand is a software version control system. Here is a good site to get started on learning about git. Developers and end users can use git to control versions of a project they are working on. You can use git to track changes in Word documents, videos, pictures, source code, etc.



                    It is just another tool to be able to manage and control software on your system. Some applications are not available in your operating system's repositories and the developers may choose to distribute a version in a git repository compared to the standard repository that your operating system's package manager would reference. In that case you would use git to download the software and follow any instructions the developers provide to complete the installation.



                    Using git is a more manual process. By using apt or apt-get you can automatically download and install any updates for all packages (software, firmware, kernel updates, security patches, etc.) with 1 or 2 commands. With git you would have to check to see if there is a new version of the software yourself, download it and complete all the installation steps needed. Unlike with an APT tool, you would have to do this for each individual piece of software you installed via git.






                    share|improve this answer













                    So apt and apt-get are both package management tools available to most Debian and Debian based Linux distributions. APT stands for Advanced Package Tool and is a package management tool designed to manage .deb packages. Here is an article you can check out to see the differences. I also recommend you read the Debian Wiki on package management.



                    Essentially apt-get is "older" and apt is "newer" but both have largely the same functionality, that being they download, install, update, upgrade, and manage all your packages on your Debian install. They are interchangeable outside of a few edge cases.



                    Git on the other hand is a software version control system. Here is a good site to get started on learning about git. Developers and end users can use git to control versions of a project they are working on. You can use git to track changes in Word documents, videos, pictures, source code, etc.



                    It is just another tool to be able to manage and control software on your system. Some applications are not available in your operating system's repositories and the developers may choose to distribute a version in a git repository compared to the standard repository that your operating system's package manager would reference. In that case you would use git to download the software and follow any instructions the developers provide to complete the installation.



                    Using git is a more manual process. By using apt or apt-get you can automatically download and install any updates for all packages (software, firmware, kernel updates, security patches, etc.) with 1 or 2 commands. With git you would have to check to see if there is a new version of the software yourself, download it and complete all the installation steps needed. Unlike with an APT tool, you would have to do this for each individual piece of software you installed via git.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 8 hours ago









                    kemotepkemotep

                    2,0913620




                    2,0913620























                        0














                        apt-get calculates dependencies, so it can install dependent packages according to your request. (Or remove other packages, in other cases). It unpacks the package files and runs install scripts in sequence.



                        git allows pulling / pushing a set of (source code) files. It does not track dependencies. As well as the current version of the source files, git tracks the history of changes to the set of files.



                        Both of these are fairly sophisticated. They are also specialized to their respective purposes, making various tradeoffs. There is not a lot of overlap between them.





                        For example they even tend to use different network and security protocols from each other. Many (but not all) Git downloads are now performed over HTTPS (HTTP over SSL). This defends against connection hijacking by relying on the same global Web Certificate Authorities (CAs) as used for online banking, etc.



                        Connection hijacking on the internet is distressingly easy and widespread, that we must always defend against it. Connection hijacking could be performed by a malicious Wi-Fi router you are connected to, the internet access provider, someone who gained access to a line between internet backbone routers, etc.



                        Most (but not all) apt downloads are performed over plain HTTP. However the apt downloads are then authenticated. This uses one GPG signature file for the overall apt repository, which in turn authenticates a chain of checksums. See SecureApt.



                        For example SecureApt is historically cheaper than SSL, because it does not require the server to encrypt each file transfer individually. Another example feature is the ability to download from your best local "mirror" server of the apt repository. All the mirror has to do is copy the same files. Mirror servers have been provided by many different organizations as a public service. And yet if the mirror server is hijacked, they cannot feed you a false update. The authenticated files can only be generated by the organization that holds the secret half of the GPG keypair.



                        There might be some room to improve SecureApt using more modern techniques. For example SecureApt has no equivalent of "Update Transparency" (analogous to Certificate Transparency), to deter state powers from secretly coercing backdoors into distributed software. Nevertheless, the features of SecureApt have been quite well suited to their purpose.



                        Security has not been so much of a focus for Git, in my understanding. And whereas e.g. the Debian apt repo is generated by one large organization, many people will want to use Git to inspect source code and history from many stand-alone projects. Re-using HTTPS authenticated using the Web Certificate Authorities has been a very convenient way to add protection to these connections.






                        share|improve this answer




























                          0














                          apt-get calculates dependencies, so it can install dependent packages according to your request. (Or remove other packages, in other cases). It unpacks the package files and runs install scripts in sequence.



                          git allows pulling / pushing a set of (source code) files. It does not track dependencies. As well as the current version of the source files, git tracks the history of changes to the set of files.



                          Both of these are fairly sophisticated. They are also specialized to their respective purposes, making various tradeoffs. There is not a lot of overlap between them.





                          For example they even tend to use different network and security protocols from each other. Many (but not all) Git downloads are now performed over HTTPS (HTTP over SSL). This defends against connection hijacking by relying on the same global Web Certificate Authorities (CAs) as used for online banking, etc.



                          Connection hijacking on the internet is distressingly easy and widespread, that we must always defend against it. Connection hijacking could be performed by a malicious Wi-Fi router you are connected to, the internet access provider, someone who gained access to a line between internet backbone routers, etc.



                          Most (but not all) apt downloads are performed over plain HTTP. However the apt downloads are then authenticated. This uses one GPG signature file for the overall apt repository, which in turn authenticates a chain of checksums. See SecureApt.



                          For example SecureApt is historically cheaper than SSL, because it does not require the server to encrypt each file transfer individually. Another example feature is the ability to download from your best local "mirror" server of the apt repository. All the mirror has to do is copy the same files. Mirror servers have been provided by many different organizations as a public service. And yet if the mirror server is hijacked, they cannot feed you a false update. The authenticated files can only be generated by the organization that holds the secret half of the GPG keypair.



                          There might be some room to improve SecureApt using more modern techniques. For example SecureApt has no equivalent of "Update Transparency" (analogous to Certificate Transparency), to deter state powers from secretly coercing backdoors into distributed software. Nevertheless, the features of SecureApt have been quite well suited to their purpose.



                          Security has not been so much of a focus for Git, in my understanding. And whereas e.g. the Debian apt repo is generated by one large organization, many people will want to use Git to inspect source code and history from many stand-alone projects. Re-using HTTPS authenticated using the Web Certificate Authorities has been a very convenient way to add protection to these connections.






                          share|improve this answer


























                            0












                            0








                            0







                            apt-get calculates dependencies, so it can install dependent packages according to your request. (Or remove other packages, in other cases). It unpacks the package files and runs install scripts in sequence.



                            git allows pulling / pushing a set of (source code) files. It does not track dependencies. As well as the current version of the source files, git tracks the history of changes to the set of files.



                            Both of these are fairly sophisticated. They are also specialized to their respective purposes, making various tradeoffs. There is not a lot of overlap between them.





                            For example they even tend to use different network and security protocols from each other. Many (but not all) Git downloads are now performed over HTTPS (HTTP over SSL). This defends against connection hijacking by relying on the same global Web Certificate Authorities (CAs) as used for online banking, etc.



                            Connection hijacking on the internet is distressingly easy and widespread, that we must always defend against it. Connection hijacking could be performed by a malicious Wi-Fi router you are connected to, the internet access provider, someone who gained access to a line between internet backbone routers, etc.



                            Most (but not all) apt downloads are performed over plain HTTP. However the apt downloads are then authenticated. This uses one GPG signature file for the overall apt repository, which in turn authenticates a chain of checksums. See SecureApt.



                            For example SecureApt is historically cheaper than SSL, because it does not require the server to encrypt each file transfer individually. Another example feature is the ability to download from your best local "mirror" server of the apt repository. All the mirror has to do is copy the same files. Mirror servers have been provided by many different organizations as a public service. And yet if the mirror server is hijacked, they cannot feed you a false update. The authenticated files can only be generated by the organization that holds the secret half of the GPG keypair.



                            There might be some room to improve SecureApt using more modern techniques. For example SecureApt has no equivalent of "Update Transparency" (analogous to Certificate Transparency), to deter state powers from secretly coercing backdoors into distributed software. Nevertheless, the features of SecureApt have been quite well suited to their purpose.



                            Security has not been so much of a focus for Git, in my understanding. And whereas e.g. the Debian apt repo is generated by one large organization, many people will want to use Git to inspect source code and history from many stand-alone projects. Re-using HTTPS authenticated using the Web Certificate Authorities has been a very convenient way to add protection to these connections.






                            share|improve this answer













                            apt-get calculates dependencies, so it can install dependent packages according to your request. (Or remove other packages, in other cases). It unpacks the package files and runs install scripts in sequence.



                            git allows pulling / pushing a set of (source code) files. It does not track dependencies. As well as the current version of the source files, git tracks the history of changes to the set of files.



                            Both of these are fairly sophisticated. They are also specialized to their respective purposes, making various tradeoffs. There is not a lot of overlap between them.





                            For example they even tend to use different network and security protocols from each other. Many (but not all) Git downloads are now performed over HTTPS (HTTP over SSL). This defends against connection hijacking by relying on the same global Web Certificate Authorities (CAs) as used for online banking, etc.



                            Connection hijacking on the internet is distressingly easy and widespread, that we must always defend against it. Connection hijacking could be performed by a malicious Wi-Fi router you are connected to, the internet access provider, someone who gained access to a line between internet backbone routers, etc.



                            Most (but not all) apt downloads are performed over plain HTTP. However the apt downloads are then authenticated. This uses one GPG signature file for the overall apt repository, which in turn authenticates a chain of checksums. See SecureApt.



                            For example SecureApt is historically cheaper than SSL, because it does not require the server to encrypt each file transfer individually. Another example feature is the ability to download from your best local "mirror" server of the apt repository. All the mirror has to do is copy the same files. Mirror servers have been provided by many different organizations as a public service. And yet if the mirror server is hijacked, they cannot feed you a false update. The authenticated files can only be generated by the organization that holds the secret half of the GPG keypair.



                            There might be some room to improve SecureApt using more modern techniques. For example SecureApt has no equivalent of "Update Transparency" (analogous to Certificate Transparency), to deter state powers from secretly coercing backdoors into distributed software. Nevertheless, the features of SecureApt have been quite well suited to their purpose.



                            Security has not been so much of a focus for Git, in my understanding. And whereas e.g. the Debian apt repo is generated by one large organization, many people will want to use Git to inspect source code and history from many stand-alone projects. Re-using HTTPS authenticated using the Web Certificate Authorities has been a very convenient way to add protection to these connections.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 4 hours ago









                            sourcejedisourcejedi

                            23.3k437102




                            23.3k437102






















                                Verybeginner is a new contributor. Be nice, and check out our Code of Conduct.










                                draft saved

                                draft discarded


















                                Verybeginner is a new contributor. Be nice, and check out our Code of Conduct.













                                Verybeginner is a new contributor. Be nice, and check out our Code of Conduct.












                                Verybeginner is a new contributor. Be nice, and check out our Code of Conduct.
















                                Thanks for contributing an answer to Unix & Linux Stack Exchange!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid



                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f494474%2fwhat-is-the-difference-between-apt-apt-get-and-git%23new-answer', 'question_page');
                                }
                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown