Bagaimana cara mentransisikan pengguna PPA dari satu PPA ke yang lainnya?

8

Saya perlu mentransisikan pengguna yang ada dari satu PPA ke PPA yang berbeda, jadi ini adalah pertanyaan bagaimana mengotomatiskan transisi tanpa dampak sesedikit mungkin pada pengguna.

Lebih tepatnya:

Saya memiliki PPA untuk PHP 5.5 dan PHP 5.6 yang menggunakan kemasan PHP gaya lama yang digunakan sebelum Xenial dan mereka memiliki cukup banyak pengguna.

Sekarang saya membuat PPA baru yang mencakup PHP 5.5, PHP 5.6 dan PHP 7.0 dan saya ingin para pengguna PPA lama untuk beralih ke PPA baru ini. Saya punya beberapa ide bagaimana melakukan ini secara umum, tetapi saya ingin mendapat lebih banyak masukan dari komunitas AskUbuntu.

Silakan berkontribusi pemikiran Anda melalui komentar, edit langsung ke jawaban di bawah ini atau tambahkan saran Anda sendiri.

oerdnj
sumber
Jawaban yang bagus ...
simhumileco

Jawaban:

3

Opsi 3 - Secara otomatis menambahkan PPA baru

Ini seperti 2, tetapi php5-commonsecara otomatis akan menambah PPA baru, sehingga paket baru akan tersedia setelah apt-get updatedijalankan berikutnya . Secara opsional mungkin ada pertanyaan Debconf apakah pengguna ingin PPA ditambahkan secara otomatis atau mereka akan melakukannya sendiri.

  • Pro:
    1. Satu repositori tunggal untuk ditangani
    2. Tidak ada transisi otomatis
    3. Pengguna dapat menyiapkan rencana transisi mereka
    4. Paket siap dipasang segera
    5. Menambahkan PPA dari namespace yang sama mungkin bekerja dengan sempurna
  • Cons:
    1. Beberapa pengguna akan ketinggalan pengumuman tidak peduli seberapa keras Anda mencoba
    2. Menambahkan PPA tambahan secara otomatis sepertinya risiko keamanan
    3. Menambahkan PPA tambahan dari ruang nama yang berbeda perlu memasukkan kunci GPG tambahan /etc/apt/trusted.gpg.d/dan itu juga sepertinya risiko keamanan
oerdnj
sumber
Ada php-ppapaket di yang lama ppa:ondrej/php5dan ppa:ondrej/php5-5.6, jadi Anda sudah bisa mencobanya.
oerdnj
Saya tidak melihat risiko keamanan menambahkan ppa (apakah mereka mempercayai Anda dan semuanya baik-baik saja, atau tidak, dan mereka seharusnya tidak menggunakan paket Anda untuk memulainya)?
JanC
@JanC Terima kasih atas umpan baliknya. Masih akan membuat saya gelisah jika paket menambahkan PPA tambahan tanpa bertanya terlebih dahulu, tapi saya sudah menerapkan pertanyaan debconf untuk itu, jadi saya pikir seharusnya tidak apa-apa.
oerdnj
Ya, tentu saja memperingatkan pengguna Anda sebelumnya dan / atau ketika itu terjadi, serta mendokumentasikannya dalam file PERUBAHAN atau semacamnya, adalah ide yang bagus.
JanC
BTW: mungkin pada titik tertentu Anda juga ingin melakukan pembangunan kembali tanpa perubahan reguler dengan nomor versi yang dibuat secara bertahap dalam PPA lama, sehingga mereka yang mengabaikan perubahan PPA mendapatkan pengingat reguler dari debconf… :)
JanC
2

Opsi 2 - Buat rencana penghentian dan beri tahu pengguna dengan jelas

  • Pro:
    1. Satu repositori tunggal untuk ditangani
    2. Tidak ada transisi otomatis
    3. Pengguna dapat menyiapkan rencana transisi mereka
  • Cons:
    1. Beberapa pengguna akan ketinggalan pengumuman tidak peduli seberapa keras Anda mencoba
    2. Akan ada orang yang mengatakan: "Tolong, jangan lakukan itu"
    3. Tidak ada transisi otomatis
oerdnj
sumber
1

Opsi 1 - Jangan melakukan apa pun

  • Pro:
    1. Pengguna senang
  • Cons:
    1. Setiap paket sumber rangkap harus memiliki dua versi skrip build
    2. Pengelola PPA yang kelebihan beban dan tidak bahagia
oerdnj
sumber
1

Opsi 4 - Transisi sepenuhnya otomatis

Ini seperti Opsi 3, tetapi menambahkan paket dummy yang akan menggantikan yang lama php5*dan menarik yang baruphp5.6*

  • Pro (termasuk Pro dari Opsi 3):
    1. Jika semuanya berjalan seperti yang diharapkan, itu mungkin pilihan terbaik, karena pengguna akan memiliki paket baru tanpa ada pekerjaan di pihak mereka
  • Kontra (termasuk Kontra dari Opsi 3):
    1. Switch akan menghapus perubahan yang dilakukan orang ke file konfigurasi lama atau transisi memerlukan beberapa skrip pengelola kompleks untuk mengocok konfigurasi lama sekitar ke lokasi baru
    2. Paket dummy perlu membawa setidaknya beberapa konfigurasi ke pengaturan soket FPM dan nama-nama lama untuk tidak merusak kompatibilitas dengan pengaturan lama (gunakan pembaruan-alternatif untuk pengaturan /usr/bin/php5ke titik di /usr/bin/php5.6)
oerdnj
sumber