2か月後に中断されるUbuntu 16.04 LTSで実行されるプログラムがあります。このプログラムはQT4を使用するPython 2アプリケーションです。うまく動作し、Ubuntu 20に移動したいと思います。近いうちにPython2とQT4は正式にサポートされなくなりました。さて、非公式のリポジトリを使用すると、欠落している部分をインストールできます。しかし、2025年(Ubuntu 20のサポート終了)でも同じ状況になり、古いライブラリのインストールはさらに悪化します。
プログラムの性質上、コンテンツの有効期間はなく、今後50年間使用できることを願っています。私はいつもオープンソースを信じていましたが、今ではソースコードへのアクセスがすべてではないことに気づきました。著者はこれをPython3 / QT5に変換しない可能性が高いですが(過去4年間は更新しません)、下痢では、ある日、QT5とPython3のサポートが中断されるため、実際のソリューションではありません。 。
私はPythonをバイナリにコンパイルするために2つの異なる方法を試しました。ある程度は機能しますが、python2アプリケーションで実行すると、1秒に比べてプログラムが非常に遅く(30秒)起動します。また、このようにコンパイルされたバイナリ(Ubuntu 16を使用)は、今後数十年間Ubuntuのすべての次のLTSリリース(glibc依存関係など)で動作しますか?
この問題を解決するための創造的なアイデアがあることを願っています。ありがとうございます!
答え1
そのような要求事項を持っている会社で働いてみると100年ほどに関心を持つようになります。正直なところ、50年と100年の違いはそれほど大きくはないようです。未来へのすべての賭けは間違っています。だから私はあなたが言うどんなアドバイスにも非常に懐疑的です。これまたはそれそれでも周りにいるでしょう。
私が働いている会社は、自分が作成したコンテンツが100年後にも人々が読むことができるかどうかに興味があります。この目的のために、彼らはその期間内に動作するソフトウェアがないという事実をほとんど受け入れました。
代わりに、ファイル形式を読みやすく、よく文書化し、オープンで、可能であれば説明を可能にすることに焦点を当てます。
これにより、すべてがオープンXML標準として保存され、SQLデータベースのみがセカンダリインデックスとして使用されます。彼らは時間が経つにつれてソフトウェアが変更されることを認識していますが、少なくともファイル形式を制御できます。これは、常に新しいソフトウェアを互換性にする方法があることを意味します。
WebベースのソフトウェアGUIは、特定のデスクトップ環境やプラットフォームライブラリに接続されているソフトウェアよりもソフトウェアをアクティブに保つのに適しています。 HTMLは1993年に始まり、多くの変更を受けたにもかかわらず、最も単純な機能はまだ以前のバージョンと互換性があります。
今すぐソフトウェアを移植する場合は、Webベースのオプションに移植する方が良いかもしれません。
しかし、何が生き残るかを予測することは本当に不可能です。私の言葉はFortranを覚えている人は誰ですか?
ソフトウェアが非常に古いとき(私がサポートしている最も古いソフトウェアは約20年ほどです)。最後の手段は、(再び)アップグレードできないという事実を受け入れ、できるだけ長く実行されている物理ボックスをアクティブに保つことです。これはいくつかの業界で驚くほど一般的な戦術です(」今日の宇宙船がまだ1990年代のプロセッサを使用している理由")。
Muruがコメントで指摘したように、仮想マシンでこの機能をできるだけ早く設定することをお勧めします。しばらく前に、私はそのような「ブラックボックスサーバー」がハードドライブの障害を経験し、以前のバージョンのLinuxを実行している他のサーバーを入手しようとすると、1年以上を費やしているのを見ました。
また、セキュリティが問題になる可能性があることを覚えておいてください。ソフトウェアのセキュリティホールはパッチできないため、別の脆弱性が発生した場合に備えてファイアウォールをきれいに保つ必要があります。厳しい努力。
しかし、ついに主な問題を発見しました。図書館は支援を失いました。オペレーティングシステムは、以前にコンパイルされたライブラリと互換性がないことがよくあります。最後にCPU寿命が終わりましたそして、あなたが代替品を手に入れることができるという保証もありません。