Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: welmar - 08.01.16 - klo:10.47

Otsikko: Päivitys pythonilla
Kirjoitti: welmar - 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.
Otsikko: Vs: Päivitys pythonilla
Kirjoitti: Tomin - 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.
Otsikko: Vs: Päivitys pythonilla
Kirjoitti: welmar - 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( )
Otsikko: Vs: Päivitys pythonilla
Kirjoitti: nm - 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