Me apresente sua distro!

1. Me apresente sua distro!

Slackjeff
slackjeff

(usa Slackware)

Enviado em 31/01/2017 - 14:56h

Estou em uma fase dificil, desempregado e estou testando umas distros não muito conhecidas para dar uma brincada.
Me apresente sua distro e falei sobre ela, para mim testar.
OBS: Somente Distros não muito conhecidas, as de grande porte eu já testei ao longo de minha trajetória no linux.
Aquele abraço!



configure complete, now type 'make' and pray.
Meu Blog: http://area355.blogspot.com.br
Tradutor PT-BR da Distribuição: Calculate Linux
Tradutor PT-BR da Distribuição: Arya-Linux








  


3. Re: Me apresente sua distro!

Perfil removido
removido

(usa Nenhuma)

Enviado em 31/01/2017 - 20:42h

https://www.vivaolinux.com.br/artigo/Algumas-Distribuicoes-GNULinux-Excentricas

Digito, logo existo!



4. NixOS -- Distro funcional

Perfil removido
removido

(usa Nenhuma)

Enviado em 31/01/2017 - 21:28h

-- Usa nix package manager, um package manager com configuração declarativa
--> Nix ( package manager ) pode ser instalado em varias distribuições e ate MacOS e ser um package manager para o usuario especifico em vez do sistema inteiro como no NixOS

