Kirjoittaja Aihe: Päivitys pythonilla  (Luettu 2606 kertaa)

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Päivitys pythonilla
« : 08.01.16 - klo:10.47 »
Miksi python pätkäni ei toimi?
Koodia: [Valitse]
def paivita1():
import subprocess
subprocess.call(["sudo", "apt-get", "update","&&", "sudo" , "apt-get" , "dist-upgrade"])
Saan vastaukseksi
Koodia: [Valitse]
E: Komento update ei käytä parametrejaSuoraan päätteeseen kirjoitetttuna päivitys toimii ihan niin kuin pitääkin.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11440
    • Profiili
    • Tomin kotisivut
Vs: Päivitys pythonilla
« Vastaus #1 : 08.01.16 - klo:11.09 »
Koska tuo käynnistää ohjelman sudo antaen sille parametreina rimpsun "apt-get update && sudo apt-get dist-upgrade". Siis et käynnistä kahta peräkkäistä komentoa vaan yhden, jolla on erikoiset parametrit. Sudo sitten välittää nuo kaikki loput parametrit apt-get:lle eikä sekään käsittele tuota && mitenkään erityisesti. Tuon voi korjata vaikka käynnistämällä molemmat komennot erikseen subprocessilla.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Vs: Päivitys pythonilla
« Vastaus #2 : 08.01.16 - klo:12.14 »
Ok ja kiitos nopeasta vastauksesta! Toinen juttu päivitys koodissani olisi miten ohjaan salasanakyselyn graafiseen ikkunaan? Tkinteriä olen käyttänyt enkä ole löytänyt ohjeita miten toi tehtäisiin. Jos on linkkiä johonkin esimerkkiin niin olis hyvä tai millä hakusanoilla kannattaisi etsiä? Laitan tähän koodini joka on vain harjoittelua ja Tkinterin opiskelua toistaiseksi ei sen kummempaa
Koodia: [Valitse]
# -*- coding: utf-8 -*-
from Tkinter import *
import math
import os
def paivita():
import subprocess
subprocess.call(["dnf", "update"])
def paivita1():
import subprocess
subprocess.call(["sudo", "apt-get", "update","&&", "sudo" , "apt-get" , "dist-upgrade"])
def lopeta():
import sys
master.destroy()
sys.exit (0)
master = Tk()
Button(master, font=18, text='Lopeta', command=lopeta).grid(row=0, column=0, sticky=W, pady=4)
Button(master, font=18, text='Päivita', command=paivita).grid(row=0, column=1, sticky=W, pady=4)
Button(master, font=18, text='PäivitaUbu', command=paivita1).grid(row=1, column=1, sticky=W, pady=4)
mainloop( )

nm

  • Käyttäjä
  • Viestejä: 16242
    • Profiili
Vs: Päivitys pythonilla
« Vastaus #3 : 08.01.16 - klo:13.20 »
Toinen juttu päivitys koodissani olisi miten ohjaan salasanakyselyn graafiseen ikkunaan?

(A) pkexec ajaa komentoriviohjelman pääkäyttäjänä ja tarjoaa graafisen salasanakyselyn. Se on suositeltavin menetelmä nykyisissä jakeluissa:

Koodia: [Valitse]
pkexec apt-get update

(B) sudo -A ajaa erillisen salasanakyselyohjelman, joka määritellään ympäristömuuttujalla SUDO_ASKPASS:

Koodia: [Valitse]
SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A apt-get update

(C) gksu/gksudo tarjoaa myös graafisen dialogin salasanan syöttämiseen. Gksu ei kuitenkaan enää kuulu Ubuntun oletusasennukseen.

Koodia: [Valitse]
gksu apt-get update