Debian のようなディストリビューションを使用していて、新しいユーザーであるか、システム管理者 としてキャリアを始めたばかりの場合は、おそらくパッケージの更新の重要性をすでにご存知でしょう。 aptアップデートを使用します。 Linux についてさらに学ぶために、各パッケージが何を行うのかを理解することもできます。さらに、システム管理者 (sysadmin) は、どの更新が緊急であるか、セキュリティに関連しているかを関係者に伝達したり、文書化したりする必要があることがよくあります。
この投稿では、Python、apt list -u コマンド、Gemini AI を組み合わせて、保留中のパッケージ更新に関する人間が判読できる概要を作成する方法を説明します。
apt list -u | awk '{ print }' | sed 's|/.*||'
ここでは、2 つのスクリプトにわたるソリューションの内訳を示します:
このスクリプトは apt list -u を実行して保留中の更新を取得し、出力を処理し、プロンプト関数を使用して Gemini AI から分類された概要を取得します。
import subprocess from utils.gemini_cfg import prompt try: # Run 'apt list -u' to list upgradable packages result = subprocess.run(["apt", "list", "-u"], capture_output=True, text=True, check=True) output = result.stdout # Get command output # Use the Gemini AI model to summarize the updates summary = prompt(output) # Save the AI-generated summary to a Markdown file with open("./gemini_result.md", "w") as file: file.write(summary) print("Summary saved to gemini_result.md") except subprocess.CalledProcessError as e: print("Error while running apt list:", e)
このスクリプトは Gemini API を構成し、AI 生成コンテンツのプロンプト関数を定義します。
import google.generativeai as genai from environs import Env # Load API key from .env file env = Env() env.read_env() key = env("TOKEN") # Replace with your environment variable key name # Configure Gemini API genai.configure(api_key=key) model = genai.GenerativeModel("gemini-1.5-flash") # Function to prompt Gemini AI for summaries def prompt(content): message = ( "You work as a sysadmin (Debian server infrastructure). " "You must create a list categorizing the importance in terms of security and priority, " "providing a brief summary for each package so that business managers can understand " "what each library is from this output of the `apt list -u` command: " f"{content}" ) response = model.generate_content([message]) return response.text
スクリプトは次のことを行います:
gemini_result.md を開くと、更新の明確で分類された概要が表示され、コミュニケーションが容易になります。
生成された概要の例を次に示します。
## Debian Package Update List: Priority and Security The list below categorizes the packages available for update, considering their importance in terms of security and business operation priority. The classification is subjective and may vary depending on your company's specific context. **Category 1: High Priority - Critical Security (update immediately)** - **linux-generic, linux-headers-generic:** Critical kernel updates to fix security vulnerabilities. - **libcurl4:** Resolves potential security issues for data transfer operations. ... **Category 2: High Priority - Maintenance and Stability (update soon)** * **`e2fsprogs`, `logsave`:** Packages related to ext2/ext3/ext4 file systems. Update to ensure data integrity and file system stability. **Medium-High priority.** ... **Category 3: Medium Priority - Applications (update as needed)** * **`code`:** Visual Studio Code editor. Update for new features and bug fixes, but not critical for system security. * **`firefox`, `firefox-locale-en`, `firefox-locale-pt`:** Firefox browser. Updates for security fixes and new functionalities. Priority depends on Firefox usage in your infrastructure. ...
Python と Gemini AI を少し使用すると、Debian パッケージの更新を伝達する方法を自動化および改善できます。このスクリプトは、AI をシステム管理ワークフローに統合するための優れた基盤です。この投稿は教育を目的としているため、Gemini API リソースとシステムの安全な取り扱いに注意してください。
読んでいただきありがとうございます! ?
以上がPython と Gemini を使用した Debian パッケージ更新概要の自動化 (gemini--flash)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。