관리-도구
편집 파일: rpm.cpython-39.pyc
a "e� � @ s� d dl mZ d dlmZ e�� dv r�d dlmZ ddlmZ d dl m Z d dlmZ d d l mZmZ d d lmZ d dlZd dlZd dlZG dd � d e�ZdS )� )�absolute_import)�System)ZfedoraZrhelZcentoszcentos-7ZmageiaZol)�listdir� )�IPackageManager)�Package)�PackagesCollection)�LockedDatabase�DatabasePermissions)�PY3Nc @ st e Zd ZdZdd� Zedd� �Zdd� Zdd � Zd d� Z dd � Z dd� Zdd� Zdd� Z dd� Zdd� Zdd� ZdS )�Rpmz! Package manager class - RPM c K s || _ d S �N)�opts)�self�kwargs� r �>/usr/lib/python3.9/site-packages/tracer/packageManagers/rpm.py�__init__* s zRpm.__init__c C s t S r )�NotImplemented)r r r r �history_path- s zRpm.history_pathc C s� t j�| j�stg �S | j�d�r(d}nd}zbt� }| �� }t� |�}tj |_|�� }|� ||g� |�� D ]}|�t|d |d �� ql|W S tjy� } z$t|�dkr�t� nt� �W Y d}~n d}~0 0 dS )zp Returns list of packages which were modified between unix_time and present Requires root permissions. �modern_swdbz� SELECT DISTINCT rpm.name, trans.dt_end AS end FROM trans JOIN trans_item JOIN rpm ON trans.id=trans_item.trans_id AND trans_item.item_id=rpm.item_id WHERE trans.dt_begin > ? ORDER BY rpm.name aJ SELECT DISTINCT pkgtups.name, trans_end.timestamp AS end FROM trans_beg JOIN trans_end JOIN trans_data_pkgs JOIN pkgtups ON trans_beg.tid=trans_end.tid AND trans_data_pkgs.tid=trans_beg.tid AND trans_data_pkgs.pkgtupid=pkgtups.pkgtupid WHERE trans_beg.timestamp > ? ORDER BY pkgtups.name �name�endzdatabase is lockedN)�os�path�existsr r r �get�_database_file�sqlite3ZconnectZRowZrow_factory�cursorZexecuteZfetchall�appendr ZOperationalError�strr r ) r Z unix_timeZsql�packagesZsqliteZconnr �result�er r r �packages_newer_than0 s"