Respuestas:
Editar: No vi su declaración anterior sobre saber que podría hacerlo, así que esto es un poco incómodo ... Dejaré esto aquí para cualquiera que quiera saber cómo hacer esto. Además, la versión anterior de mi respuesta no funcionó, pero esta versión (a expensas de ser algo más larga) sí:
TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'http://path.to/my.deb' &&
sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB"
Solo necesita modificar la URL al principio. Esto podría ser alias o escrito como una función bash.
Me doy cuenta de que hay problemas técnicos y de seguridad que lo rodean (no obtienes actualizaciones automáticas, se puede confiar en la fuente, etc.), pero sobre una base puramente de "puedo hacerlo", esto podría funcionar.
No es posible sin crear un archivo temporal. Normalmente harías esto como
### Does not work
wget --quiet --output-document=- http://example.com/path/to/package.deb | dpkg --install -
o tal vez
### Does not work
dpkg --install <(wget --quiet --output-document=- http://example.com/path/to/package.deb)
pero dpkg usa mmap para acceder al archivo, por lo que ninguno funciona. Hay un informe de error sobre esto: # 367297
El método más rápido es así. Haga clic para comenzar a instalar el obturador .
URL utilizadas para hacer clic en el nombre:
http://packages.ubuntu.com/shutter
... y para hacer clic en el icono:
http://apt.ubuntu.com/p/shutter
Y sí, necesita Ubuntu Software Center para finalizar la instalación de un .DEB. De lo contrario, deberá ejecutar la instalación desde Nautilus o la línea de comandos.
El texto completo utilizado para esto es solo para Ask Ubuntu, por lo que debe reformatearlo en un ancla:
[shutter](http://packages.ubuntu.com/shutter) [![Install shutter]
(https://i.stack.imgur.com/HjNGK.png)](http://apt.ubuntu.com/p/shutter)
Se puede encontrar más información en la página wiki de apturl :
1 paquete:
a href="apt:package"
Agrupando varios paquetes:
a href="apt:package1,package2,package3"
Habilitar repositorios:
apturl apt:freevial?section=universe
Entonces, si el software no está en un repositorio habilitado predeterminado, debe agregarle una 'sección ='. De lo contrario, no podrá utilizar este método y necesitará que el usuario lo descargue e instale.
Puedes intentarlo con curl
.
Para descargar el archivo en la carpeta actual e instalarlo desde el archivo local:
curl -sLO https://apt.puppetlabs.com/puppetlabs-release-precise.deb && sudo dpkg -i puppetlabs-release-precise.deb
o descargar /var/cache/apt/archives/
e instalar desde allí:
curl -sL -o/var/cache/apt/archives/puppetlabs-release-precise.deb https://apt.puppetlabs.com/puppetlabs-release-precise.deb && sudo dpkg -i /var/cache/apt/archives/puppetlabs-release-precise.deb
--install needs at least one package archive file argument
dpkg-deb: error:
/ dev / fd / 63 'no es un archivo de formato debian'
dpkg: error processing archive puppetlabs-release-precise.deb (--install):
De hecho, tengo un script que hace algo similar:
Simplemente copie y pegue este script en ~/bin
(cree esta carpeta si no existe):
#!/bin/bash
# ~/bin/dpkg
COUNT=0
for i in $@; do
echo $i | grep http 2>&1 > /dev/null
if [ $? == 0 ]; then
URL="$URL $i"
continue
fi
PASSTODPKG="$PASSTODPKG $i"
done
#Remove beginning and trailing space
URL=$(echo $URL | sed -e 's/^ //g' -e 's/ $//g')
if [ ! -z $URL ]; then
mkdir /tmp/debs
cd /tmp/debs
for i in $URL; do
wget "$i"
done
dpkg $PASSTODPKG /tmp/debs/*.deb
else
dpkg $PASSTODPKG
fi
Luego agregue esto a la última línea en ~/.bashrc
PATH="~/bin:$PATH"
El script es solo un contenedor para dpkg
. La línea en el ~/.bashrc
archivo dice bash
que cada vez que escribe dpkg
, se ejecutará ~/bin/dpkg
(el script), en lugar de hacerlo /usr/bin/dpkg
.
La secuencia de comandos solo pasará los argumentos a dpkg
si no se proporcionan URL. El script también admite múltiples URL. Aquí hay algunos ejemplos que funcionarán:
sudo dpkg -i http://www.example.com/file1.deb
sudo dpkg -i http://www.example.com/file1.deb http://www.example.com/file2.deb
sudo dpkg -i http://www.example.com/file1.deb existing.deb http://www.example.com/file2.deb
sudo dpkg -i existing.deb
lynx
puede llamar dpkg
(o al Centro de software, si hay una pantalla disponible) y ofrecerle instalar un paquete descargado. Por ejemplo, usando:
lynx http://archive.ubuntu.com/ubuntu/pool/main/z/zsh/
Y al descargar uno de los .deb
archivos, se muestra el siguiente mensaje:
Info for debian package '/tmp/user/1000/L11127-6774TMP.udeb':
new debian package, version 2.0.
size 2545218 bytes: control archive=5830 bytes.
857 bytes, 21 lines control
14682 bytes, 169 lines md5sums
225 bytes, 20 lines * postinst #!/bin/sh
Package: zsh-doc
Source: zsh
Version: 5.1.1-1ubuntu1
Architecture: all
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Installed-Size: 5291
Depends: zsh-common (= 5.1.1-1ubuntu1)
Section: doc
Priority: optional
Homepage: http://www.zsh.org/
Description: zsh documentation - info/HTML format
Zsh is a UNIX command interpreter (shell) usable as an
interactive login shell and as a shell script command
processor. Of the standard shells, zsh most closely resembles
ksh but includes many enhancements. Zsh has command-line editing,
built-in spelling correction, programmable command completion,
shell functions (with autoloading), a history mechanism, and a
host of other features.
.
This contains the documentation in GNU info and HTML formats.
Original-Maintainer: Debian Zsh Maintainers <pkg-zsh-devel@lists.alioth.debian.org>
Do you wish to:
- I)nstall the package now,
- S)ave it to a file, or
- Q)uit now
Your choice (I/S/Q)? I
Installation of Debian packages needs to be done as root.
Enter command used to become root (default=sudo):
Installing package...
[sudo] password for bro3886:
(Reading database ... 756955 files and directories currently installed.)
Preparing to unpack .../user/1000/L11127-6774TMP.udeb ...
Unpacking zsh-doc (5.1.1-1ubuntu1) over (5.0.5-4ubuntu1~ubuntu14.04.1) ...
dpkg: dependency problems prevent configuration of zsh-doc:
zsh-doc depends on zsh-common (= 5.1.1-1ubuntu1); however:
Version of zsh-common on system is 5.0.5-4ubuntu1~ubuntu14.04.1.
dpkg: error processing package zsh-doc (--install):
dependency problems - leaving unconfigured
Processing triggers for doc-base (0.10.5) ...
Processing 1 changed doc-base file...
Processing triggers for install-info (5.2.0.dfsg.1-2) ...
Errors were encountered while processing:
zsh-doc
Done. Press <return> to continue:
(Tal vez no debería intentar instalar paquetes aleatorios fuera de Internet).
Sé que ha pasado un tiempo desde que esta pregunta fue respondida / publicada, pero aquí está mi humilde contribución :
#!/bin/bash
dir="/tmp/dpkg-get"
url="$1"
file="${url##*/}"
if [ "$EUID" -ne 0 ]
then
echo "Please run as root"
exit
fi
[ -d $dir ] || mkdir $dir
wget -q --show-progress -O "$dir/$file" $url && \
dpkg -i "$dir/$file"
Cómo instalar dpkg-get
desde Pastebin con un solo comando:
sudo bash -c "wget http://pastebin.com/raw/GWu7qLwK -O- | tr -d '\r' > /usr/local/bin/dpkg-get && \
chmod a+x /usr/local/bin/dpkg-get"
Cómo usarlo (por ejemplo, para instalar PowerShell 6 alpha):
sudo dpkg-get https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.10/powershell_6.0.0-alpha.10-1ubuntu1.16.04.1_amd64.deb
Y eso es todo.
Sé que no es perfecto, pero es simple y funciona.
Recuerde tener cuidado con lo que instala y desde donde lo descarga.
Esta línea única basada en una respuesta SO funcionó para mí en Ubuntu 15.04 para identificar la última versión del átomo en github para mi entorno (Ubuntu de 64 bits) y luego instalarlo:
sudo dpkg -i $(curl -w "%{filename_effective}" -LO $(curl -s https://api.github.com/repos/atom/atom/releases | grep browser_download_url | grep '64[.]deb' | head -n 1 | cut -d '"' -f 4))
Si hace esto en un directorio tmp, el archivo deb se limpiará cada vez que vacíe su carpeta tmp. De lo contrario, puede eliminar manualmente el paquete deb si necesita espacio en disco.
Puede agregarlo de /etc/bash.bashrc
la siguiente manera (es una actualización del script de Chen):
'dpkg-url'() {
COUNT=0
for package in "${urls[@]}"; do
if [[ $package = *http* ]]; then
urls+=("$package")
fi
dpkg_url="$dpkg_url "$package""
done
# Remove beginning and trailing spaces #
url=$(echo "$url" | sed -e 's/^ //g' -e 's/ $//g')
if [[ ! -z "$url" ]]; then
directory=$(mktemp -d);
trap 'rm -rf "$directory"' EXIT
cd "$directory" || exit
for package in "$url"; do
wget ""$package""
done
dpkg $dpkg_url "$directory"/*.deb
else
dpkg $dpkg_url
fi
}
Aunque no veo por qué recibo este error cuando lo llamo de la siguiente manera:
dpkg-url -i http://downloads.sourceforge.net/ldview/ldview-4.2-beta1.x64.deb
dpkg: error: need an action option
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Options marked [*] produce a lot of output - pipe it through `less' or `more' !
Solo pensé que daría mis dos centavos por esto. Puede instalar un paquete desde una URL con el siguiente comando:
wget insert_url_here
Una vez que se ha descargado, debe ejecutar el comando dpkg como superusuario:
sudo dpkg -i insert_file_name_here
Luego solo siga las instrucciones que se presentan en la terminal.
dpkg --skip-same-version -i $FILE
si se va a ejecutar desde scripts. Más información aquí - manpages.debian.org/unstable/dpkg/dpkg.1.en.html