Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: welmar - 08.01.16 - klo:10.47
-
Miksi python pätkäni ei toimi?
def paivita1():
import subprocess
subprocess.call(["sudo", "apt-get", "update","&&", "sudo" , "apt-get" , "dist-upgrade"])
Saan vastaukseksi E: Komento update ei käytä parametreja
Suoraan päätteeseen kirjoitetttuna päivitys toimii ihan niin kuin pitääkin.
-
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.
-
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
# -*- 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( )
-
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:
pkexec apt-get update
(B) sudo -A ajaa erillisen salasanakyselyohjelman, joka määritellään ympäristömuuttujalla SUDO_ASKPASS:
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.
gksu apt-get update