Các gói được đặt tên giống như ở nơi có (hoặc đã) cần giảm bớt sự chuyển đổi giữa hai phiên bản chính của gói và thời gian cần thiết để làm như vậy dự kiến sẽ kéo dài. Trong giai đoạn chuyển tiếp, cả hai phiên bản mới và cũ đều được cung cấp, với sự hiểu rằng vào một thời điểm nào đó, phiên bản cũ hơn sẽ bị ngừng sử dụng.
Đôi khi, giai đoạn chuyển tiếp đang diễn ra trong quá trình phát hành hệ thống mà bạn hiện đang sử dụng. Đối với một số gói, nó thường xảy ra đủ để bạn có thể thấy các phiên bản gói chuyển tiếp trong mỗi bản phát hành hệ thống mới. Các công cụ phát triển phần mềm thường rơi vào danh mục này, vì việc nâng cấp lên các công cụ mới theo cùng lịch trình với việc phát hành hệ thống có thể không thực tế. Sự phụ thuộc của công ty tôi vào các phiên bản cụ thể của GCC, Autoconf và Perl có thể theo chu kỳ 5 năm, trong khi hệ điều hành của tôi có thể theo chu kỳ nâng cấp 3 năm. Do đó, nó giúp tôi dễ dàng chấp nhận các HĐH mới hơn nếu nó bao gồm các phiên bản cũ hơn của một số gói ngoài bất kỳ thứ gì hiện tại vào thời điểm HĐH mới đang được phát triển.
Những lần khác, những thay đổi phiên bản chính này đã xảy ra từ lâu, trong quá khứ và bây giờ tất cả mọi người đều ở phiên bản hiện tại. Đây là trường hợp với Apache, ví dụ. Thay đổi 1.3 thành 2.0 là một thỏa thuận lớn hơn nhiều so với quan điểm tương thích so với bất kỳ thay đổi nào trong phiên bản 2.x, vì vậy một khi mọi người đã tắt 1.3, không còn cần phải tiếp tục cung cấp nhiều phiên bản Apache trong một bản phát hành HĐH nhất định. Nhưng, một khi bạn đã có tất cả mọi người sử dụng apache2
gói, sẽ không có lý lẽ nào tốt để đổi tên lại apache
. Điều đó sẽ gây ra một rắc rối nâng cấp không cần thiết. Bên cạnh đó, nơi có nhu cầu nhận thức trong quá khứ để cung cấp hai phiên bản song song tạm thời, nhu cầu có thể sẽ tái diễn trong tương lai.
Thực hành đặt tên gói này thường chỉ xảy ra với các thư viện hoặc các gói cốt lõi quan trọng. Đối với các gói ngoại vi hơn, bạn sẽ chỉ cần nâng cấp lên bất cứ thứ gì hiện tại.
Các thư viện thường được xử lý theo cách này hơn các ứng dụng bởi vì về bản chất, các gói khác phụ thuộc vào chúng. Thư viện càng phổ biến thì càng không thực tế khi yêu cầu mọi gói khác tùy thuộc vào nó được xây dựng lại và hoàn toàn chống lại nó để thư viện có thể được nâng cấp lên phiên bản chính mới mà không có giai đoạn chuyển tiếp này.
Thông thường khi một ứng dụng đang được xử lý theo cách này, đó là vì nó chứa một thành phần thư viện. Ví dụ, Apache không chỉ là một máy chủ web, nó còn cung cấp API phát triển cho các plugin. ( mod_foo
Và như vậy). Nếu ai đó có một tuổi mod_something
liên kết chống lại Apache 1.3 Plugin ABI và đã không được nâng cấp nó để sử dụng phiên bản mới hơn 2.0 API, đó là thuận tiện nếu hệ điều hành của bạn tiếp tục cung cấp Apache cũ 1,3 đến khi tất cả những người sáng tạo Plugin có cơ hội để cập nhật plugin của họ.