Comparison and extension of the Debian and Gentoo package management mechanisms

Source: Internet
Author: User
Comparison and extension of the package management mechanisms of Debian and Gentoo-Linux Release Technology-Debian information. For details, refer to the following section. If you want to install a set of Linux, and do not want to follow the version number of the Linux release, constantly format the system, reinstall, or upgrade the installation. Then, only LFS, Debian, and Gentoo are suitable for you.

This article tries to compare the package management mechanisms of Debian and Gentoo, and draws several interesting conclusions. This article focuses on the defects and shortcomings of Debian and Gentoo package management, and tries to propose solutions. At last, I am at a limited level, making mistakes and shortcomings inevitable. I hope you can correct them.

Debian is an old release version. Some people even think that Debian is the GNU/Linux version. However, Debian has its own understanding. It just happens to be implemented through Linux. (Debian, seems like an idea? A way of life ?)

Gentoo is a new and rapidly growing release version. He said that he was growing rapidly not only because it provided mainstream and non-mainstream Linux implementation based on various hardware, but also because, it also provides portage for * bsd, MacOSX, and Sun Solaris (shortly after Sun opened Solaris) versions. (First I met Gentoo and chatted with PuzzleBird, the founder of OpenQ on QQ. He described Gentoo as the next generation of Debian. So I believe it and started the difficult installation. However, thanks to PuzzleBird, he showed me the world outside rpm. I used to release an rpm version)

The typical Debian provides a binary deb package compiled based on i386. It uses a complete and effective tool instruction set to ensure the integrity, cleaning, and effectiveness of the entire system software package.

Traditionally, Gentoo also provides Binary packages. However, Gentoo, in the sense of everyone, is to compile its own system through source code. With various levels of USE (configuration file level, command line level) settings, Gentoo allows you to easily get your own, unique Linux system.

Comparison: The formats provided by the software package are different (one is binary files and the other is source code ). Debian has faster system installation efficiency than Gentoo. In the same network, Debian installation requires more time than Gentoo, usually only a few hours, you can get a complete Debian system (including a complete desktop environment such as KDE ). However, in my opinion, Debian's disadvantage is that Debian's dependency Review Based on deb is too strict. It may be because the Binary Package is provided directly. Debian also considers the different editions of the same software to be completely different.

The ibqt3-mt-dev depends on the following two, but the following two versions already have the firefly patch.

Tip:
Libfreetype6-dev: Depends: libfreetype6 (= 2.1.7-2.3)
But 2.1.7-2.3 firefly is to be installed
Libxft-dev: Depends: libxft2 (= 2.1.2-6)
But 2.1.2-6 firefly is to be installed
Depends: libfontconfig1-dev but it is not going to be installed

The same software package is dependent on different minor patches during compilation and cannot meet the requirements of Debian. You can only rebuild the system.

In the same case, you can USE the same source code in Gentoo to configure different USE methods. That is to say, in Gentoo, due to the different settings of personal USE, the two Debian packages above are regarded as one package in Gentoo, but different patches are applied during configuration. Therefore, there is no such issue as dependency-based installation.

For example, assume that the software package has two different uses: one is common and the other is firefly. For Gentoo, if you set it to USE = "common" for compilation, the system uses USE = "common, firefly" to compile the software package. when compiling the software package, the system automatically determines whether to install the firefly patch. In other words, Gentoo allows the existence of different binary files from the same source code at the same time. During compilation, Gentoo configures the existence of different binary files, unless it does not find the dependent files. Otherwise, Gentoo does not prompt a dependency error (because there is indeed no error ). Debian is too strict in this regard.

The main disadvantage of Gentoo package management is that it uses source code compilation and cannot meet the needs of quick system installation. At the same time, once the benchmark USE of the system changes (this often happens, especially when you are a newbie to Gentoo, you may not know which software package to USE, too many uses are added to the benchmark. Although emerge -- new-USE world can be used to compile the new use, at this time, the compiling sequence of the dependent packages of Gentoo may sometimes be incorrect, resulting in compilation failure. (This is actually a dependency problem. It is clear that the Order 1, 2, and 3 can be compiled successfully, but after -- new-use, emerge may mistakenly arrange the order of 2, 1, and 3, resulting in compilation failure ).

To sum up, the problem with Debian is that the dependency is too strict. The main methods that can be used for dependency problems are.

1. Force installation. This is the best and most troublesome method. (Because the next time you encounter a similar problem, you have to force install it, especially when upgrading it ).

2. Modify the dependency. Although I don't know where to change debian dependencies, this is indeed a path. However, this is not easy because the dependency needs to be manually modified every time.

3. Cheat Debian and directly release the modified software package in the form of debian, which can solve the dependency problem. However, if the source. list of debian is used, if the security site check is enabled, this step cannot pass.

4. Rebuild the system and install the official version of Debian. OK. If you do not have high requirements on Chinese display, you can use this method. However, in this case, there will be no bold or italic characters in Chinese. At the same time, I don't think it looks very comfortable.

5. It is not easy to upgrade with an unofficial version. In line with the principle that enough is good, we look forward to other people to solve the problem. Me, speechless. (Applicable to Hiweed users. To Hiweed ).

6. Build a large system that includes patches for all problems caused by patch issues. That is, a large number of unofficial patches. For example, building a set of extremely large Debian, which can solve all the dependency problems, may be called Big Hiweed. Time-consuming, laborious, and difficult to sync with official releases.

7. Why not directly submit the Chinese patch to the Debian official website or the software development official website? The software is Native Chinese Support. Isn't it good? (I strongly agree with this point of view. This should be the final solution ).

8 of course, Debian can also be recommended to modify its dependency detection method. It provides some flexibility. tiny version numbers are considered to be equally compatible.

Gentoo solution:
Although Gentoo's dependency problem is well solved, it takes too long to compile Gentoo. Although, you can USE some methods (such as setting the simplest system, setting complicated USE, and removing unnecessary Locale compilation) to ensure that the system does not compile anything redundant. You can also use the ccache method to create a database to accelerate c program compilation. However, Gentoo installation takes a long time (usually several days on the desktop, using kde or gnome). frequent upgrades are time-consuming and laborious.

Although we cannot solve the compilation problem during the upgrade. However, we can at least solve the problem of too long installation time. We hope that ibox from the instructor's homeking will adopt livecd to provide you with a complete Gentoo Chinese solution. The new version of ibox uses kde as the default and provides fast installation to the hard disk.

The future of Gentoo lies in the fact that with the continuous improvement of computer system performance, the time cost for compiling software from source code will be lower. At the same time, if you have multiple computers, gentoo supports multiple computers to compile software for the same computer in parallel. This can also greatly speed up the Compilation Time.

Some people think that Gentoo compilation systems are faster than Debian. I don't think this is a fact. Most Gentoo users do not know how to optimize their systems. Therefore, the compiled system has limited optimizations. This gives Debian a great opportunity. In addition, too many USE parameter settings make your system have a lot of features you don't need. This is also a reason.

Debian also has a disadvantage, although Debian is very small after installation. However, if you need to compile the program, you will find that Debian also needs to install various headers or sources, which are not required for Gentoo, because Gentoo is compiled from the source code. Nothing is missing.
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.