-- Troca a hirearquia do FHS ( /bin /usr/bin /lib /usr/lib /usr/local/* , etcetera) por uma configuração em /nix/store (que é uma partição montada como read-only, pra evitar mudanças nos pacotes )
-- Pacotes são prefixados em /nix/store/$hashDoPacote-$pacote-$versão, voce pode ter quantos pacotes iguais (tipo firefox), em quantas versões quiser (36, 49, 51, 52, nightly, aurora), dentro de cada diretorio pro pacote ele tem uma estrutura normal com (/bin /lib /share) que tem symlink pra varios lugares que estão na _PATH_ do usuario, dependendo da configuração.
-- Configuração declarativa, em vez de ir instalando, voce configura arquivos dentro do dir /etc/nixos linguagem especifica do Nix como voce quer seu sistema, Networking, Partições pra montar, pacotes no sistema, variaveis do sistema, serviços do systemd, ativar programas, voce simplesmente da
 nixos-rebuild switch  
e voce vai estar na nova configuração.
-- Upgrades atomicos, a mudança de configuração acontece ou não, não existe um estado que fica no meio com seu sistema mal-formado, ou o seu sistema sai na nova versão ou ele da erro e fica na versão anterior.
-- Facil retornar pra versões anteriores, caso voce consiga quebrar algo ( e vamos ser honestos voce vai conseguir quebrar algo ), simplesmente dando reboot e escolhendo uma configuração anterior no menu do Grub e voce tem seu sistema em estado funcional denovo, tambem pode rodar
 nixos-rebuild switch --rollback # Volte para a configuração anterior 

-- Como Nix é uma linguagem e não uma representação de Dados como em outros pacotes, é facil fazer mudanças a pacotes e criar seus propios.

Exemplos da configuração declarativa:

Tirado do website do Nix

{
boot.loader.grub.device = "/dev/sda";

fileSystems."/".device = "/dev/sda1";

services.sshd.enable = true;
}

^ Instala grub em /dev/sda, monta / (rootfs) como um device, e ativa sshd.

pequeno snippet do meu hardware-configuration.nix

boot.initrd.availableKernelModules = [ "ehci_pci" "ata_piix" "usbhid" "sd_mod" "sr_mod" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];

fileSystems."/" =
{ device = "/dev/disk/by-uuid/de83991b-e266-4fa2-a9e8-77007a0bf538";
fsType = "ext4";
};

^ Indica os modulos disponiveis durante a initramfs, indica os modulos (kvm-intel só nesse caso) disponiveis durante boot, e monta rootfs por uuid (pra confiança) em ext4


{ config, ... }:

{

#
# Users configuration, users on
# the system go here
#

users.extraUsers.leon = {
isNormalUser = true;
uid = 1000;
home = "/home/leon";
description = "Leon's main account";
group = "users";
extraGroups = [ "wheel" "input" "video" "disk" "audio" ];
shell = "/run/current-system/sw/bin/dash";
};

}

Isso cria um usuario chamado leon, com uid 1000, com shell dash como default, com home em /home/leon, nos grupos wheel,input,video,disk e audio.


security = {

# Enable sudo and disable password
sudo.enable = true;
sudo.wheelNeedsPassword = false;

# Hide processes from user
hideProcessInformation = true;

pam.loginLimits =
[ { domain = "@users";
type = "-";
item = "maxlogins";
value = "3";
}
];
};

}

^ Ativa sudo, esconde informação dos processos pro usuario (ele não ve processos que não são dele), e define uma regra em pam pra não deixar fazer login caso erre a senha 3 vezes pra qualquer pessoas no grupo users (leon esta nesse grupo)


nixpkgs.config.packageOverrides = pkgs: rec {
termite = pkgs.termite.override {
configFile = ./conf/termite/termite.conf;
};
rofi = pkgs.stdenv.lib.overrideDerivation pkgs.rofi (Attrs: {
nativeBuildInputs = Attrs.nativeBuildInputs ++ [ pkgs.makeWrapper ];
postInstall = ''
wrapProgram $out/bin/rofi \
--add-flags "-config /etc/nixos/conf/rofi/rofi.conf"
'';
});
neovim = pkgs.neovim.override {
vimAlias = true;
configure = {
customRC = ''
source /etc/nixos/conf/neovim/neovim.conf
'';
vam = {
pluginDictionaries = [
{ name = "vim-gitgutter"; }
{ name = "goyo"; }
{ name = "syntastic"; }
{ name = "vim-airline"; }
{ name = "vim-airline-themes"; }
{ name = "rust-vim"; }
];
};
};
};
};
}

esse é mais complicado, ele primeiro faz a função do pacote termite ( o terminal) chamar um arquivo de configuração em /etc/nixos/conf/termite.conf, depois ele muda atributos do pacote rofi e faz um wrapper ( um programa que é executado antes e faz com que o programa original inicie do jeito certo ) pra ele rodar a configuração em /etc/nixos/conf/rofi/rofi.conf, depois ele passa um .vimrc custom que esta em /etc/nixos/conf/neovim/neovim.conf e depois define varios plugins pro usuario.


services."dunst" = {
description = "Dunst notification daemon";
wantedBy = [ "default.target" ];
serviceConfig = {
ExecStart = "${pkgs.dunst}/bin/dunst";
Restart = "always";
RestartSec = "3";
};
};

};

services = {

chrony.enable = true; # Synchronize machine time
openssh.enable = false; # no ssh
udisks2.enable = false; # Security problem
printing.enable = false; # No printer
locate.enable = false;
dbus.socketActivated = true;
timesyncd.enable = false; # We use chrony
transmission.enable = true; # Our torrent
mpd.enable = true; # Enable music player daemon
compton.enable = true;
};

bem simples, ele declara um serviço pra usuario no systemd pro programa dunst (daemon de notificações), e depois eu ativo (true) e desativo (false) varios programas que eu quero ou não



enable = true; # Enable xserver
videoDrivers = [ "intel" ];
videoDriver = "i965";
useGlamor = true;
layout = "br"; # Use brazillian layout

desktopManager.xterm.enable = false; # disable xterm, we use i3

startDbusSession = true;

displayManager = {

sessionCommands = with pkgs; lib.mkAfter ''
${hsetroot}/bin/hsetroot -fill ~/share/wallpapers/AstralisLake.png &
~/.cargo/bin/rendy -m 256 -f /var/lib/mpd/music notify-send "New music placed on Music Dir" &
xrandr --output VGA1 --brightness 0.5 &
sh /etc/nixos/conf/yabar/revive.sh &
exec /run/current-system/sw/bin/2bwm
'';

slim = {
enable = true; # enable slim as our display manager
defaultUser = "leon"; # just ask for my password
theme = pkgs.fetchurl {
url = "https://github.com/edwtjo/nixos-black-theme/archive/v1.0.tar.gz";
sha256 = "13bm7k3p6k7yq47nba08bn48cfv536k4ipnwwp1q1l2ydlp85r9d";
};
};
};
};

Ativa o Xorg, com drivers da intel, na versão intel-965, com GlamorEGL, com layout br, desativa sessão do xterm e roda dbus (pra daemon de notificação), depois ele define uma corrente de comandos pra rodar durante a inicialização do usuario do >> sessionCommands >> ao >> ''; <<, e depois define leon como usuario default do SLiM (display manager) e um tema custom pra ele que é baixado da internet



ssh.startAgent = false;

# Big fish config
fish = {
enable = true;
shellAliases = {}; # Remove aliases from fish, they conflict with users
interactiveShellInit = ''
source (/run/current-system/sw/bin/autojump-share)/autojump.fish

# It's ok to hardcode here since
# it's on the same git repo and is
# expected that NixOS configuration
# is held on /etc/nixos, if not then
# it's a bug in the distribution.
for conf in /etc/nixos/conf/fish/*;
source $conf;
end
'';
shellInit = ''
set -x PATH $HOME/.cargo/bin $PATH
'';
};
};

desativa ssh e as aliases da shell FISH, ele tambem roda aquele bloco de comandos toda vez que uma sessão interativa do FISH é iniciada


environment.systemPackages = with pkgs; [

#
# Packages here are considered base system
#

# Main utilities
coreutils

# For downloads
wget
curl

# find the executable and docs
which

# Disk control
gptfdisk
parted

# manpages
man
manpages
];

Simples declaração de pacotes do sistema, como GNU Coreutils, manpages, parted, wget, etcetc


fonts = {
enableCoreFonts = true;
enableFontDir = true;
enableGhostscriptFonts = false;


fonts = with pkgs; [
tewi-font
gohufont
powerline-fonts
profont
proggyfonts
hack-font
];
};

Configura fontes e depois lista as fontes disponiveis no meu sistema



# Configuration on the system
./hardware-configuration.nix
./conf-network.nix
./conf-services.nix
./conf-users.nix
./conf-fonts.nix
./conf-environment.nix
./conf-boot.nix
./conf-nix.nix
./conf-programs.nix
./conf-security.nix
./conf-xserver.nix
./conf-pkgs.nix

# pkgs on the system
./pkgs-base.nix
./pkgs-x11.nix
./pkgs-sound.nix
./pkgs-dev.nix
./pkgs-util.nix
];

# Select internationalisation properties.
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "br-abnt2";
defaultLocale = "en_US.UTF-8";
};

# Set your time zone.
time.timeZone = "Brazil/East";

Importa varios arquivos (imagine isso como a função main() de um programa,chamando varias funções), coloca LANG em UTF8, keymap das ttys em br-abtn2 e timezone pro brazil


with import <nixpkgs> {};

stdenv.mkDerivation {
name = "2bwm";
version = "git";

src = fetchFromGitHub {
owner = "venam";
repo = "2bwm";
rev = "222525a2c0b5535036e6eb307b60a5725b71a650";
sha256 = "1prigx7bd7jrh567qyvlm3xfkz4znlvkks0m4y8vqs8iyqzzkn94";
};

buildInputs = [ xlibs.libX11 xorg.xcbutilkeysyms xorg.xcbutilwm xcbutilxrm ];

patches = [ patches/maxwell-patches.patch ];

installFlags = "PREFIX=$(out)";

meta = {
description = "A fast floating WM written over the XCB library and derived from mcwm";
homepage = https://github.com/venam/2bwm;
license = "isc";
};
}

Uma pequena declaração de um pacote, descreve varias coisas, nome, versão, Pegar do github, do usuario venam no repositorio 2bwm, a git revision atual (tem que atualizar quando derem update) sha256 (tem que atualizar manualmente, pra garantir integridade do pacote), buildInputs são as dependencias do pacote, se usar nativeBuildInputs as dependencias continuarão instaladas no sistema depois de compilar, patches defines (uhh) patches pro programa, installFlags muda flags durante o make, nesse caso ele muda o PREFIX pra $out, que é o local em /nix/store que o programa vai ficar, e meta define varias coisas como Homepage, uma descrição e a licença que esta o programa.


variables.GIT_EDITOR = lib.mkForce "nvim";
variables.EDITOR = lib.mkForce "nvim";

# XDG support
variables.XDG_CACHE_HOME = "$HOME/var/cache";
variables.XDG_CONFIG_HOME = "$HOME/etc";
variables.XDG_DATA_HOME = "$HOME/share";
variables.XDG_CURRENT_DESKTOP = "2bwm";

# Applications support
variables.PASSWORD_STORE_DIR = "$HOME/share/pass";
variables.WEECHAT_HOME = "$HOME/etc/weechat";
variables.GNUPGHOME = "$HOME/etc/gnupg";

# Remove polution
variables.LESSHISTFILE = "-";

variables.BROWSER = lib.mkForce "chromium";
};

seta varias variaveis do sistema.


nix = {
package = pkgs.nixUnstable;
binaryCaches = [ "http://cache.nixos.org" ];
trustedBinaryCaches = [ "http://cache.nixos.org" ];
useSandbox = true;
extraOptions = ''
auto-optimise-store = true
'';
};

nixpkgs.config = {
allowUnfree = true;
};

Define configurações do nix, usa Unstable (Rolling release), monta pacotes em uma Sandbox, optimiza a store automaticamente fazendo hardlinks entre coisas dentro de pacotes que são parecidas e no final permite usar pacotes que não tem uma licença livre.


5. Re: Me apresente sua distro!

LinuxWalker
Delusion

(usa Debian)

Enviado em 31/01/2017 - 21:40h

Olá;
Já experimentou Void? http://distrowatch.com/table.php?distribution=void

Essa é uma das poucas desconhecidas que eu tenho curiosidade (enquanto não sai o devuan). Maaaasss.... o tempo é seu, gaste como quiser. Geralmente distros desconhecidas levam o selo bino: http://www.portalpower.com.br/wp-content/uploads/2014/02/Selo-bino-de-cilada.jpg




6. Re: Me apresente sua distro!

Perfil removido
removido

(usa Nenhuma)

Enviado em 31/01/2017 - 22:00h


Ok, vou fazer meu caso por ela.

Voidlinux.

Usa seu propio package manager (xbps, x binary package system) binario, tem sua versão pra compilação (xbps-src), tem suporte a
-- pinning (manter pacote em versão)
-- versionamento (mesmo pacote, varias versões)
-- suporte a varios repositorios
-- varias funções basicas (downgrade, forçar reinstalação, forçar pacote a nunca dar update, checar integridade, escolher arquivos de configuração pra preservar)
-- Bem documentada
-- usa 2BSD, não afeta realmente mas eu prefiro BSD

Usa LibreSSL em vez de OpenSSL
-- Fork do OpenSSL pelo OpenBSD
-- quotando um comentario antigo meu

OpenSSL vs LibreSSL
http://www.cvedetails.com/vulnerability-list/vendor_id-217/product_id-383/Openssl-Openssl.html -- lista de CVE do openssl
http://www.cvedetails.com/vulnerability-list/vendor_id-97/product_id-30688/Openbsd-Libressl.html -- lista de CVE do libressl, lista infelizmente não mostra CVEs que tambem afetam o openSSL, por alguma razão que não conheço.
https://wiki.freebsd.org/LibreSSL/History -- Historia do LibreSSL, que inclue lista de CVE que não afetam,afetam e foram reparados
https://en.wikipedia.org/wiki/LibreSSL#Security_and_vulnerabilities -- lista que compara CVEs entre libressl e openssl, infelizmente não tem fonte para a tabela incial, só para as proximas.

-- Muito longo, não li, significa que voce tem um exercitos de gorilas (OpenBSD devs) certificando um componente do seu sistema.

Usa Runit em vez de Systemd
-- Menor, mais leve, consome menos memoria
-- Componentes fracamente acoplados (voce pode rodar runsvdir [supervise um diretorio de serviços], sem precisar rodar runit como pid1, ou pode ate rodar runit como pid1 e usar outro sistema de supervisionamente como daemontools do djb, ou s6 do skarnet)
-- Fazer seus propios serviços é extremamente facil de fazer, e se resume a fazer um shellscript pra rodar o programa (exemplo abaixo)

#!/bin/sh
[ -r ./conf ] && . ./conf
exec 2>&1
exec wpa_supplicant -c ${CONF_FILE:=/etc/wpa_supplicant/wpa_supplicant.conf} -i ${WPA_INTERFACE:=wlan0} ${OPTS:=-s}

no mesmo diretorio voce tem um arquivo chamado conf que mantem as variaveis que são usadas, ele usa := pra definir padrões que podem ser modificados
-- ele faz hijack do seu logging, voce não tem um logger do sistema como syslogd, ksyslogd, metalog, journald, voce define pelo serviço, dentro do diretorio de serviço voce pode ter um diretorio log com outro arquivo de serviço, que cria um logger que pega o stdout e guarda em um lugar (exemplo a baixo)

#!/bin/sh
[ ! -d /var/log/wpa_supplicant ] && rm -rf /var/log/wpa_supplicant; mkdir -p /var/log/wpa_supplicant
exec svlogd -tt /var/log/wpa_supplicant

Simples, checa se tem um diretorio em /var/log/wpa_supplicant, se não ele tenta deletar ( pra caso seja arquivo ), e cria o diretorio, e iniciar um logger que pega o stdout do wpa_supplicant, prefixa com data e horario ( configuração -tt ) e coloca lá, ele automaticamente faz rotação pra evitar que o arquivo fique muito grande

-- Usa dash (como ubuntu e debian) como shell default do sistema, chega a ser 4x mais rapida
-- Usa Musl libc ( em vez de Gnu Libc) como libc do sistema, é menor, tem em mente segurança, seguir regras do POSIX, linkagem estatica e dinamica rapida, consome menos memoria e tem um recorde melhor de segurança (quotando comentario anterior meu)

-- È feito from-scratch então ele não tem ferramentas antigas como ifconfig, a favor das novas como ip



7. Re: Me apresente sua distro!

Slackjeff
slackjeff

(usa Slackware)

Enviado em 31/01/2017 - 23:47h

Pare de usar drogas laika.
Aquele abraço!


configure complete, now type 'make' and pray.
Meu Blog: http://area355.blogspot.com.br
Tradutor PT-BR da Distribuição: Calculate Linux
Tradutor PT-BR da Distribuição: Arya-Linux








8. Re: Me apresente sua distro!

IceStorms
IceStorms

(usa openSUSE)

Enviado em 01/02/2017 - 00:17h

Não sei se conhece e se ainda não usou seria uma boa oportunidade.

LFS
E ai o site do bichinho:
http://www.linuxfromscratch.org/


______________________________________
Debian. Mageia. FreeBSD.
Fedora. Linux Mint.
¨¨¨¨¨¨¨¨¨
Linux User: #438332
https://www.linuxcounter.net/cert/438332.png


9. Re: Me apresente sua distro!

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/02/2017 - 02:40h

slackjeff escreveu:

Pare de usar drogas laika.
Aquele abraço!



Minha unica droga é Counter-Strike Dinamarques https://pbs.twimg.com/media/C3XilH6WAAEFJtq.jpg:large



10. Re: Me apresente sua distro!

LinuxWalker
Delusion

(usa Debian)

Enviado em 01/02/2017 - 19:36h

Obrigado pelos esclarecimentos laika.

e, slackjeff, torço para que vc consiga uma boa colocação de trabalho logo. (Yes, I believe in positive vibrations!).




11. Re: Me apresente sua distro!

Guilherme
Ghost_Shell

(usa Arch Linux)

Enviado em 03/02/2017 - 13:21h

laika escreveu:


Ok, vou fazer meu caso por ela.

Voidlinux.

Usa seu propio package manager (xbps, x binary package system) binario, tem sua versão pra compilação (xbps-src), tem suporte a
-- pinning (manter pacote em versão)
-- versionamento (mesmo pacote, varias versões)
-- suporte a varios repositorios
-- varias funções basicas (downgrade, forçar reinstalação, forçar pacote a nunca dar update, checar integridade, escolher arquivos de configuração pra preservar)
-- Bem documentada
-- usa 2BSD, não afeta realmente mas eu prefiro BSD

Usa LibreSSL em vez de OpenSSL
-- Fork do OpenSSL pelo OpenBSD
-- quotando um comentario antigo meu

OpenSSL vs LibreSSL
http://www.cvedetails.com/vulnerability-list/vendor_id-217/product_id-383/Openssl-Openssl.html -- lista de CVE do openssl
http://www.cvedetails.com/vulnerability-list/vendor_id-97/product_id-30688/Openbsd-Libressl.html -- lista de CVE do libressl, lista infelizmente não mostra CVEs que tambem afetam o openSSL, por alguma razão que não conheço.
https://wiki.freebsd.org/LibreSSL/History -- Historia do LibreSSL, que inclue lista de CVE que não afetam,afetam e foram reparados
https://en.wikipedia.org/wiki/LibreSSL#Security_and_vulnerabilities -- lista que compara CVEs entre libressl e openssl, infelizmente não tem fonte para a tabela incial, só para as proximas.

-- Muito longo, não li, significa que voce tem um exercitos de gorilas (OpenBSD devs) certificando um componente do seu sistema.

Usa Runit em vez de Systemd
-- Menor, mais leve, consome menos memoria
-- Componentes fracamente acoplados (voce pode rodar runsvdir [supervise um diretorio de serviços], sem precisar rodar runit como pid1, ou pode ate rodar runit como pid1 e usar outro sistema de supervisionamente como daemontools do djb, ou s6 do skarnet)
-- Fazer seus propios serviços é extremamente facil de fazer, e se resume a fazer um shellscript pra rodar o programa (exemplo abaixo)

#!/bin/sh
[ -r ./conf ] && . ./conf
exec 2>&1
exec wpa_supplicant -c ${CONF_FILE:=/etc/wpa_supplicant/wpa_supplicant.conf} -i ${WPA_INTERFACE:=wlan0} ${OPTS:=-s}

no mesmo diretorio voce tem um arquivo chamado conf que mantem as variaveis que são usadas, ele usa := pra definir padrões que podem ser modificados
-- ele faz hijack do seu logging, voce não tem um logger do sistema como syslogd, ksyslogd, metalog, journald, voce define pelo serviço, dentro do diretorio de serviço voce pode ter um diretorio log com outro arquivo de serviço, que cria um logger que pega o stdout e guarda em um lugar (exemplo a baixo)

#!/bin/sh
[ ! -d /var/log/wpa_supplicant ] && rm -rf /var/log/wpa_supplicant; mkdir -p /var/log/wpa_supplicant
exec svlogd -tt /var/log/wpa_supplicant

Simples, checa se tem um diretorio em /var/log/wpa_supplicant, se não ele tenta deletar ( pra caso seja arquivo ), e cria o diretorio, e iniciar um logger que pega o stdout do wpa_supplicant, prefixa com data e horario ( configuração -tt ) e coloca lá, ele automaticamente faz rotação pra evitar que o arquivo fique muito grande

-- Usa dash (como ubuntu e debian) como shell default do sistema, chega a ser 4x mais rapida
-- Usa Musl libc ( em vez de Gnu Libc) como libc do sistema, é menor, tem em mente segurança, seguir regras do POSIX, linkagem estatica e dinamica rapida, consome menos memoria e tem um recorde melhor de segurança (quotando comentario anterior meu)

-- È feito from-scratch então ele não tem ferramentas antigas como ifconfig, a favor das novas como ip


Eu chego no seu nível um dia.

Keep it simple stupid!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts